This is a class project for practicing software engineering. This application consists of several parts:
- Parse courses and rooms data from zipped text files into json objects. Throw errors if data is not valid.
- Handle queries on courses and rooms and present data that satisfies the query. A sample query could be: "find courses in department X that has more than Y students". Throw erros if an invalid query is given.
- Generate a class schedule that avoids as many contraints as possible. Some constraints are: a course must always take place at the same building, or a course could only happen on Tuesday/Thursday or Monday/Wednesday/Friday, etc.
a sample query on rooms and searched results.
a sample scheduling query and results
The above figure shows parts of the schedule.
- Practiced writing unit tests to cover most codes.
-
Used a flow network to solve the scheduling problem.
-
Used promises instead of call backs to handle asynchronous operations (e.g. sending/receiving requests, unzipping files, etc).
To build the project (note that Node (v6+) is required to run these commands):
-
yarn run clean
-
yarn run configure
-
yarn run build
To start the server:
-
yarn run start
Thanks to Judy Chen for collaborating with me on this project.