Monorepo for the DRID internship platform.
frontend/: Next.js 16 app (React 19, React Query, Zustand)backend/: Express + TypeScript API (Prisma + PostgreSQL)
main: production/stable branchstaging: development/integration branch (active dev branch)
- Node.js 20+
- pnpm 10+
- PostgreSQL 16 (local or container)
cd backend && pnpm install
cd ../frontend && pnpm install- Backend env:
backend/.env(must includeDATABASE_URL, JWT secrets, and app URLs) - Frontend env:
frontend/.env.local(setNEXT_PUBLIC_API_URL)
cd backend && pnpm dev
cd ../frontend && pnpm dev- Frontend:
http://localhost:3000 - Backend API:
http://localhost:4000/api/v1
cd backend && pnpm lint && pnpm build
cd ../frontend && pnpm lint && pnpm build- Backend-only compose:
backend/docker-compose.yml - Frontend-only compose:
frontend/docker-compose.yml - Full stack compose:
docker-compose.yml
This repo includes a tracked pre-commit hook under .githooks/pre-commit that runs lint checks for both apps.
Enable once per clone:
./scripts/setup-hooks.shor manually:
git config core.hooksPath .githooks
chmod +x .githooks/pre-commitGitHub Actions CI runs lint + build for frontend/ and backend/ on push/PR to main and staging.