Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CAMPUS_DATA_OWNERSHIP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Campus data ownership

Canonical public campus facts and geometry across all 13 supported Canadian universities (15 campus models) live in `GapwiseHQ/data`. University datasets live under their canonical identifiers (e.g. `universities/carleton`, `universities/ubc`, and `universities/waterloo`); UTM's reviewed entrance/routing dataset lives under `data/utm`, and UTSG and UTSC identities and geometry live in their respective campus directories.
Canonical public campus facts and geometry across all 14 supported Canadian universities (16 campus models) live in `GapwiseHQ/data`. University datasets live under their canonical identifiers (e.g. `universities/carleton`, `universities/ubc`, `universities/waterloo`, and `universities/mcgill`); UTM's reviewed entrance/routing dataset lives under `data/utm`, and UTSG and UTSC identities and geometry live in their respective campus directories.

`gapwise` consumes a validated build-time snapshot and remains authoritative for deterministic routing/gap-planning behavior, the public API/OpenAPI contract, SDK semantics, and product presentation. `docs` documents released contracts; it must not become an independent source of campus facts or product behavior.

Expand Down
6 changes: 3 additions & 3 deletions ECOSYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ All first-party product repositories are owned by the **Gapwise** GitHub organiz
| `GapwiseHQ/android` | native Android implementation, Android device integration, persistence adapters, and Android distribution behavior |
| `GapwiseHQ/ios` | native iOS implementation, Apple-platform integration, persistence adapters, and iOS distribution behavior |
| `GapwiseHQ/ai` | OAuth/MCP delegation, tool schemas, permissions, bounded mutations, AI compatibility evidence |
| `GapwiseHQ/data` | **canonical public campus facts and geometry across 13 supported universities (15 campus models)**, entrances, routing graph data, provenance, schemas, evidence, attribution, validation, and reuse |
| `GapwiseHQ/data` | **canonical public campus facts and geometry across 14 supported universities (16 campus models)**, entrances, routing graph data, provenance, schemas, evidence, attribution, validation, and reuse |
| `GapwiseHQ/docs` | released public developer documentation and documentation information architecture |
| `GapwiseHQ/status` | operational health and incident communication |

`gapwise` vendors a validated build-time mirror of `data/utm` from the `data` repository at `src/data/utm`. That local path preserves existing imports and deterministic deployment behavior; it is not a second campus-data authority and does not create a runtime dependency on `data.gapwise.ca` or GitHub.

## Product scope

Gapwise supports 13 Canadian universities across 15 campus models. The first-party public campus API, reviewed building/entrance and pedestrian route graph, places, and production data support multi-university discovery and campus models. Documentation must preserve specific campus provenance, entrance, and accessibility depth instead of implying identical evidence across all campuses.
Gapwise supports 14 Canadian universities across 16 campus models. The first-party public campus API, reviewed building/entrance and pedestrian route graph, places, and production data support multi-university discovery and campus models. Documentation must preserve specific campus provenance, entrance, and accessibility depth instead of implying identical evidence across all campuses.

## Current developer-platform state

Expand All @@ -43,7 +43,7 @@ TypeScript and Python are equal first-party SDKs. Documentation should provide c
## Documentation rules

1. OpenAPI + core implementation own public HTTP behavior and deterministic calculations.
2. `data` owns raw public campus facts across 13 supported universities, geometry, routing graph data, provenance, and evidence.
2. `data` owns raw public campus facts across 14 supported universities, geometry, routing graph data, provenance, and evidence.
3. SDK docs follow released package/source behavior and never invent methods or types.
4. Registry claims are evidence-based: reserved/configured is not the same as published.
5. Runtime claims are evidence-based: Node/Bun/Deno/browser support should reflect CI/release verification rather than assumptions.
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

This repository is the canonical public developer-documentation surface for **Gapwise**, a free and open-source multi-university timetable and campus-intelligence platform created and engineered by **Andrew Muratov**.

Gapwise currently supports **13 universities across 15 campus models in Canada**:
Gapwise currently supports **14 universities across 16 campus models in Canada**:

1. **University of Toronto** (`gapwise.ca`) — Mississauga, St. George, and Scarborough
2. **Carleton University** (`carleton.gapwise.ca`) — Ottawa campus
Expand All @@ -40,6 +40,7 @@ Gapwise currently supports **13 universities across 15 campus models in Canada**
11. **Brock University** (`brock.gapwise.ca`) — St. Catharines campus
12. **University of British Columbia** (`ubc.gapwise.ca`) — Vancouver / Point Grey campus
13. **University of Waterloo** (`waterloo.gapwise.ca`) — Main campus
14. **McGill University** (`mcgill.gapwise.ca`) — Downtown Montreal campus

