Two apps:
frontend/— React + Vite + TypeScript + Tailwindbackend/— Node + Express + TypeScript + Prisma + PostgreSQL
cd backend- copy
.env.example→.envand setDATABASE_URLandJWT_SECRET. - Install deps:
npm install - Generate Prisma client:
npm run prisma:generate - Run migrations (creates DB tables):
npm run prisma:migrate - Start dev server:
npm run dev- Server runs at
http://localhost:4000(default port)
- Server runs at
cd frontend- copy
.env.example→.env - Install deps:
npm install - Start dev server:
npm run dev- Frontend runs at
http://localhost:5173(Vite default)
- Frontend runs at
- Default API URL is
VITE_API_URLinfrontend/.env. - Auth uses JWT — token is returned on login and should be stored client-side (example stores it in localStorage).
- Prisma schema is in
backend/prisma/schema.prisma.