CTU TimeTable Generator v2

2021/01
logo

Background

This is a major improvement over the older version of this tool.
If you want to know more about the motivation and goals of this tool please read this post. This time I added KOS API wrapper to download required information (list of classes, ...) automatically and replaced CLI with prettier React JS generated front-end.

Development - source code

If you want to read more about how the algorithm that's powering this tool check out this post about the older version of this tool. The algorithm is the same, except for minor changes. What changes the most is UX/UI. This time there's no need for any manual setup, manual extracting data from the Sirius API and so on.

Technologies

The BackEnd part stays the same as in the older version, but instead of outputting all data to the terminal everything is nicely displayed in a browser and rendered using React.

Screenshots

Installation and usage

1) Generate Sirius API credentials here.

2) Edit config.txt

Example configuration

CLIENT_ID=Your client id
CLIENT_SECRET=Your client secret

FACULTY=ID of a faculty (18000 for FIT)
SEMESTER=ID of a semester (B201 for 2020/21)

COURSES=Space separated list of courses (e.g. BI-AAG A0B04N3 BI-AG1 BI-ZDM A0B04GA)
IGNORE_LECT=Space separated list of courses with ignored lectures (e.g. BI-AAG BI-AG1)
IGNORE_TUTS=Space separated list of courses with ignored tutorials
IGNORE_LABS=Space separated list of courses with ignored laboratories

NE_730=Should time tables with classes before or at 7:30 AM  be punished? (e.g. true)
NE_915=Should time tables with classes before or at 9:15 AM  be punished? (e.g. false)

BUILD=Build folder location (e.g. _build)
PORT=Port which will be used for the HTTP server to serve the generated content

3) Build and run the app.

./run.sh    # This should be your first step

./_start.sh # Start again when only config.txt changed without rebuild

./_build.sh # Build or rebuild only - useful for development