This repo is a small monorepo managed with pnpm and turbo. It contains:
apps/backend: NestJS API (Prisma + Postgres)apps/frontend: React + Vite frontendapps/shared-types: Shared types package (for future cross-app types)
- Node 20+
pnpminstalled globally (npm i -g pnpm)- A Postgres instance
Install dependencies from the monorepo root:
pnpm installCreate a .env file in apps/backend (never commit this) with at least:
DATABASE_URL="postgresql://user:password@localhost:5432/dbname"
JWT_ACCESS_SECRET="replace_me_access"
JWT_ACCESS_EXPIRES_IN="15m"
JWT_REFRESH_SECRET="replace_me_refresh"
JWT_REFRESH_EXPIRES_IN="7d"
FRONTEND_URL="http://localhost:5173"
# Optional: Google OAuth (if using Google login)
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
GOOGLE_CALLBACK_URL="http://localhost:3000/auth/google/callback"Run database migrations and seed (from apps/backend):
cd apps/backend
pnpm prisma migrate deploy
pnpm prisma db seedFrom the monorepo root you can then:
# run dev servers via turbo (backend + frontend)
pnpm dev
# or build everything
pnpm buildYou can also run the apps individually:
# backend
cd apps/backend
pnpm start:dev
# frontend
cd apps/frontend
pnpm dev- No
.envfiles or secrets are committed; runtime config is loaded from env vars. - Database credentials, JWT secrets, and any other sensitive values must be provided via local
.envfiles or your deployment environment – never commit them.
The top-level .gitignore already excludes node_modules, build artifacts, and .env* files for GitHub.