GraphQL Learner Dashboard Page Spike
Ari Rizzitano (Deactivated), Douglas Hall (Deactivated)
Goals
Primary
- Understand the performance and code complexity tradeoffs involved in using GraphQL as a data proxy
- Understand the additional UX and functional considerations involved in frontends making complex GraphQL queries
- Judge whether GraphQL is a viable tool for implementing and scaling a decoupled frontend architecture
Additional
- Prove out a decoupled frontend deployment pipeline
- Answer questions about Apollo (George Babey):
- Determine whether Apollo local state should replace Redux
- Recommend whether or not to use Apollo Boost
- Determine whether to stick with Apollo Server
Functional Requirements
- Sandbox environment running an instance of Apollo Server
- Experimental implementation of learner dashboard page
- React on top of Apollo Client
- Hits multiple IDAs:
- LMS
- Discovery
- ecommerce
- credentials
- Independently deployable (e.g. not part of LMS)
First Pass
- Sandbox environment
- Display a page showing a list of enrollments
- Serve from LMS
- React owns entire page, embedded within a Mako template
- Doug will handle setting up Apollo Server
- Ari will set up the frontend + Apollo Client
Questions, once we've accomplished the first pass
- Data modeling/schema?
- How to handle skeleton states for UI?
- How to independently deploy a React app?
- Separate header/footer?
- Performance and caching?