Skip to content

UI Improvements to Optimiser #4194

@Izen9835

Description

@Izen9835

Worked on by @abhatia2003 and I.

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

We envision integrating the optimiser directly into the timetable tab on NUSMods. The current optimiser is slightly unwieldy as it requires users to fill in a form, separate from the UI involved in the normal timetable editor.

Describe the solution you'd like

I would like the system to give me flexibility in defining different kinds of breaks, not just lunch. For example, I might want to block out time for exercising, attending a CCA session, or personal errands. These breaks should be treated just like lessons in the scheduling process, so that they are automatically respected when generating timetables. I would however, like there to be some element of flexibility as well, such that breaks are not as prioritized as much as lessons, so they can be overridden, but should be respected as much as possible.
I would also prefer a more interactive way of adding these breaks, rather than having to manually type out all the details (day, start time, end time, etc.). Ideally, I should be able to set them up using a simple interface — for instance, by selecting a day and dragging a time block, or by choosing from preset break types (like “Exercise,” “CCA,” or “Lunch”).
In addition, I want control over which lessons are fixed and which are flexible. Some lessons I may already have decided on, and I want the system to keep them exactly as they are. For others, I would like the solver to optimize their placement to minimize conflicts, gaps, or walking distance. In other words, I should be able to “lock” certain classes in place while allowing the algorithm to explore better options for the rest.

Video Demonstration

Below is a video demonstration of the features we are proposing.
Firstly, the breaks added are indicated as red blocks similar to lesson blocks, with an extra teacup icon for differentiation.
For each break, you may press on it to shift/resize it directly, or you can also press the pencil icon to update the title and location and such.
Lastly, when you click optimise, a overlay is shown to select lessons which the user wishes to attend in-person and how many hours of consecutive lessons they want to allow at maximum.

Additionally, normal lesson blocks now have a lock button at the top right, which allows the user to indicate whether they allow the optimiser to shift that lesson around.

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions