nusmodifications / nusmodifications/nusmods

Natural Language AI Module Recommender (RAG)

Open
#4,483 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

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

NUS students looking for elective or general education modules struggle to discover relevant courses using keyword search alone. Standard search requires knowing exact module codes or titles, making it difficult to find modules based on qualitative criteria such as subjective interest, workload preferences, or practical insights hidden inside student reviews.

Describe the solution you'd like

An AI-powered module recommendation chat interface integrated into NUSMods. Students input natural language queries (e.g., "What are some engaging 4-MC modules with low workload and no finals?") and receive recommendations powered by Retrieval-Augmented Generation (RAG) over module metadata (descriptions, workloads, prerequisites) and student review data, complete with direct links to the relevant NUSMods pages.

Describe alternatives you've considered
  • Manual Review Aggregation: Browsing individual Discus comments on NUSMods or external forums like Reddit and student blogs, which is time-consuming and unstructured.
  • Advanced Multi-Filter Search: Expanding static UI search filters for workload hours or assessment components. This fails to address semantic, open-ended queries about subjective course experiences.
Additional context
  • Architecture: Decoupled backend service handling vector retrieval and LLM processing to maintain NUSMods' static frontend model and avoid direct infrastructure costs on the core app.
  • Data Ingestion: Combines official metadata via [api.nusmods.com/v2/](https://api.nusmods.com/v2/) with indexed public course reviews.
  • Cost & Performance Control: Uses hybrid filtering (hard metadata constraints + semantic search) and caching layer to minimize API latency and token costs.

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 proposal names no repository files or tests; begin by reviewing the NUSMods frontend and the api.nusmods.com/v2/ data source it mentions. Before implementation, define the decoupled service boundary, review and ingestion scope, and success criteria for hybrid retrieval, caching, recommendations, and direct NUSMods links.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, typescript
Domain
ai, backend, data, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.