Skip to content

Local setup

Who this is for: Developers
What you'll achieve: Run SchoolRota locally with the demo tenant

Stack

  • Next.js (App Router) + tRPC + React
  • SQLite (better-sqlite3) + Drizzle ORM by default
  • Optional Redis / BullMQ worker
  • TypeScript scheduling engine in packages/domain

Quick start

bash
# 1) Install
pnpm install

# 2) Schema + blank demo tenant
cp .env.example .env
pnpm db:generate
pnpm db:migrate
pnpm db:seed

# 3) App (port 3001)
pnpm dev

Open http://localhost:3001/t/demo/login

FieldValue
Emailadmin@demo.school
Passwordchangeme123

Optional Redis worker:

bash
docker compose up -d redis
pnpm worker

Documentation site

bash
pnpm docs:dev      # http://localhost:5173
pnpm docs:build
pnpm docs:preview

Useful commands

bash
pnpm test
pnpm tenant:create -- --subdomain riverside --name "Riverside Primary" --email admin@riverside.test

Example school data policy

Example school documents are reference-only. No real school data is hard-coded into the product. Every tenant starts blank.

Next

SchoolRota documentation — every slot covered, every day.