School management software & AI learner
# School Kit
A multi-tenant SaaS school management platform for Nigerian private schools, with AI-assisted learning built in from day one.
**Status:** Phase 0 — Foundations. Pre-launch. Not yet accepting customers.
**Stack:** Next.js 15 · NestJS 10 · PostgreSQL 16 (with RLS + pgvector) · Redis · Prisma · Expo · Anthropic Claude API · Paystack · Termii
---
## Read these first
Before doing anything in this repo, read in order:
1. `CLAUDE.md` — conventions, rules, and how code is written here
2. `WORKFLOW.md` — how work happens day-to-day; module lifecycle; quality gates
3. `docs/ARCHITECTURE.md` — system design, data model, all 17 modules, build phases
4. `docs/modules/phase-0.md` — the active phase spec
Future contributors and future-you should be productive after reading these four documents.
---
## Quick start
### Prerequisites
- Node.js 22.x LTS (use `nvm` or `volta`)
- pnpm 9.x (`npm install -g pnpm`)
- Docker Desktop (for local Postgres + Redis)
- Git
### Setup
```bash
# Clone and install
git clone school-kit
cd school-kit
pnpm install
# Environment
cp .env.example .env
# Fill in API keys: see "Env vars" below
# Database
pnpm db:up # docker-compose: postgres + redis + pgvector
pnpm db:migrate # apply migrations
pnpm db:seed # seed system roles (idempotent)
pnpm dev:seed # DEV-ONLY: full test school for browser testing
# (idempotent; run db:seed first). Logs the
# dev-owner / dev-teacher logins + password.
# Run everything
pnpm dev
```
After `pnpm dev` boots, you should see:
- Web (admin/teacher): `
localhost`
- API: `
localhost`
- Mobile (Expo): scan QR with Expo Go app
- Prisma Studio (optional): `pnpm db:studio` → `
localhost`
### First-time sanity check
```bash
pnpm typecheck # should pass
pnpm lint # should pass
pnpm test # should pass
```
If any of those fail on a clean clone, something is broken — fix before touching feature code. …