Skip to main content

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, .env setup, 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:

PathWhat it isStack
apps/webInternal, authenticated Campus OS (admin UI today)TanStack Start + Router + Query + Table
apps/apiModule engine's REST/RPC surface, RBAC, tenant resolutionHono on Bun
apps/agentsRole-agent service (IQAC agent scaffold)Mastra on Bun
apps/workflowDurable approval/compliance workflow layerDBOS + pg-boss + XState on Bun
apps/credentialsW3C Verifiable Credential issuanceVeramo on Bun
apps/sitePublic institution pages + credential verificationNext.js
packages/dbDrizzle schema, Postgres client, tenancy/mutation/graph servicesDrizzle + postgres.js
packages/observabilityShared Sentry init for the Bun services@sentry/bun
packages/typescript-configShared tsconfig base—

Default local ports​

ServicePort
apps/web3000
apps/api4000
apps/agents4001
apps/credentials4002
apps/site3002
apps/docs3003
Postgres55432 on the host (5432 inside the container — the host port is remapped because a system Postgres commonly occupies 5432)