Our team's goal is to stop the ongoing problem called "receiving the class schedule on monday night". Each year, many universities all across the globe have trouble sending said schedule on time, not to mention the various collisions and gaps between classes. We plan on solving this issue with a highly optimized schedule generator that takes into account various factors like available rooms and preffered teaching hours.
FOR universities and schools
WHO are looking to improve their organization at the start of the year.
Our product generates a class schedule
THAT is better planned and more time-efficient
UNLIKE the traditional method of doing it by hand.
Our product must:
- Not have collisions between required classes, rooms or professors
- Minimize collisions between optional classes
- Minimize gaps for students and professors
- Allow only university staff to generate/modify/publish the schedule
- Provide an intuitive user interface
Grace works as a secretary at a distinguished Computer Science university. She is very organized and quite experienced at her job. She's been employed for many years and has seen the university get more and more advanced with time. However, even Grace gets overwhelmed and frustrated sometimes. One of those times is the beginning of the school year, when, on top of everything else, she has to put the schedule together. This job starts off simple, quickly alligning the classes like a puzzle. However, then she gets notified that the algebra professor can't work Mondays and the data structures professor doesn't like having classes at 8 in the morning. Grace would be grateful to have a tool to manage this mess.
Arthur is a frontend teacher at said university. He also works a part-time job, but is fortunate enough to make his own hours. The second semester is about to start and he knows he will teach 3 first-year groups. Arthur is not a picky guy, but he hopes for either Fridays or Mondays off. The night of the opening ceremony rolls around and Arthur finds out he has classes on Monday, Thursday and Friday at 12. He is a bit dissapointed, but he's not one to make a fuss. Even so, he keeps wondering if there were a better way.
Sam is your average third-year student. Having finally passed the OOP exam, Sam is looking forward to this year and the new optional classes. However, there is a collision between an optional class and a required one, which also has an optional Kahoot worth 40% of the grade. Being low on motivation, Sam makes the obvious choice and doesn't go to either of them.
- As a secretary, Grace wants to be able to have easy control over the subjects, rooms, groups and teachers. She also wants to save her previous work and not type the options in all the time.
- Grace wants a relatively fast schedule generation so that it's more efficient than doing it by hand.
- Grace is concerned abbout the security, so she would prefer if students, teachers and the staff had different privileges within the application.
- Since small changes may appear at any time, Grace wants to be able to modify the schedule without generating it again.
- As a teacher, Arthur needs to know when his classes are, so he thinks there should be a schedule for each teacher.
- Arthur would like not to work on specific days of the week or at specific intervals. He wants to be able to provide this feedback and for it to be taken into account when the schedule is generated.
- Arthur sometimes needs to find empty rooms within the university. He would really appreatiate a schedule for each room so that he finds one more easily.
- As a student, Sam wants to be able to download the schedule as a PDF so that he doesn't have to enter the website every time.
- Sam would also like to check the curriculum of each subject easier, by clicking on it on the schedule.
- Since the schedule is many pages long, Sam would also like to add pages to a favourite list.
- Database for the Subjects, Groups, Teachers and Rooms
- Interface for inserting/modifying the database (admin)
- Graph flow algorithm for generating the schedule
- Genetic algorithm for generating the schedule
- Interface for modifying an existing schedule
- Authentification with distinct roles
- Separate schedules for students, professors and rooms
- Interface for professor time requests
- PDF version of the schedule
- Responsive frontend for the schedule
- Favourite list
User Interaction Flowchart:
- Initial & Final :
![]() |
---|
Diagram for user actions within the application |
Entities Class Diagram:
- Initial :
![]() |
---|
Schedule generation components |
- Final :
Django database
![]() |
---|
Useful diagram for understanding the flow of the database |
Genetic Algoritm Flowchart:
- Initial :
![]() |
---|
Useful diagram for the backend software developers |
- Final:
![]() |
---|
Useful diagram for the backend software developers |