A full-stack job application tracking app built with Next.js, TypeScript, PostgreSQL, Prisma, and NextAuth.
- Sign in with a seeded demo user.
- Create, view, edit, archive, and delete job applications.
- Track status changes with history.
- Search and filter applications.
- View dashboard counts by status.
- Copy
.env.exampleto.env. - Update
DATABASE_URLif your PostgreSQL credentials are different. - Install dependencies with
npm install. - Start PostgreSQL locally. If you use Docker, run
docker compose up -d. - Run
npm run prisma:migrate -- --name init. - Run
npm run db:seed. - Run
npm run dev. - Sign in with
demo@example.comandpassword123.
- Run unit tests with
npm test. - Run browser flow tests with
npm run test:e2e. - Run the full test suite with
npm run test:all. - End-to-end tests require PostgreSQL to be running and the schema to be migrated.
- GitHub Actions runs migrations, unit tests, production build, and browser tests on pushes and pull requests.
This app needs a Node.js host plus a PostgreSQL database. The simplest setup is Vercel for the Next.js app and Neon, Supabase, Railway, or Render PostgreSQL for the database.
DATABASE_URL: production PostgreSQL connection string.NEXTAUTH_SECRET: long random secret. Generate one withopenssl rand -base64 32.NEXTAUTH_URL: deployed app URL, for examplehttps://your-app.vercel.app.
-
Push the repository to GitHub.
-
Create a PostgreSQL database with Neon, Supabase, Railway, or Render.
-
In Vercel, import the GitHub repository as a Next.js project.
-
Add the required environment variables in Vercel project settings.
-
Keep the default build command:
npm run build. -
Deploy the app.
-
Apply production migrations from your machine or CI:
DATABASE_URL="your-production-database-url" npx prisma migrate deploy -
Optional: seed a demo user in production only if you want demo credentials available:
DATABASE_URL="your-production-database-url" npm run db:seed
- Install command:
npm ci - Build command:
npm run build - Start command:
npm start - Before starting the production app for the first time, run
npx prisma migrate deploy. - Use Node.js 24 to match the GitHub Actions workflow, or configure the host to a supported current Node.js LTS version.
- Authenticated user-owned data.
- Relational data modeling with application status history.
- Type-safe database access through Prisma.
- Server-side validation before database writes.
- Reusable create/edit form flow.
- Protected routes and server actions.