nusmodifications / nusmodifications/nusmods

GraphQL Roadmap

Open
#716 0 comments 1 reaction 0 assignees View on GitHub

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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.