Conflict-free and optimal undergraduate course timetable generator for UWO.
A web application to automatically produce valid undergrad course timetables for the University of Western Ontario. The frontend SPA is written with Vue.js. The backend is a Node.js server that invokes a C++ program that does the main computing.
Data comes from timetable-scraper-java.
.
├── compute_server # backend Node/C++ processing server
├── conf # misc infra files
└── site/ttmaker
└── src # frontend Vue app
-
First run timetable-scraper-java to produce
master.json
andsearch.json
and place them insite/ttmaker/src/
. -
Navigate to
site/ttmaker/
. -
Run
npm ci
to download dependencies. -
Run
npm run serve
to build and serve the site locally with hot reload. -
Run
npm run build
to package everything for production. Production files will be created indist/
.
compute_server/
contains a Node.js HTTP server to receive data and interface with a C++ executable that computes and evaluates valid timetables. For simplicity, this is a stateless pure function and relies on the frontend to send it all the data that it needs.
-
Navigate to
compute_server/
. -
Run
make
to compile the C++ program. -
Run
npm ci
to download dependencies. -
Run
node server.js
to start the backend server.