Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to save multiple timetables #3961

Open
ryanozx opened this issue Jan 6, 2025 · 0 comments
Open

Add ability to save multiple timetables #3961

ryanozx opened this issue Jan 6, 2025 · 0 comments

Comments

@ryanozx
Copy link

ryanozx commented Jan 6, 2025

Is your feature request related to a problem? Please describe.

When planning a timetable, we often want to create multiple versions and decide between them. Currently, we can only save a single timetable in NUSMods.

Describe the solution you'd like

As mentioned in #3727, a scrollable panel could be added to the timetable page, displaying several timetable slots. Each slot would contain a user-defined name (default-generated if none is specified) and the module codes of the modules added to that slot. Clicking each slot would render the corresponding timetable. There will always be at least one timetable slot, and the currently selected/default timetable slot will be displayed on the Today page.

Next, we could enhance the "Add to Semester" button by adding more options to the dropdown menu, allowing users to specify which timetable slots they want to add or remove the module from. The dropdown might list each timetable slot name with toggles beside them.

Describe alternatives you've considered

Since the dropdown list with toggles could be unwieldy, a possible alternative is to replace the "Add to Semester" button with an "Add to Timetable" button, which adds the module to a basket of modules. From the Timetable page, the user could select which modules in the basket to add/remove from the currently selected timetable slot. However, this solution is likely more complex, and I haven't figured out how detecting timetable clashes will work in this scenario.

Additional context

I am happy to accept any suggestions/alternatives!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants