Connected Campus
Connected Campus is a multi-institution Campus OS — one canonical schema, one workflow engine, one AI layer, built so that onboarding institution #50 costs a fraction of institution #1. It is a Turborepo + Bun monorepo running the whole fleet on Bun, with Postgres as the single system of record for relational data, the knowledge graph (Apache AGE), and vector search (pgvector).
Where to start
- What's built today — a page-by-page, verified inventory of what actually runs
versus what is still a scaffold. Read this first if you are evaluating the codebase; several
documents in
architecture/describe the target design and read as though more exists than does. - Getting started — prerequisites,
.envsetup, migrations, seeding, the legacy data import, and bootstrapping an admin login. - Architecture Strategy — the product thesis: what is actually different here from a conventional campus ERP, and why.
- Technical Architecture — the target stack: runtime, multi-tenancy, graph/vector layer, workflow engine, agent layer.
- Data Model and Multi-Tenancy — how the schema and the isolation model actually work.
- API Surface and Admin App — the endpoints and screens that exist today.
- Services — the workflow, agent, and credential services, each documented with its real implementation status.
- Roadmap & Known Gaps — what is deliberately not built yet, and what to do next.
Design partner
The build is grounded against a real institution rather than synthetic seed data: the org
structure, students, staff, enrollments, curriculum, and per-class attendance records were imported
from an actual legacy college ERP backup (docs/cs-04Aug2026-02 (1)/), which is why several schema
decisions carry a note explaining why they are shaped the way they are — in most cases the
constraint came from real data, not from a design preference.
Monorepo layout
This documentation site lives at apps/docs, alongside:
| Path | What it is | Stack |
|---|---|---|
apps/web | Internal, authenticated Campus OS (admin UI today) | TanStack Start + Router + Query + Table |
apps/api | Module engine's REST/RPC surface, RBAC, tenant resolution | Hono on Bun |
apps/agents | Role-agent service (IQAC agent scaffold) | Mastra on Bun |
apps/workflow | Durable approval/compliance workflow layer | DBOS + pg-boss + XState on Bun |
apps/credentials | W3C Verifiable Credential issuance | Veramo on Bun |
apps/site | Public institution pages + credential verification | Next.js |
packages/db | Drizzle schema, Postgres client, tenancy/mutation/graph services | Drizzle + postgres.js |
packages/observability | Shared Sentry init for the Bun services | @sentry/bun |
packages/typescript-config | Shared tsconfig base | — |
Default local ports
| Service | Port |
|---|---|
apps/web | 3000 |
apps/api | 4000 |
apps/agents | 4001 |
apps/credentials | 4002 |
apps/site | 3002 |
apps/docs | 3003 |
| Postgres | 55432 on the host (5432 inside the container — the host port is remapped because a system Postgres commonly occupies 5432) |