Commit graph

108 commits

Author SHA1 Message Date
Tiago Yamamoto
183b094e5f style(navbar): 💅 better spacing for language switcher 2025-12-15 09:01:10 -03:00
Tiago Yamamoto
488aaec9f9 docs(readme): 📖 added documentation for i18n setup 2025-12-15 09:01:09 -03:00
Tiago Yamamoto
2d5022d6ee refactor(seeder): 🔧 cleaned up code for better maintainability 2025-12-15 09:01:09 -03:00
Tiago Yamamoto
92b1515b26 feat(navbar): 🗣️ navbar speaks all languages now 2025-12-15 09:00:49 -03:00
Tiago Yamamoto
ba1385b080 feat(ui): 🏳️ language switcher because one language is never enough 2025-12-15 08:59:44 -03:00
Tiago Yamamoto
69c84c0fa9 feat(layout): 🌐 english first and i18n provider wrapped 2025-12-15 08:59:24 -03:00
Tiago Yamamoto
39b84996d1 feat(i18n): 🎣 hook para pescar traduções automaticamente 2025-12-15 08:58:21 -03:00
Tiago Yamamoto
87fcdcd0fb feat(i18n): 🇧🇷 opa brasil finalmente representa 2025-12-15 08:57:37 -03:00
Tiago Yamamoto
4df8112509 feat(i18n): 🇪🇸 hola mundo español 2025-12-15 08:57:35 -03:00
Tiago Yamamoto
9d9e28e5e9 feat(i18n): 🌍 english first because global domination 2025-12-15 08:56:58 -03:00
Tiago Yamamoto
93b413d256 docs(seeder): 📊 updated summary because numbers matter 2025-12-15 08:56:25 -03:00
Tiago Yamamoto
b36760daa2 feat(seeder): 💼 990 jobs because unemployment is just a mindset 2025-12-15 08:55:39 -03:00
Tiago Yamamoto
20e03fef81 feat(seeder): 🏢 30 companies because startup dreams are free 2025-12-15 08:54:32 -03:00
Tiago Yamamoto
430e0f534d feat(db): 🏠 added work_mode because office is overrated anyway 2025-12-15 08:53:41 -03:00
Tiago Yamamoto
24c6f33ae5
Merge pull request #6 from rede5/codex/implement-backend-functionality-in-frontend
Integrate backend jobs feed into frontend and improve seeder
2025-12-14 20:32:35 -03:00
Tiago Yamamoto
67c2ccdffe Integrate backend jobs feed into frontend and improve seeder 2025-12-14 20:32:20 -03:00
Tiago Yamamoto
7e40ba0476
Merge pull request #5 from rede5/codex/update-application-status-to-hired
Add example for hiring application status update
2025-12-14 17:26:53 -03:00
Tiago Yamamoto
47b9e4feaf Add example for hiring application status update 2025-12-14 17:26:39 -03:00
Tiago Yamamoto
bbfcddf498
Merge pull request #4 from rede5/codex/fix-unused-import-in-application_handler.go
Remove unused models import from application handler
2025-12-14 17:16:43 -03:00
Tiago Yamamoto
7d5c6cc1d4 Remove unused models import 2025-12-14 17:16:29 -03:00
Tiago Yamamoto
f17a0c08cf
Merge pull request #3 from rede5/codex/mostrar-todas-as-rotas-de-jobs
Document all API routes in Swagger
2025-12-14 17:11:15 -03:00
Tiago Yamamoto
bff8012291 Add swagger docs for applications and storage 2025-12-14 17:10:42 -03:00
Tiago Yamamoto
3bd823381b
Merge pull request #2 from rede5/codex/update-backend-service-port-to-8521
Update dev backend ingress port to 8521
2025-12-14 16:49:11 -03:00
Tiago Yamamoto
c317367335 Update dev backend ingress port to 8521 2025-12-14 16:48:38 -03:00
Tiago Yamamoto
390cdf0ffd
Merge pull request #1 from rede5/codex/verificar-ausencia-da-rota-jobs
Expose job endpoints in Swagger docs
2025-12-14 16:42:35 -03:00
Tiago Yamamoto
65eca07c8f Expose job endpoints in Swagger docs 2025-12-14 16:40:29 -03:00
Tiago Yamamoto
6e6c166ce1 test test 2025-12-14 16:17:56 -03:00
Tiago Yamamoto
9b4601f1d8 feat: implement dynamic featured jobs
- Add is_featured column to jobs table (migration)
- Update Job model and Service to support featured jobs
- Update JobHandler to expose featured jobs API
- Support filtering by featured status in GET /jobs
- Frontend: Fetch and display featured jobs from API
- Frontend: Update Job type definition
2025-12-14 15:43:43 -03:00
Tiago Yamamoto
361d36dc38 feat: customize api root response and update dev ingress host
- Update root handler to return server public IP via ipify
- Update root handler response JSON structure
- Update ingress host to api-dev.gohorsejobs.com
- Add unit tests for router
2025-12-14 15:19:18 -03:00
Marcus
12199fb300 ajusteno k8s 2025-12-14 11:26:47 -03:00
Marcus
a6c1594f30 ajusteno k8s 2025-12-14 11:10:36 -03:00
Marcus
d727ea5862 ajusteno k8s 2025-12-14 11:01:38 -03:00
Tiago Yamamoto
bfc8ca5603 chore: trigger redeploy to update swagger with Jobs endpoints 2025-12-14 10:17:23 -03:00
Tiago Yamamoto
b2284921ea feat: add Cloudflare and cPanel admin routes
Cloudflare Cache Management:
- GET /api/v1/admin/cloudflare/zones
- POST /api/v1/admin/cloudflare/cache/purge-all
- POST /api/v1/admin/cloudflare/cache/purge-urls
- POST /api/v1/admin/cloudflare/cache/purge-tags
- POST /api/v1/admin/cloudflare/cache/purge-hosts

