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?