README
Team: NUSchedulers
Proposed Level of Achievement: Gemini
Deployed website: http://nuschedulers-frontend.vercel.app
Test account: tom, password: qwert
Motivation
Planning a timetable for the semester can be a tedious and time-consuming task for NUS students. Although NusMods provides a list of lectures and tutorial timings, it does not automatically generate a timetable for users. Students have to spend time coordinating with their friends and ensuring they choose the best classes. Our motivation is to develop a web application that simplifies the process of generating an ideal timetable based on the user’s inputted modules and specifications.
Aim
We aim to provide NUS students with a user-friendly timetable web app that can automatically generate an ideal timetable based on inputted modules and user specifications. The app will allow users to personalize their timetable by adding custom events, provide reminders for upcoming classes and events, and allow users to set their own reminders for specific deadlines.
User Stories
Project Scope
The web application helps to generate an ideal timetable for students and also helps to keep track of their schedules and deadlines.
The web application provides a timetable-like interface for students to input their modules and specifications and the timetable would be generated based on their modules taken. There is also an advanced filter function for users to set conditions for generating their timetable. Users can personalise their timetable by adding custom events, such as group meetings, study sessions or work shifts. The app provides reminders for upcoming classes and events and allows users to set their own reminders for specific deadlines.
Features to be completed by the mid of June:
Features to be completed by the mid of July:
Tech Stack (MERN)
Development Plan
15 - 21 May |
|
22 - 28 May |
|
29 May | Milestone 1 |
30 May - 4 June |
|
5 - 11 June |
|
12 - 18 June |
|
19 - 25 June |
|
26 June | Milestone 2 |
27 June - 2 July |
|
3 - 9 July |
|
10 - 16 July |
|
17 - 23 July |
|
24 July | Milestone 3 |
Diagrams
Mockup
User Authentication
Class Diagram
Sequence Diagrams
User Authentication
Home Page
Timetable Generation
Tasks List
Interfaces
Login page
Create account page
Home page
Inputting modules
Advanced filter page
Edit Timetable Page
Timetable Generation Algorithm
Basic (No filters)
Advanced filters
Testing
General
Features
All features are functional after deployment
Features completed
Technical Proof of Concept
https://github.com/qinboan/NUSchedulers/issues/2#issue-1729575804
img src="https://github.com/qinboan/NUSchedulers/raw/main/images/image17.png" width="" alt="alt_text" title="image_tooltip">
Challenges
Creating a timetable generator requires collecting various types of information such as class schedules, users’ preferences, etc. We faced a lot of difficulties in trying to successfully pass the correct information around to ensure that the timetable generator works reliably and accurately. Furthermore, we had to take into account scheduling conflicts, users’ preferences such as which days to be excluded, and the preferred start and end class timing for the users. Integrating all this information into a coherent system posed a significant challenge for us.
During the development process, we encountered some difficulties in deploying our website due to the separation of the frontend and backend components. The frontend and backend servers had to be started separately for the website to run, and this made it more complicated to deploy the website.