uw-course
A browser-based University of Waterloo course planner backed by the live MongoDB
course database. Search courses, browse sections, build a weekly timetable, and
import/export plans — with auto-resolution for course-only plans like CS 341.
Install
pip install uw-course
Run
uw-course
Starts the web app at http://127.0.0.1:31415 and opens it in your default browser.
Environment variables: UW_COURSE_HOST, UW_COURSE_PORT, UW_COURSE_DEBUG,
UW_COURSE_NO_BROWSER, MONGODB_URI.
Plan format
Class2026Winter
CS 341
MATH 239
STAT 230, 1234
- first line: the term collection name (must match a real collection exactly)
COURSE CODE— auto-resolve a section for this courseCOURSE CODE, CLASS_ID— lock this exact section
Development
The UI is a React + Vite app in frontend/; the backend is Flask.
pip install -e . # editable backend install
./scripts/build_frontend.sh # build the UI into the package, then run `uw-course`
npm --prefix frontend run dev # live UI development (proxies /api to Flask)
The published package and Docker image bundle the compiled UI, so a PyPI install runs with no build step. The release workflow builds the frontend automatically before packaging.
Web API
GET /api/terms · GET /api/courses?term=&q= · GET /api/courses/<code>?term= ·
POST /api/schedule · POST /api/plan/parse · POST /api/plan/export ·
POST /api/plan/resolve
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uw_course-3.2.1.tar.gz.
File metadata
- Download URL: uw_course-3.2.1.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1317550976603f4e7ba69e5fa95bb1301b2e949bbae105273133b4c208a107aa
|
|
| MD5 |
fb51b8bc1d0637689c33752454b63337
|
|
| BLAKE2b-256 |
fdb30d079c28fb6a6d5f25ed4fc61e9a13da9900a94e40efc86993298053bdbd
|
Provenance
The following attestation bundles were made for uw_course-3.2.1.tar.gz:
Publisher:
publish-to-pypi.yml on zangjiucheng/uw-course
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uw_course-3.2.1.tar.gz -
Subject digest:
1317550976603f4e7ba69e5fa95bb1301b2e949bbae105273133b4c208a107aa - Sigstore transparency entry: 2518991298
- Sigstore integration time:
-
Permalink:
zangjiucheng/uw-course@273bf95997e421c9d36d253b2ebd63b8a8f78ef1 -
Branch / Tag:
refs/tags/v3.2.1 - Owner: https://github.com/zangjiucheng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@273bf95997e421c9d36d253b2ebd63b8a8f78ef1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file uw_course-3.2.1-py3-none-any.whl.
File metadata
- Download URL: uw_course-3.2.1-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81343df63ccd56cf487f1cb2afa3cd4241fb34af795fc4bdb95be687fa3e53c5
|
|
| MD5 |
0c58137a616860d0b4a4bb651aee59f4
|
|
| BLAKE2b-256 |
94e8509d0fa253e5be4a57546e9e7454bd10ead06a1e8948b7699b132dc20ae0
|
Provenance
The following attestation bundles were made for uw_course-3.2.1-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on zangjiucheng/uw-course
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uw_course-3.2.1-py3-none-any.whl -
Subject digest:
81343df63ccd56cf487f1cb2afa3cd4241fb34af795fc4bdb95be687fa3e53c5 - Sigstore transparency entry: 2518991362
- Sigstore integration time:
-
Permalink:
zangjiucheng/uw-course@273bf95997e421c9d36d253b2ebd63b8a8f78ef1 -
Branch / Tag:
refs/tags/v3.2.1 - Owner: https://github.com/zangjiucheng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@273bf95997e421c9d36d253b2ebd63b8a8f78ef1 -
Trigger Event:
push
-
Statement type: