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.0.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.0-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file uw_course-3.2.0.tar.gz.

File metadata

  • Download URL: uw_course-3.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 86d34d45adb2d9503f2a57c2cdd5bb058289459a1725a41e8125ee27e9323cfb
MD5 7fdebab796919bef9f6441b03b1e5765
BLAKE2b-256 07c03d6a67c2ff41fc9df592b94421c8057c3723acfb553eb8973a67b86e6f21

See more details on using hashes here.

Provenance

The following attestation bundles were made for uw_course-3.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: uw_course-3.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8eb4c49e7d7acf74fea82cffc3dc87bec50124a16cced56932fdb47cc8b78d18
MD5 a27437d37a21a61429e5c239ad529526
BLAKE2b-256 814815f02b7d9ae76bf70cbf4de8e67b7e615ad7b391bb1fa5248cf8497575a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for uw_course-3.2.0-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

3.2.1

2 files

This release

3.2.0 This release

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