AI-powered homework management for K-12 classrooms.
Teachers create and assign homework in seconds — manually, or by letting AI generate a full question set. Students track assignments, get Socratic AI hints, log grades, and focus with a built-in Pomodoro timer. Supports 21 languages.
- Monorepo: pnpm workspaces, TypeScript 5.9, Node 24
- API: Express 5 + PostgreSQL + Drizzle ORM
- Frontend: React 19 + Vite + Tailwind CSS + shadcn/ui
- AI: OpenAI (homework generation, AI tutor)
- Auth: Custom email/password with scrypt hashing — no third-party provider required
- Node 24+
- pnpm (
npm install -g pnpm) - PostgreSQL database
Copy .env.example and fill in the values:
cp .env.example .env| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
PORT |
Yes | Port for the API server |
OPENAI_API_KEY |
Yes | OpenAI API key |
CORS_ORIGIN |
No | Allowed origin in production (e.g. https://stepiq.com) |
pnpm install
# Push the database schema
pnpm --filter @workspace/db run push
# Start the API server (port set by PORT env var)
pnpm --filter @workspace/api-server run dev
# In a second terminal — start the frontend dev server
BASE_PATH=/ PORT=5173 pnpm --filter @workspace/homework-hub run devpnpm run builddocker build -t stepiq .
docker run -p 3000:3000 \
-e DATABASE_URL=... \
-e OPENAI_API_KEY=... \
-e CORS_ORIGIN=https://your-domain.com \
stepiqThe container serves both the API (/api/*) and the built frontend on a single port.
| Command | Description |
|---|---|
pnpm run typecheck |
Full typecheck across all packages |
pnpm run build |
Typecheck + build all packages |
pnpm --filter @workspace/db run push |
Push DB schema changes (dev only) |
pnpm --filter @workspace/api-spec run codegen |
Regenerate API client from OpenAPI spec |
artifacts/
api-server/ Express API server
homework-hub/ React frontend
lib/
db/ Drizzle schema + migrations
api-spec/ OpenAPI spec
api-client-react/ Generated React Query hooks
api-zod/ Generated Zod schemas