Skip to content

Conversation

@thejus03
Copy link
Contributor

@thejus03 thejus03 commented Dec 5, 2025

@vercel
Copy link

vercel bot commented Dec 5, 2025

@thejus03 is attempting to deploy a commit to the modsbot's projects Team on Vercel.

A member of the Team first needs to authorize it.

@codecov
Copy link

codecov bot commented Dec 5, 2025

Codecov Report

❌ Patch coverage is 0% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 56.55%. Comparing base (988c6fd) to head (035732a).
⚠️ Report is 154 commits behind head on master.

Files with missing lines Patch % Lines
...s/optimiser/OptimiserFAQ/OptimiserFAQComponent.tsx 0.00% 5 Missing ⚠️
...s/optimiser/OptimiserFAQ/OptimiserFAQContainer.tsx 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4267      +/-   ##
==========================================
+ Coverage   54.52%   56.55%   +2.03%     
==========================================
  Files         274      299      +25     
  Lines        6076     6931     +855     
  Branches     1455     1672     +217     
==========================================
+ Hits         3313     3920     +607     
- Misses       2763     3011     +248     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vercel
Copy link

vercel bot commented Dec 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
nusmods-export Ready Ready Preview, Comment Dec 15, 2025 0:29am
nusmods-website Ready Ready Preview, Comment Dec 15, 2025 0:29am

Copy link
Member

@leslieyip02 leslieyip02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM. I think the FAQ section could be useful, so I think we could add a couple more questions.

display: block;
margin-top: 0.5rem;
font-weight: 600;
text-decoration: underline;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally I'm not a fan of the underlining here. These are headers so I feel that the bolding is sufficient.

Screenshot 2025-12-14 at 4 40 29 PM

Comment on lines 42 to 43
The optimiser will explore thousands of timetable combination amongst your
selected modules that meet your preferences and return an optimal one.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "The optimiser will explore thousands of timetable combinations amongst your selected modules that meet your preferences and return an optimal one."

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually maybe we could expand this to explain how to use the optimiser?

What is the Timetable Optimiser?

Having trouble planning your timetable? The optimiser explores thousands of possible timetable configurations to help you find one that best fits your preferences.

You can indicate your preferences in the form above, and hit "Optimise Timetable" to generate an optimised timetable. When you click the "Open Optimised Timetable" button, it will bring you to a new page with the optimised timetable. If the timetable looks good to you, click "Import" to update your timetable.

Comment on lines 45 to 59
<p className={styles.bodyText}>
The returned timetable will be optimised for the following preferences:
<ul>
<b className={styles.boldConstraint}>Hard constraints</b>
<li>No live lessons on your chosen free days</li>
<li>No live lessons outside your preferred time range</li>

<b className={styles.boldConstraint}>Soft constraints</b>
<li>Minimise travel distance between class venues</li>
<li>Prioritise lunch break within your preferred time range</li>
<li>
Prioritise having less than your chosen number of consecutive hours of study
</li>
</ul>
</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this could be a separate FAQ?

What does the optimiser prioritise?

While the optimiser will try to generate a timetable that matches your preferences as closely as possible, there are certain preferences that may be harder to meet (due to course schedules and conflicts).

When you submit your preferences, there will generate 2 types of constraints:

Hard Constraints

These constraints must be satisfied by the optimiser:

  • No live lessons on your chosen free days
  • No live lessons outside your preferred time range

Soft Constraints

These constraints may be loosened/ignored if it's not possible to generate a valid timetable:

  • Minimise travel distance between class venues
  • Prioritise lunch break within your preferred time range
  • Prioritise having less than your chosen number of consecutive hours of study

<span className={styles.toggleIcon}>{isOpen ? <ChevronUp /> : <ChevronDown />}</span>
</button>
</div>
<div
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can add 1 more FAQ:

What happens if the optimiser can't generate a suitable timetable?

If there happens to conflicts in your selected modules or your preferences, the optimiser will still try to generate a timetable for you. However, it will only generate a partial timetable. You may have to edit the time table manually in this case.

(add more if you want)

@thejus03 thejus03 requested a review from leslieyip02 December 20, 2025 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Optimiser: UI issues

2 participants