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

Uploaded Python 3

File details

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

File metadata

  • Download URL: uw_course-3.1.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uw_course-3.1.0.tar.gz
Algorithm Hash digest
SHA256 ee0f34369fd794f50487208629d527562e55467fbba91420c2c5a66f8c87344d
MD5 8e3472e5b38d54a77943bff5f5b46e3a
BLAKE2b-256 b0cd5a4fe7316aa5adba0fa6c39c0a453dc0831d8a57661585902e2eb59bb0c8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: uw_course-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for uw_course-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21809091439fd7b8499cf08eb93ec78b7321b09a77b8087188ac3f406b16ec25
MD5 12e3b4923826d002423c60dad0fbd57d
BLAKE2b-256 1bd1d8eac9216c6fbdfbd05f986f5a71a360af95be8020c74cdcab3fd48eb7bf

See more details on using hashes here.

Provenance

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

3.2.0

2 files

This release

3.1.0 This release

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