Skip to content

Add Instructor Information to NUSMods API #3761

@randomwish

Description

@randomwish

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

NUSMods currently lacks information about which instructors teach specific courses each semester. This limitation requires students to consult various official department websites for instructor details:

Computing courses: https://www.comp.nus.edu.sg/cug/soc-sched/
Physics courses: https://www.physics.nus.edu.sg/student/courses-offered-chs/
Math courses: https://www.math.nus.edu.sg/modtt/modlist/

The proposed change aims to integrate instructor information directly into NUSMods. This addition would streamline the course selection process by allowing students to easily see which professor(s) are teaching each course iteration within the NUSMods site through the proposed modification to the API.

Describe the solution you'd like

A possible solution would be to introduce a Instructors field in the current semesterData array retrieved from the responses of the NUSMods API, specifically /{acadYear}/moduleInfo.json and /{acadYear}/modules/{moduleCode}.json. For multiple instructors, their names could be included as part of an array.

Example modification for course CS2106 (Introduction to Operating Systems)

"semesterData": [ { "semester": 1, "instructor": ["Li Jialin", "Colin Tan"], "timetable": [...], "examDate": "2024-11-28T09:00:00.000Z", "examDuration": 120 }, { "semester": 2, "instructor": ["Colin Tan","Anandha Gopalan"], "timetable": [...], "examDate": "2025-05-02T01:00:00.000Z", "examDuration": 120 } ]

Sample mockup (for conciseness, only the first instructor in the course schedule is included)
Screenshot 2024-08-03 at 4 29 52 PM

Describe alternatives you've considered

  • This issue is similar to the one proposed here, but scrapping sites may not yield reliable information as different departments/faculties may have different ways to display the relevant course information

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions