This is an unofficial alternative timetable viewer for the Australian National University built by members of the ANU Computer Science Students' Association. It's available here. It serves as an up-to-date (automatically updated each day), fast, easy to use alternative to the official timetable. It replaces the old unofficial timetable here which has not been updated for 2022.
Components:
- A React.js front-end in
/src
and/public
. It's hosted as an Azure Static Web App by @pl4nty (free tier). Commits to master are deployed to timetable.cssa.club minutes later via a GitHub Action. Commits to open PR's are pushed to staging URL's for testing. - A Python scraping script in
scraper
inherited from anutimetable.com that scrapes the official ANU timetable website. It is run once a day by a GitHub Action and the results are saved topublic/timetable*.json
. - Several Azure functions in
/api
hosted by @pl4nty (free tier plan). These generate useful data on the fly like the calendar exports (GetICS
) which can be linked to your calendar software (so they automatically update) or downloaded (as an ICS file).
Local development:
- First time setup
- Install
node
- Navigate to the root of the repo and run
npm ci
- Navigate to the
api
subfolder and runnpm ci
again - Run
sudo npm i -g @azure/static-web-apps-cli azure-functions-core-tools
- Install
- Running it
- In VSCode, open the repo and press the run button (F5)
- In other editors, run the commands in the
.vscode
config in a terminal
Future directions:
- Move away from Azure functions (to client side logic and GitHub Actions where possible)
- The Class Allocation Project team intend to roll out a new timetabling experience in semester 2 2022 or 2023. Once this transition is complete this project will be archived or rewritten as the Python scraper will be obsolete.
Contributing:
- If you would like to contribute bug reports or to the development, please join the CSSA Discord server and chat with us in the #timetable channel
- Another rewrite in React thanks to @pl4nty
- Migrated into the ANU Computer Science Students' Association's GitHub organisation for ongoing maintenance
- Deployed to https://timetable.cssa.club/
- Calendar file generator (ICS/webcal) thanks to @pl4nty, available at
/api/GetICS
eg/api/GetICS?COMP2310_S2
or/api/GetICS?COMP2310_S2=ComA 01,COMP2310_S2=ComB 01
- Integration with existing scraper and frontend fixes thanks to @OliverBalfour
- Frontend rewritten in React with ANU's official API and GitHub Actions thanks to @pl4nty
See old_changelog.md for changes prior to the rewrite