Summary
Timetabling for VIT is a web application designed to automate the unit timetabling process for the Victorian Institute of Technology. The platform optimizes class schedules, taking into account room availability, course requirements, and student availability to ensure efficient use of resources and a seamless scheduling experience.
Application deployed here
Features
Login
Users can log in with a pre-set username and password provided by Team Jet Edge.
Welcome Page
After logging in, users are presented with two options:
- Generate Timetable: Starts the process of uploading a student enrolment Excel file to generate a new timetable.
- Modify Timetable: Allows users to edit existing timetables by navigating to the Timetable Page.
Upload File
- Selecting “Generate Timetable” on the Welcome Page brings up the "Upload File" pop-up window.
- Click UPLOAD FILE at the top to select and upload the student enrolment Excel file.
- After uploading, click PROCEED at the bottom to move to the Information Page.
Information Page
On the Information Page, users can edit room and unit information as needed.
- Certain columns (Campus, Course, Unit Code, Enrolled Students) in the Unit Table are parsed directly from the uploaded Excel file and cannot be modified.
- Right-clicking on a cell opens a context menu for more options, such as inserting or deleting rows.
- Editing the information page can be done by copying and pasting data from an existing pre-formatted Excel file.
Once editing is complete, click NEXT at the bottom right to proceed to the Generate Timetable page.
Generate Timetable
- Click GENERATE TIMETABLE to start the timetabling process.
- The processing icon will indicate progress and return to its original state once generation is complete.
- Click NEXT at the bottom right to move to the Timetable Page.
Display and Modify Timetable
- Users can view the timetable by campus by selecting campus names on the left-hand side of the page.
- Drag-and-Drop Editing: Users can drag and drop units to adjust room and time allocations as needed. Click SAVE CHANGES to apply edits to the database.
- Note: The system will display a warning if:
- A unit overlaps with another time slot (“OVERLAPPED”).
- A unit is assigned outside a designated room (“ASSIGN ACTIVITIES TO ROOMS ONLY”).
Download Timetable
If no further changes are needed, click DOWNLOAD TIMETABLE at the bottom to download the campus timetable as a ZIP file.
Note: Each campus has a ZIP file containing three timetables, one for each course offered at that campus. Therefore, to download all 12 timetables (4 campuses × 3 courses per campus = 12 timetables), the user only needs to download four ZIP files, one per campus.
Changelog
Changes in Sprint 3 (23 September — 20 October)
-
Removed deprecated student endpoints, renamed API endpoints for consistency #55
-
bugfix: sidebar now does not overflow into headers #53
-
Reformatted the “enrolment“ page, “Save Changes“ and “Download Timetable“ button will now always be visible in the “timetablemod“ page #52
-
”Save Changes” now saves timetable’s changes into database #51
-
Deployed frontend now uses the deployed backend #46
-
Add a skip button to jump directly to the previously generated timetable #44
-
Disable buttons in “senddata“ when timetable is not yet generated, only enabling when backend has finished generating #43
-
Removed the “Building“ tab from the sidebar in “seminfo“ #41
-
Update tab name to “Timetabling for VIT“ #39
-
User authentication required for database access, routes are now private and login is required on frontend #35
-
Implement dynamic sidebar, able to update accordingly to campuses sent from backend. Timetable are now displayed in gantt-chart format #32
Changes in Sprint 2 (2 September — 22 September)
-
Increase transaction timeout limit, and removed the storage of students for faster transactions #31
-
Deploy frontend #23
-
Handle empty input in “seminfo“: an alert will pop up if input is empty while trying to solve a problem. Unit List in “seminfo/units“ are now also read-only #13
-
Frontend is now connected to a functional backend #10
-
Persistence in the frontend “seminfo“ page #9