Commit graph

289 commits

Author SHA1 Message Date
Tiago Yamamoto
db1a9b9edc feat(start.sh): add migrations and seed reset options
- Reorganize menu with sections: Services, Database, Testing
- Add option 4: Run Migrations (psql each migration file)
- Add option 6: Seed Reset with confirmation prompt
- Renumber tests to option 7
2025-12-24 10:44:07 -03:00
Tiago Yamamoto
bb408b5c87 docs(seeder): complete README with all fictional companies and regions
- Add documentation for 9 epic companies: BNL, Cyberdyne, Wonka, Wayne, Oceanic, InGen, Bubba Gump, Umbrella, Sprawl-Mart
- Add geographic regions section: Brazil (SP, RJ, MG), USA (CA, NY, TX), Japan (Tokyo, Osaka)
- Update totals: 43 companies, 1129+ jobs, 13 fictional companies
- Add complete file structure documentation
2025-12-24 10:39:16 -03:00
Tiago Yamamoto
340911b4d1 feat(auth): add cookie parsing and JWT auth guard to backoffice
- Add JWT auth guard with Bearer token and cookie support
- Update .env.example files with PASSWORD_PEPPER documentation
- Update seeder to use PASSWORD_PEPPER for password hashing
- Update seeder README with hash verification examples
- Fix frontend auth and page components
- Update backend JWT service and seed migration
2025-12-24 10:27:04 -03:00
Tiago Yamamoto
02f35b46b6 feat: implement dynamic dashboard, auth hardening (pepper/httponly) and backend tests 2025-12-24 01:30:33 -03:00
Tiago Yamamoto
0f2aae3073 fix(backoffice): force 0.0.0.0 binding to resolve deployment crash
refactor(backend): consolidate admin routes and implement RBAC

feat(frontend): update api client to use consolidated routes
2025-12-24 00:59:33 -03:00
Tiago Yamamoto
72174b5232 docs(backend): update Swagger annotations for admin and core handlers 2025-12-24 00:45:48 -03:00
Tiago Yamamoto
7d4bc253d5 refactor: remove AI banner and change 'I'm a company' to 'Postar Vaga' 2025-12-24 00:39:53 -03:00
Tiago Yamamoto
f94533d432 fix(backoffice): add @fastify/static for Swagger support 2025-12-24 00:33:30 -03:00
Tiago Yamamoto
ce37206286 fix(backoffice): simplify Dockerfile for proper source code copying 2025-12-24 00:28:39 -03:00
Tiago Yamamoto
bda4741c17 feat: add AI-powered company section with 'Postar uma Vaga' button on home page 2025-12-24 00:26:02 -03:00
Tiago Yamamoto
eae9474007 docs: add clearer warning about NEXT_PUBLIC_API_URL format 2025-12-24 00:20:43 -03:00
Tiago Yamamoto
6a1bdefc4b feat(backoffice): add status endpoint at root and move swagger to /docs 2025-12-24 00:11:18 -03:00
Tiago Yamamoto
ae7003d3fa feat(backoffice): add CORS_ORIGINS env var support 2025-12-24 00:03:52 -03:00
Tiago Yamamoto
dfdb8bc943 chore: update CORS_ORIGINS with production domains 2025-12-24 00:02:07 -03:00
Tiago Yamamoto
60a32120e2 refactor(backoffice): rename PORT to BACKOFFICE_PORT and HOST to BACKOFFICE_HOST 2025-12-23 23:59:52 -03:00
Tiago Yamamoto
35d3032d52 feat: add backoffice API client with NEXT_PUBLIC_BACKOFFICE_URL env var 2025-12-23 23:56:12 -03:00
Tiago Yamamoto
b7987dead9 fix: use NEXT_PUBLIC_API_URL env var for API requests 2025-12-23 23:50:56 -03:00
Tiago Yamamoto
6bb90bdd1c fix: add missing /api/v1/notifications route to router 2025-12-23 23:46:18 -03:00
Tiago Yamamoto
c6f7f41452 feat(backoffice): migrate to Fastify adapter with pnpm, Pino logging, and ultra-optimized Dockerfile 2025-12-23 23:44:02 -03:00
Tiago Yamamoto
22315e0231 perf: optimize backoffice Dockerfile with multi-stage build, non-root user, and .dockerignore 2025-12-23 23:32:43 -03:00
Tiago Yamamoto
0693e30922 refactor: rename PORT to BACKEND_PORT and API_HOST to BACKEND_HOST 2025-12-23 23:28:17 -03:00
Tiago Yamamoto
924255fdfb feat: prefer DATABASE_URL format for db connection, fallback to individual params 2025-12-23 23:23:42 -03:00
Tiago Yamamoto
2111e7e32d chore: remove unused file upload config, already using S3 with pre-signed URLs 2025-12-23 23:19:44 -03:00
Tiago Yamamoto
9f7d8e9ca5 feat: add 6-step job wizard with Preview, Billing, Payment steps and Stripe integration preparation 2025-12-23 23:00:17 -03:00
Tiago Yamamoto
42e9f81f48 feat: enhance job form with currency, salary periods, contract types, and add ER diagram docs 2025-12-23 22:49:33 -03:00
Tiago Yamamoto
80d38ee615 feat(frontend): add multi-step job posting wizard with API integration 2025-12-23 22:40:19 -03:00
Tiago Yamamoto
9bc924ab54 fix(frontend): add console.log debugging to job create form, load companies from API 2025-12-23 22:28:16 -03:00
Tiago Yamamoto
fdece70a8a fix(frontend): renaming ApiCompany to AdminCompany to fix build error 2025-12-23 22:13:19 -03:00
Tiago Yamamoto
908ec41ca9 fix(frontend): Correctly handle paginated companies response in backoffice 2025-12-23 21:40:16 -03:00
Tiago Yamamoto
300c76a156 fix(frontend): Export missing APIs for dashboard and backoffice 2025-12-23 19:37:47 -03:00
Tiago Yamamoto
3701daaeaf fix(frontend): Add missing zustand dependency 2025-12-23 19:28:17 -03:00
Tiago Yamamoto
398f1904dd fix(frontend): Use correct admin endpoint for company pagination 2025-12-23 19:27:22 -03:00
Tiago Yamamoto
7bb081f7c2 fix(backend): Resolve compilation error in update_user.go 2025-12-23 19:24:58 -03:00
Tiago Yamamoto
78ce341370 feat: Implement Ticket System, Profile Page integration, and fix migrations 2025-12-23 19:22:55 -03:00
Tiago Yamamoto
fd59bfacb2 feat(frontend): implement view, edit and delete actions for admin jobs 2025-12-23 18:53:09 -03:00
Tiago Yamamoto
8aada931b5 fix(frontend): remove any type from i18n key traversal 2025-12-23 18:44:09 -03:00
Tiago Yamamoto
24ee8d568f fix(i18n): Correct nesting of company object in es.json 2025-12-23 15:40:37 -03:00
Tiago Yamamoto
177aea113c fix(i18n): Add missing company registration keys to es.json 2025-12-23 15:35:08 -03:00
Tiago Yamamoto
2c27836245 feat: Add i18n support to company registration page 2025-12-23 15:29:47 -03:00
Tiago Yamamoto
f81a97a224 Fix 500 error: handle NULL company name in GetJobs 2025-12-23 15:17:36 -03:00
Tiago Yamamoto
0e265e64b8 Refactor backend to use string IDs for Job, Company, and Application 2025-12-23 14:46:17 -03:00
Tiago Yamamoto
5e714eeb4f
Merge pull request #29 from rede5/codex/fix-type-mismatch-in-query
Fix jobs query joins and scan order
2025-12-23 14:18:37 -03:00
Tiago Yamamoto
d36331140e Fix jobs query joins and scan order 2025-12-23 14:18:16 -03:00
Tiago Yamamoto
c0258e57b7 fix: correct getSalaryDisplay to use job.salaryMin/Max
The previous sed replacement incorrectly created salaryDisplayMin/Max.
Fixed to properly reference job.salaryMin and job.salaryMax.
2025-12-23 08:38:02 -03:00
Tiago Yamamoto
96c5b60e98 fix: update jobs page to use ApiJob properties
- Replace job.company with job.companyName
- Replace job.type with job.employmentType
- Replace job.postedAt with job.createdAt
- Add getSalaryDisplay helper for salaryMin/salaryMax
- Fixed type compatibility with ApiJob interface
2025-12-23 08:34:49 -03:00
Tiago Yamamoto
592af3216e feat: connect Apply Now to applications API
Frontend changes:
- Add applicationsApi with create() and getByJob() in api.ts
- Update apply/page.tsx to fetch job from API and submit to backend
- Fix job detail page requirements null check
- Use ApiJob type instead of mock Job type
- Replace job.company with job.companyName throughout

Note: Backend has type mismatch issues that need fixing:
- jobs endpoint: varchar vs integer comparison
- applications: null id constraint
2025-12-23 08:29:15 -03:00
Tiago Yamamoto
ce0531fefc feat: connect registration and jobs to real API
Backend fixes:
- Fix FK violation in candidate registration by creating company first
- Add CompanyRepository to RegisterCandidateUseCase
- Add handler integration tests for validation

Frontend improvements:
- Add registerCompany function in auth.ts
- Connect company registration form to backend API
- Replace mockJobs with API call in job detail page
- Add loading/error states to job detail page
- Add Jest tests for auth module
2025-12-23 08:19:49 -03:00
Tiago Yamamoto
b09bd023ed feat: security refactor, server-side pagination, and docs update
- impl(frontend): server-side pagination for jobs listing
- impl(frontend): standardized api error handling and sonner integration
- test(frontend): added unit tests for JobCard
- impl(backend): added SanitizeMiddleware for XSS protection
- test(backend): added table-driven tests for JobService
- docs: updated READMES, created ROADMAP.md and DATABASE.md
- fix(routing): redirected landing page buttons to /jobs
2025-12-23 00:50:51 -03:00
Tiago Yamamoto
743b2842c0 feat: Enhance platform with funny jobs, FAQ, Skeleton UI, and Tests 2025-12-22 23:48:56 -03:00
Tiago Yamamoto
407979c6dc fix(seeder): fix FK constraints for core_companies and core_users
- jobs.company_id now references core_companies.id (UUID)
- jobs.created_by now references core_users.id (UUID)
- Fixed parameter count in all INSERT statements
- All 13 fictional companies now seed correctly
2025-12-22 23:07:40 -03:00