cPanel Email Management:
- GET /api/v1/admin/cpanel/emails
- POST /api/v1/admin/cpanel/emails
- DELETE /api/v1/admin/cpanel/emails/{email}
- PUT /api/v1/admin/cpanel/emails/{email}/password
- PUT /api/v1/admin/cpanel/emails/{email}/quota

All routes protected by JWT auth middleware.
Added CLOUDFLARE_* and CPANEL_* env vars to .env.example
2025-12-14 10:11:36 -03:00
Tiago Yamamoto
1e753b611a chore: add scraper API URL to frontend .env.example and fix gitignore
- Add NEXT_PUBLIC_SCRAPER_API_URL to frontend/.env.example
- Re-enable .env* ignore rules in frontend/.gitignore
2025-12-14 09:57:02 -03:00
Tiago Yamamoto
aa31b917bd security: remove accidentally committed .env file 2025-12-14 09:52:34 -03:00
Tiago Yamamoto
ddc4e2c2bf chore: add complete .env.example files for all services
- frontend/.env.example: Add SEEDER_API_URL
- seeder-api/.env.example: Expand with server config and backend URL
- job-scraper-multisite/.env.example: New file with scraping config
- Update gitignore files to allow .env.example tracking
2025-12-14 09:48:56 -03:00
Tiago Yamamoto
dc1a63a3fc fix: correct swagger.json host port to 8521 2025-12-14 09:42:31 -03:00
Tiago Yamamoto
6f348c7975 chore: add frontend .env.example and fix gitignore
- Update frontend/.gitignore to allow .env.example
- Create frontend/.env.example with correct API_URL format (/api/v1 suffix)
- Document production URL: https://api-dev.gohorsejobs.com/api/v1
2025-12-14 09:39:24 -03:00
Tiago Yamamoto
703e651daa docs: update swagger.json with Jobs endpoints and fix README
- Add Jobs endpoints to swagger.json manually (/jobs GET, POST, /jobs/{id} GET, PUT, DELETE)
- Update README.md Swagger URL from /swagger/ to /docs/
- Add production URL: https://api-dev.gohorsejobs.com/docs/index.html
- Expand endpoints table with all available routes
- Fix port from 8080 to 8521
2025-12-14 09:31:28 -03:00
Tiago Yamamoto
9667e94545 chore: add Dockerfiles and gitignore files for all services
Root:
- Add comprehensive .gitignore covering all subprojects

