nusmodifications / nusmodifications/nusmods

Timetable Optimiser: Addition of building name for each venue

Open
#4,067 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

optimiser
Dominant language
JavaScript
Stars
689
Forks
364
Avg merge
7h 5m
Merged PRs (30d)
14

Description

Addition of Building names to improve Timetable Optimiser

Context

The optimiser works by merging slots for a module(eg., CS1101S) and lesson type(eg., Tutorial) together if they are happening on the same exact day and time and BUILDING.

Problem

Currently, for timetable optimiser we are manually finding building name by taking the first few characters from the venue name before the first hyphen. eg., COM3-01-19 has COM3 as the building name. This works for most venue locations fortunately.

However, some venues like LT11, LT12, LT13 are all considered different buildings in this current model. This will unnecessarily increase the search space, thereby increasing runtime for the optimiser.

Solution

This can be solved by changing the timetable optimiser to look at the accurate building name for each venue. This is a piece of information that we do not have but can potentially crowd-source and add to https://github.nusmods.com/venues

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the timetable optimiser and the venue data at https://github.nusmods.com/venues to determine how accurate building names can be represented and consumed. Confirm the building mapping for venues such as LT11, LT12, and LT13, then verify that venues in the same building are merged without losing timetable correctness or increasing the optimiser's search space.

Written by the indexing model from the issue text.

Assessment

Domain
data, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.