Skip to content

Web UI

Unified Flask web UI — the active skin serves the full TIS course selector (5-step: search → pick → conflict-free schedule → compare → bid & sync), the campus transit map, and NCES evals on a single port. Two skins ship with the package: default (English) and default_zh (Chinese).

Extras: [webui] extra installs Flask.


CLI

sustech webui serve                    # start on default port 20129
sustech webui serve -p 8080 -H 0.0.0.0 # custom port/host
sustech webui serve --skin default_zh   # serve the Chinese skin
sustech webui skin set my-skin           # persist the default skin
sustech webui skin delete my-skin        # delete a user-installed skin

sustech webui open                     # open in default browser

If the port is already in use (typically another sustech webui serve still running), serve exits with a clear message and exit code 1 instead of a raw bind-error traceback.


Python API

from sustech_survival.webui.app import create_app, run

app = create_app()           # Flask app for WSGI servers
run(port=20129, host="127.0.0.1", debug=False)

Routes

Route Description
/ Landing page
/tis TIS course selector + schedule grid
/transit Campus map + bus navigation
/api/tis/ical iCal export of picked schedule
/api/nces/* NCES evaluation data endpoints
/api/transit/* Transit data endpoints

The Web UI binds to 127.0.0.1 by default for use on the same computer. Pass --host 0.0.0.0 explicitly to share it on a trusted network. The transit proxy serves only PMTiles and glyph files from the SUSTech map-mirror directory; upstream redirects are reported as an error.