Skip to main content

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 course
  • COURSE 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

uw_course-3.2.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uw_course-3.2.1-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

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

Hashes for uw_course-3.2.1.tar.gz
Algorithm Hash digest
SHA256 1317550976603f4e7ba69e5fa95bb1301b2e949bbae105273133b4c208a107aa
MD5 fb51b8bc1d0637689c33752454b63337
BLAKE2b-256 fdb30d079c28fb6a6d5f25ed4fc61e9a13da9900a94e40efc86993298053bdbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for uw_course-3.2.1.tar.gz:

Publisher: publish-to-pypi.yml on zangjiucheng/uw-course

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for uw_course-3.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 81343df63ccd56cf487f1cb2afa3cd4241fb34af795fc4bdb95be687fa3e53c5
MD5 0c58137a616860d0b4a4bb651aee59f4
BLAKE2b-256 94e8509d0fa253e5be4a57546e9e7454bd10ead06a1e8948b7699b132dc20ae0

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.2.1 This release

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.0.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page