- 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
- 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
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
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
- 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
- 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
🛒 Buy n Large (Wall-E) - 3 jobs
🤖 Cyberdyne Systems (Terminator) - 3 jobs
🍫 Wonka Industries (Chocolate Factory) - 3 jobs
🦇 Wayne Enterprises (Batman) - 3 jobs
✈️ Oceanic Airlines (Lost) - 3 jobs
🦖 InGen Jurassic Park - 3 jobs
🦐 Bubba Gump Shrimp Co. (Forrest Gump) - 3 jobs
☣️ Umbrella Corporation (Resident Evil) - 3 jobs
🏪 Sprawl-Mart (Dystopian Parody) - 30 hilarious jobs
Total: 43 companies, 1129+ jobs
The ultimate job board parody collection!