Skip to content

Quick Start

  • Bun >= 1.1 (package manager + runtime)
  • Docker (for PostgreSQL and Redis)
  • Node.js >= 22
Terminal window
bun install
Terminal window
docker compose up -d

This starts:

  • PostgreSQL 16 on port 5433 (user: pinteach, password: pinteach)
  • Redis on port 6379
Terminal window
bun run db:migrate
Terminal window
bun run db:seed
Terminal window
bun run dev

This starts all apps via Turborepo:

  • API: http://localhost:3001
  • Frontend: http://localhost:3737 (proxies /api to :3001)
Terminal window
bun run dev --filter=api # API only
bun run dev --filter=web # Frontend only

For development, use the quick login endpoint:

GET http://localhost:3001/api/auth/dev-login/:teacherId

The seed data includes teacher Maria Garcia with ID 00000000-0000-4000-a000-000000000001.

CommandPurpose
bun run typecheckTypeScript check all 5 packages
bun run lintLint + format check (Biome)
bun run buildBuild all packages
bun run db:studioOpen Drizzle Studio
bun run db:generateGenerate Drizzle migrations

Create .env files in apps/api/:

Terminal window
DATABASE_URL=postgresql://pinteach:pinteach@localhost:5433/pinteach
REDIS_URL=redis://localhost:6379
APP_URL=http://localhost:3737
PORT=3001
SESSION_SECRET=your-secret-min-32-chars
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
STRIPE_SECRET_KEY=...
RESEND_API_KEY=...

See the full environment variables list for all options.