Code Monkey home page Code Monkey logo

nus-timetable-optimizer's Introduction

About me

I am a Computer Science PhD student at the National University of Singapore. My current research focuses on security and privacy issues and novel use-cases for active sensors (LIDARs, time-of-flight sensors, etc).

You can find my research here and more about my teaching here.

Areas of interest

nus-timetable-optimizer's People

Contributors

benclmnt avatar frizensami avatar jeffsieu avatar li-kai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nus-timetable-optimizer's Issues

[FEATREQ] Add a toggle to ignore lectures when considering free days

Is your feature request related to a problem? Please describe.
Some people consider days with lectures "Free days" since they can be webcast, or they'll just read the notes. That makes the current free days algo too restrictive.

Describe the solution you'd like
Add toggle that ignores anything coded with LEC (actually, idk if it's just LEC, so this might become very complicated!) from the free day calculation

[FEATREQ] Option to minimize number of exams

Describe the solution you'd like
Toggle to ask optimizer to minimize the number the number of exams (e.g., prioritize selection of modules without exams). This has no effect if there are no optional modules.

[BUG] Edge case when adding multiple modules not in the academic calendar - user options only apply to latest module

Describe the bug
When adding multiple modules not in the academic calendar using the NUSMods link import option - user options only apply to the last module in the list.

To Reproduce
Steps to reproduce the behavior:

  1. Add https://nusmods.com/timetable/sem-1/share?SG4206=REC:08A,TUT:09D,LEC:1&SG5101=LEC:1,TUT:12
  2. Click on "Skip" -- only one of the mods is skipped

Expected behavior
We expect both of the modules to be skipped.

[FEATREQ] Auto populate the data from nusmods timetable

Is your feature request related to a problem? Please describe.
As a user, I want to import timetable from nusmods

Describe the solution you'd like

  • Copy the generated link from nusmods timetable
  • nus-timetable optimizer can auto populate the modules (without me manually entering it in)

Do you think this is a good idea?

[FEATREQ] Move AY and sem selection boxes to the top of the module selector

Is your feature request related to a problem? Please describe.
The "academic year" and "semester" boxes refer to both the NUSMods Share Link option and the direct adding option, but it's only below in the direct add area.

Describe the solution you'd like
Maybe we can extract the AY and sem boxes to the top?

Can we change our long list of single asserts + "possible values for variables" into something more compact?

Instead of individually asserting
SL0 = 0 <=> h0 = 0
SL0 = 0 <=> h1 = 0, ...

can we do:
SL = 0 <=> (h0 = 0 AND h1 = 0 AND...)
SL != 0 <=> (h0 != 0 AND h1 != 0 AND ...)
.....

This will assert that if we don't choose the selector as 0, we need EVERYTHING to not be equal to 0
As long as we have the list of possible assignments for each variable and restrict those selections, maybe this is ok?

[REFERENCE] List of modules to test with

Only two possible slot movements: TUE 1000-1200 and 1400-1600

  • CS3203 S1

Saturday + not normal sem cal

  • SG4206 S1

Saturday and some crazy overlapping requirements + not normal sem

  • SG5101 S1

Not normal sem

  • ME2102 Sem 2

A lot of choices

  • GEQ1000
  • GER1000

Base CS timetable

  • CS1101S, CS1231, MA1521, LSM1301, MA1101R, Sem 1 all

Base CEG timetable

  • CG1111, MA1511, MA1512, GER1000, CS1010, CS1231

Module with weird "Seminar-Style Module Class" lesson type name

  • UFQ2101I

Exam clash testing

  • CS1010, CS1010S

[FEATREQ] Output list of slots to ballot for (top N timetables matching the constraints)

Is your feature request related to a problem? Please describe.
Users need to ballot for tutorial slots in a priority order after deciding on their timetable. Currently, we only provide one timetable option.

Describe the solution you'd like
Provide the timetable AND the list of tutorial slots to ballot for. However, this might take multiple timetable runs.

[FEATREQ] Warn users of exam clashes!

Is your feature request related to a problem? Please describe.
NUSMods already warns users of exam time clashes. We can do the same since many people still use direct module addition.

Describe the solution you'd like
Display warning note if a newly added module has an exam time clash

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.