nusmodifications / nusmodifications/nusmods
Natural Language AI Module Recommender (RAG)
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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