GraphQL Learner Dashboard Page Spike

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 (Deactivated)):

    • 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?