nusmodifications / nusmodifications/nusmods
GraphQL Roadmap
Open
Nobody has claimed this yet.
better engineering
- Dominant language
- JavaScript
- Stars
- 689
- Forks
- 364
- Avg merge
- 7h 5m
- Merged PRs (30d)
- 14
Description
Meta issue tracking all tasks we need to do to move to GraphQL.
Infra and decisions
- Monorepo (good to have but not essential)
- We need some way to run the server.
PM2 - Do we want to run it on the same droplet or another droplet? We can use the current droplet as they doubled our RAM for the same price, but we may want to look into using separate droplets to run the various servers
- Do we want to use Docker? Yes. Will take about 10 min for @li-kai to set up. We can limit memory usage, and if we were extremely rich we could set up auto scaling.
GraphQL server code
- Add school name to schema and queries
- Add query param to be able to filter data by semester
- Venue support (basically only the new location schema)
Keep in mind other schools' requirements while we're building this schema.
Actual migration
- Install Apollo and Apollo GraphQL loaders
- Migrate venues client to GraphQL backend
- Migrate modules on client to GraphQL backend
- Finally migrate module search, which is the hardest problem.
- Rip out REST related code
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
No files, tests, or concrete entry points are named. Start by reviewing the unchecked infrastructure, GraphQL server, and client-migration tasks, then identify their owners and dependencies; the roadmap is complete only when the listed migration work and REST removal have been resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, javascript
- Domain
- api, backend-api-design, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100