nusmodifications / nusmodifications/nusmods

RFC Undergraduate Degree Planner

Open
#359 10 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

NUSMods Undergraduate Degree Planner

Existing solutions are spreadsheet solutions (see: NUS Module Planner) that are created over and over again by NUS students, each done accordingly to fulfill their own faculty's and their major's requirements.

@jin and myself have been thinking about this problem recently because we're about to file for graduation (FFG). Seems redundant for every new batch to rebuild a new spreadsheet to attempt to plan their modules.

This is an attempt to tackle the planning problem by deconstructing the CORS degree verifier, so as to help students FFG, and plan for programmes such as exchange, NUS Overseas Colleges (NOC) etc, so that students need not unnecessarily overload or extend their candidature.

Some Requirements

  1. As a user, I want to know what modules I have taken
  2. As a user, I want to plan my modules according to my degree requirements
  3. As a user, I want to find out what modules to take to fulfill my degree requirements
  4. As a user, I want to share my study plan with others

Input related questions

  1. Which modules have I taken?
    • (leads to asking) How many MCs have I cleared?
  2. What is my:
    • Faculty
    • Major
    • Programme
  3. How will the above information help me in creating a:
    • Roadmap
    • Semester Plan

Considerations (Request for Comments)

There're too many moving parts, things such as module mapping varies a lot for different students.

We were thinking of working from the highest level NUS Undergraduate Degree Requirements in order to develop the various 'requirements to graduate' templates that can be built by the community to use:

  1. University Level Requirements (20 MCs)
  2. Programme Requirements, Unrestricted Electives (120-140 MCs)

For the CS students: You can think of this as Java abstract classes / interfaces.

Open to any comments or suggestions on a first pass at a possible solution!

Timeline

Ambitiously, we would like to have a solution that works across the entire university.

However we are still assessing the feasibility of the solution, and may have to settle on solving first for our home faculty, the School of Computing, which we know best.

References

NUS Undergraduate Degree Requirements

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

The issue names no files, tests, or entry points. Read the Requirements, Input related questions, and Considerations sections first, then review the linked NUS degree requirements. Done is not defined: a maintainer must first choose a faculty scope and settle the planning model before implementation can be assessed.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, typescript
Domain
web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.