← All work
Personal project · Full-stack
Job Application Tracker
A full-stack tracker for co-op applications, with a full history of every status change.
- Year
- 2026
- Stack
- Next.js, TypeScript, Express, PostgreSQL, Prisma, Docker
The problem
Co-op season means dozens of applications at once, each moving through its own stages. A spreadsheet only tells you where things stand today, not how they got there.
What I built
A Next.js front end over an Express and TypeScript REST API with 11 endpoints. Every user route is behind JWT authentication with bcrypt-hashed passwords, and the data lives in PostgreSQL, modelled with Prisma across 5 related entities.
A decision worth explaining
Log every status change, not just the current one
Status transitions are written to a history table automatically, so the full path of an application (applied, interview, offer) is kept instead of being overwritten by its latest state.
Outcomes
- Front end, API and database deployed separately on Vercel, Render and Neon.
- Prisma migrations run automatically on every deploy.
- Cross-origin auth configured between the separately hosted services.