The documentation describes the multi-university architecture, public campus API, SDKs, data layers, and permissioned AI/MCP integration without presenting Gapwise as a single-institution product.

Expand Down
1 change: 1 addition & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ export default defineConfig({
items: [
{ label: "Recipes", slug: "guides/recipes" },
{ label: "Add a university", slug: "guides/add-university" },
{ label: "McGill University", slug: "guides/mcgill" },
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/ai/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Gapwise AI & MCP
description: Connect AI clients to public campus intelligence across 13 supported universities and explicitly delegated Gapwise context without turning deterministic facts into model guesses.
description: Connect AI clients to public campus intelligence across 14 supported universities and explicitly delegated Gapwise context without turning deterministic facts into model guesses.
---

Gapwise AI is the **remote Model Context Protocol (MCP) integration boundary** between an AI client and Gapwise. It exposes stateless public campus intelligence plus narrowly permissioned private student context without giving a client unrestricted account access.
Expand Down
6 changes: 3 additions & 3 deletions src/content/docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: API overview
description: The public Gapwise campus intelligence API v1.
---

Gapwise exposes public campus primitives across 13 supported Canadian universities (and 15 campus models) over HTTPS. The canonical production base URL is `https://api.gapwise.ca/v1`. The API is intentionally unauthenticated and preserves provenance, verification state, and uncertainty instead of fabricating missing facts.
Gapwise exposes public campus primitives across 14 supported Canadian universities (and 16 campus models) over HTTPS. The canonical production base URL is `https://api.gapwise.ca/v1`. The API is intentionally unauthenticated and preserves provenance, verification state, and uncertainty instead of fabricating missing facts.

## Public API or AI & MCP?

Expand All @@ -23,8 +23,8 @@ The two surfaces are intentionally separate:
| Method | Endpoint | Purpose |
| --- | --- | --- |
| `GET` | `/v1` | API capabilities, versions, and privacy boundary |
| `GET` | `/v1/universities` | Discover all 13 supported universities, editions, and capabilities |
| `GET` | `/v1/campuses` | Discover all 13 supported campus models and metadata |
| `GET` | `/v1/universities` | Discover all 14 supported universities, editions, and capabilities |
| `GET` | `/v1/campuses` | Discover all 16 supported campus models and metadata |
| `GET` | `/v1/buildings` | Search and list canonical buildings for any supported university/campus |
| `GET` | `/v1/buildings/:building` | Resolve one building by code, exact name, or recognized alias |
| `GET` | `/v1/places` | Search and list campus places |
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/api/buildings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Buildings
description: Canonical building identity, discovery, pagination, and provenance across supported universities.
---

The v1 building resources expose stable Gapwise identities for recognized campus buildings across 13 supported universities. Identity/search coverage does not imply that every entrance, indoor path, floor, or accessibility detail has been surveyed.
The v1 building resources expose stable Gapwise identities for recognized campus buildings across 14 supported universities. Identity/search coverage does not imply that every entrance, indoor path, floor, or accessibility detail has been surveyed.

## List and search

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ gapwise campuses --university carleton
gapwise campuses --university york
```

Gapwise currently supports 13 universities and 15 campus models. Discovery shows canonical IDs, names, and routing availability. Public campus queries require `--university ID`; otherwise the API's historical U of T default could silently give the wrong edition's data. `--campus` selects one of that university's campus IDs; omitting it uses that university's default campus.
Gapwise currently supports 14 universities and 16 campus models. Discovery shows canonical IDs, names, and routing availability. Public campus queries require `--university ID`; otherwise the API's historical U of T default could silently give the wrong edition's data. `--campus` selects one of that university's campus IDs; omitting it uses that university's default campus.

## Query public campus facts

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/data/datasets.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Dataset catalog
description: Canonical campus datasets and raw artifacts published by Gapwise Data.
---

Gapwise Data publishes canonical campus datasets across 13 supported universities (15 campus models). Campus-wide models are maintained under `universities/<id>/campus.json` containing buildings, coordinates, and navigation metadata. In addition, the reviewed UTM subtree lives under `data/utm`, distributed as raw artifacts at `https://data.gapwise.ca/datasets/utm/latest/`. Additional university datasets (such as UBC Vancouver, Carleton, Queen's, Western, Ottawa, McMaster, Laurier, York, Guelph, Brock, UTSG, and UTSC) live in their own canonical directories.
Gapwise Data publishes canonical campus datasets across 14 supported universities (16 campus models). Campus-wide models are maintained under `universities/<id>/campus.json` containing buildings, coordinates, and navigation metadata. In addition, the reviewed UTM subtree lives under `data/utm`, distributed as raw artifacts at `https://data.gapwise.ca/datasets/utm/latest/`. Additional university datasets (such as UBC Vancouver, Waterloo Main, McGill Downtown, Carleton, Queen's, Western, Ottawa, McMaster, Laurier, York, Guelph, Brock, UTSG, and UTSC) live in their own canonical directories.

## Major surfaces

Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/data/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ Gapwise separates **canonical ownership**, **public distribution**, and **runtim
To discover available universities and campus models programmatically, use the public API discovery endpoints:

```bash
# Discover 13 supported universities
# Discover 14 supported universities
curl https://api.gapwise.ca/v1/universities

# Discover 15 campus models and metadata
# Discover 16 campus models and metadata
curl https://api.gapwise.ca/v1/campuses
```

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/data/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Gapwise Data
description: Canonical multi-university campus data, schemas, provenance, distribution, and reuse.
---

Gapwise Data is the canonical public source for campus facts and geometry across 13 supported Canadian universities (15 campus models) used throughout the Gapwise ecosystem. Building identity, footprints, and metadata cover all supported institutions; additional reviewed exterior entrance registries and routing graphs are maintained for institutions like UTM and Carleton.
Gapwise Data is the canonical public source for campus facts and geometry across 14 supported Canadian universities (16 campus models) used throughout the Gapwise ecosystem. Building identity, footprints, and metadata cover all supported institutions; additional reviewed exterior entrance registries and routing graphs are maintained for institutions like UTM, UBC Vancouver, Waterloo Main, and McGill Downtown.

- **Portal:** `https://data.gapwise.ca`
- **Entrance contributor (UTM):** `https://data.gapwise.ca/contribute`
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/guides/add-university.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Add a timetable adapter and reviewed campus data to the shared Gapw

Gapwise has one web application in `gapwise`. The manifest selects an institution by hostname. Timetable adapters return the shared meeting model; Today, Timetable, Gap Plan, Campus Map, and Day Route consume that model and the selected campus catalog. University facts and routing evidence belong in `data`.

Gapwise currently supports 13 universities across Canada: University of Toronto (`gapwise.ca`), Carleton University (`carleton.gapwise.ca`), Toronto Metropolitan University (`tmu.gapwise.ca`), Queen's University (`queens.gapwise.ca`), Wilfrid Laurier University (`laurier.gapwise.ca`), York University (`york.gapwise.ca`), McMaster University (`mcmaster.gapwise.ca`), Western University (`western.gapwise.ca`), University of Guelph (`guelph.gapwise.ca`), University of Ottawa (`uottawa.gapwise.ca`), Brock University (`brock.gapwise.ca`), the University of British Columbia (`ubc.gapwise.ca`), and the University of Waterloo (`waterloo.gapwise.ca`). All editions are built from the unified `gapwise` and `data` codebase.
Gapwise currently supports 14 universities across Canada: University of Toronto (`gapwise.ca`), Carleton University (`carleton.gapwise.ca`), Toronto Metropolitan University (`tmu.gapwise.ca`), Queen's University (`queens.gapwise.ca`), Wilfrid Laurier University (`laurier.gapwise.ca`), York University (`york.gapwise.ca`), McMaster University (`mcmaster.gapwise.ca`), Western University (`western.gapwise.ca`), University of Guelph (`guelph.gapwise.ca`), University of Ottawa (`uottawa.gapwise.ca`), Brock University (`brock.gapwise.ca`), the University of British Columbia (`ubc.gapwise.ca`), the University of Waterloo (`waterloo.gapwise.ca`), and McGill University (`mcgill.gapwise.ca`). All editions are built from the unified `gapwise` and `data` codebase.

## Create a scaffold

Expand Down
25 changes: 25 additions & 0 deletions src/content/docs/guides/mcgill.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: McGill University edition
description: Import a myCourses calendar and use Gapwise's source-backed downtown campus navigation.
---

The McGill edition is available at [mcgill.gapwise.ca](https://mcgill.gapwise.ca). Its initial campus scope is the downtown Montreal campus. Gapwise does not currently claim coverage of Macdonald Campus, indoor routes, construction detours, or verified step-free paths.

## Import a timetable

Gapwise accepts the standard `.ics` calendar export documented by McGill for myCourses:

1. Open the myCourses Calendar and enable calendar feeds.
2. Choose **Subscribe** and select the course events to export.
3. Choose **Download** and save the `.ics` file.
4. Open `mcgill.gapwise.ca` and import that file locally in the browser.

Gapwise does not ask for a McGill username or password, scrape Minerva, or upload the original calendar file. Events whose summaries do not contain a recognizable McGill course code remain excluded with an import warning; unmatched physical locations remain visible without being attached to an invented building.

McGill's official instructions are available in the [myCourses calendar guide](https://teachingkb.mcgill.ca/tlk/organize-your-course-schedule-and-create-task-list).

## Campus data and routing

The downtown model combines factual building identity from McGill's published campus map and exam-location directory with redistributable OpenStreetMap footprints, entrance nodes, and outdoor pedestrian ways. Explicitly mapped entrances retain their OSM identity. Short building-to-path connectors are labeled inferred, and entrance access remains unknown unless the source explicitly marks it restricted.

The initial release includes building discovery, outdoor pedestrian routing, Day Route, and between-class planning for mapped downtown locations. Step-free routing is unavailable because accessibility has not been verified for this graph. See the [Gapwise Data source notes](https://github.com/GapwiseHQ/data/blob/main/docs/universities/mcgill-sources.md) for the exact provenance and exclusions.
4 changes: 2 additions & 2 deletions src/content/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Pick the interface that matches the semantics and trust boundary your project ac

### Public campus platform

The canonical public API exposes versioned buildings and places across 13 supported Canadian universities (and 15 campus models), deterministic building-to-building routing, and route-aware assessment of an explicitly supplied free interval.
The canonical public API exposes versioned buildings and places across 14 supported Canadian universities (and 16 campus models), deterministic building-to-building routing, and route-aware assessment of an explicitly supplied free interval.

- API base: `https://api.gapwise.ca/v1`
- OpenAPI 3.1: `https://api.gapwise.ca/openapi.json`
Expand All @@ -90,7 +90,7 @@ Successful responses use `{ data, meta }`; errors use a nested structured error

### Canonical open campus data

Gapwise Data is the canonical repository for public campus facts and geometry across 13 supported universities (15 campus models). It owns university- and campus-scoped building identity, footprints, and metadata. Its production distribution includes reviewed entrances, routing graph inputs, provenance, evidence state, uncertainty, and generated data audits, with specialized raw artifacts for campuses such as UTM.
Gapwise Data is the canonical repository for public campus facts and geometry across 14 supported universities (16 campus models). It owns university- and campus-scoped building identity, footprints, and metadata. Its production distribution includes reviewed entrances, routing graph inputs, provenance, evidence state, uncertainty, and generated data audits, with specialized raw artifacts for campuses such as UTM.

Raw artifacts are published under:

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/platform/ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ hostname -> universities.json -> university timetable adapter -> shared meetings
data/universities/<id>/campus.json -> campus catalog + path graph -> shared UI/routing
```

Gapwise resolves hostnames dynamically: `gapwise.ca` selects U of T, `carleton.gapwise.ca` selects Carleton, `tmu.gapwise.ca` selects TMU, `queens.gapwise.ca` selects Queen's, `laurier.gapwise.ca` selects Laurier, `york.gapwise.ca` selects York, `mcmaster.gapwise.ca` selects McMaster, `western.gapwise.ca` selects Western, `guelph.gapwise.ca` selects Guelph, `uottawa.gapwise.ca` selects uOttawa, `brock.gapwise.ca` selects Brock, `ubc.gapwise.ca` selects UBC Vancouver, and `waterloo.gapwise.ca` selects the University of Waterloo main campus. See [Add a university](/guides/add-university/) for the scaffold, data, testing, and deployment workflow.
Gapwise resolves hostnames dynamically: `gapwise.ca` selects U of T, `carleton.gapwise.ca` selects Carleton, `tmu.gapwise.ca` selects TMU, `queens.gapwise.ca` selects Queen's, `laurier.gapwise.ca` selects Laurier, `york.gapwise.ca` selects York, `mcmaster.gapwise.ca` selects McMaster, `western.gapwise.ca` selects Western, `guelph.gapwise.ca` selects Guelph, `uottawa.gapwise.ca` selects uOttawa, `brock.gapwise.ca` selects Brock, `ubc.gapwise.ca` selects UBC Vancouver, `waterloo.gapwise.ca` selects the University of Waterloo main campus, and `mcgill.gapwise.ca` selects McGill's downtown Montreal campus. See [Add a university](/guides/add-university/) for the scaffold, data, testing, and deployment workflow.

## Source-of-truth flow

Expand Down
Loading
Loading