Seeder API (Node.js):
- Add Dockerfile with multi-stage build, non-root user, health check
- Add .dockerignore and .gitignore

Job Scraper (Python):
- Add Dockerfile with Python 3.12, non-root user
- Add .dockerignore and .gitignore

Existing backend/frontend Dockerfiles and .dockerignore already optimized
2025-12-14 09:28:09 -03:00
Tiago Yamamoto
a4abcf8e05 feat: SEO optimization and dynamic jobs API integration
Backend:
- Add Swagger annotations to all job handlers (GET, POST, PUT, DELETE)
- Clean up job handler code

Frontend:
- Expand api.ts with ApiJob types, pagination, and transform function
- Update footer with 'Vagas por Tecnologia' SEO links
- Add robots.txt with crawler directives
- Add sitemap.xml with main pages and job URLs
- Change branding to GoHorse Jobs
2025-12-14 09:16:44 -03:00
Tiago Yamamoto
8856357acd feat: add JobScraper_MultiSite Python project
- main_scraper.py: Main entry point, consolidates data from all sources
- scrapers/programathor_scraper.py: Scraper for ProgramaThor
- scrapers/geekhunter_scraper.py: Scraper for GeekHunter
- requirements.txt: Python dependencies (requests, beautifulsoup4, pandas)
- README.md: Documentation with usage instructions
- Modular architecture for easy addition of new sites
2025-12-14 09:10:17 -03:00
Tiago Yamamoto
15fe5db50e fix(backend): relax CSP for Swagger UI docs
- Allow 'unsafe-inline' and 'unsafe-eval' scripts on /docs routes
- Swagger UI requires inline scripts to function properly
- Keep strict CSP for all other API routes
2025-12-14 09:04:19 -03:00
Tiago Yamamoto
dc2142499b fix(backend): improve migration logs with friendly messages
- Show ⏭️ 'skipped (already applied)' for migrations that already exist
- Add emojis for better log readability ( success,  error, 📦 running)
- Avoid confusing 'Error' messages when migrations are simply re-applied
2025-12-14 09:00:38 -03:00
Tiago Yamamoto
60eafdc6e2 feat(backend): add root route with IP info and move swagger to /docs
- Add root route (/) returning JSON with client IP, API info and links
- Move Swagger docs from /swagger/ to /docs/
- Include X-Forwarded-For and X-Real-IP header support for proxy environments
2025-12-14 08:56:25 -03:00
Tiago Yamamoto
4475bc6bda feat(devops): multi-environment k8s setup and DevOps documentation
- Reorganized k8s manifests into dev/, hml/, prd/ folders
- Added resource limits and health probes to deployments
- DEV: 1 replica, HML: 2 replicas, PRD: 3 replicas
- Updated .drone.yml to use environment-specific k8s paths
- Created comprehensive DEVOPS.md documentation
- Removed old k8s files from root folder
2025-12-13 19:30:43 -03:00
Tiago Yamamoto
7a147bd9e9 fix(drone): update docker repo to gohorsejobsdev namespace 2025-12-13 19:06:45 -03:00
Tiago Yamamoto
082ba6df8c feat(k8s): configure dev environment pipeline and namespace
- Rename pipeline to 'deploy-backend-dev' for dev branch
- Add trigger for dev branch only
- Change namespace from 'gohorsejobs' to 'gohorsejobsdev'
- Use DB_NAME_DEV secret for dev database
- Update deployment and service manifests for dev namespace
2025-12-13 19:02:36 -03:00
Tiago Yamamoto
14c4bc8370 fix(frontend): remove invalid AdminSidebar import from messages page 2025-12-13 18:46:00 -03:00