Privacy-first campus intelligence for the University of Toronto Mississauga.
Local-first · deterministic where correctness matters · explicit about trust boundaries
Gapwise turns a UTM timetable into a model of the day around it: what is next, how much usable time exists between classes, where a student can realistically go, when they need to leave, and how certain the underlying campus information is.
The original ACORN calendar is parsed locally in the browser. Timetable arithmetic, routing, travel time, gap budgets, destination feasibility, and leave-by calculations are deterministic rather than delegated to a language model.
| Repository | Owns | Surface |
|---|---|---|
gapwise |
Core web/PWA product, student-state behavior, deterministic campus engine, public API and SDK source | gapwise.ca · api.gapwise.ca |
gapwise-mobile |
Native iOS and Android client consuming canonical Gapwise contracts | Mobile |
gapwise-ai |
OAuth/MCP boundary for explicitly delegated student context and bounded AI actions | ai.gapwise.ca |
gapwise-data |
Canonical public UTM campus data, provenance, schemas and validation | data.gapwise.ca |
gapwise-docs |
Public developer documentation for APIs, SDKs, data, security and AI/MCP | docs.gapwise.ca |
gapwise-status |
Independent service-health monitoring and incident communication | status.gapwise.ca |
flowchart LR
U[Student] --> W[Web / PWA]
U --> M[Mobile]
U -. optional delegation .-> A[AI / MCP]
W --> C[Deterministic Gapwise core]
M --> C
A --> C
C --> D[Canonical campus data]
A --> D
DOCS[Documentation] -. describes .-> C
DOCS -. describes .-> D
STATUS[Status] -. observes .-> W
STATUS -. observes .-> A
Gapwise owns deterministic student-day semantics. gapwise-data owns shared campus facts. gapwise-docs documents released contracts. gapwise-status observes public services. AI consumes bounded context; it does not become a second timetable or routing engine.
| Principle | What it means | |
|---|---|---|
| 01 | Privacy first | Collect, transmit and retain less student information. Keep trust boundaries narrow and explicit. |
| 02 | Deterministic core | Schedules, routes, durations, feasibility and leave-by timing must be reproducible. |
| 03 | Canonical facts | Shared campus information has one owner, with provenance and visible uncertainty. |
| 04 | Local where practical | Keep useful functionality available without unnecessary network dependencies. |
| 05 | Interfaces consume truth | Web, mobile, APIs and AI should not silently recreate domain behavior. |
| 06 | Useful over complicated | Architecture exists to improve a student's day, not to make the diagram larger. |
- API:
api.gapwise.ca/v1 - OpenAPI:
api.gapwise.ca/openapi.json - Documentation:
docs.gapwise.ca - Campus data:
data.gapwise.ca - JavaScript / TypeScript SDK:
@gapwise/sdk - Security:
security@gapwise.ca - Support:
support@gapwise.ca
Choose the repository that owns the behavior you want to change. Shared contribution, security, support and pull-request guidance lives in this organization's .github repository and is inherited by repositories that do not provide a more specific policy.
Campus facts and routing evidence belong in gapwise-data. Product behavior belongs in gapwise. Public documentation belongs in gapwise-docs. Keep changes focused and preserve the source-of-truth boundary.
Independent student software. Not affiliated with or endorsed by the University of Toronto.
Built for the spaces between classes.