Seen some work done on this, but no updates in a while:
Been using Angular's variants since an early beta of AngularJS. It's great, because you're decoupled from the backend, so it enables both codebases to evolve independently (with different teams and a shared interface).
Also you can chuck the static files on a CDN, and do things asynchronously, which makes it a significantly faster experience for the end-users.
Because there's a huge amount of work put into OpenEdX already, I'm not expecting this to be a short project. But we should at least be able to put a modular scaffold in place for people to slowly extend over time.
CRUD APIs needed:
- authentication;
- course
- list courses
- enrolment
- CRUD content
- certificate generation
- &etc.
- JavaScript-only XBlocks
- gotta figure out how we'd rebuild minified code here, probably needs linkage with CI/CD servers
- e-commerce APIs
- analytics
As for implementation details for the frontend, I would personally use TypeScript with the latest Angular (and @angular/material). Would refactor all the interfaces to have clean HTML5 routes.
First version could be just simply: auth; list course; view course; view plain text; interactive multi-choice quiz. I think that would make a good alpha release, then everyone can jump in and extend from that scaffold?
How does that sound?
[or is there no interest in this kind of thing anymore?]