A few months ago we decided to rebuild our Open edX instance manager frontend to provide more customization options and features to our Pro & Teacher plan subscribers and trial users.
We needed to go from a simple registration form (shown below) to a full user console with theme customizations, LMS previews and other features.
Old registration form
From the start, the main goals of the project were: implement a new user console to allow users to self-service and enable our developers to work on the newer technologies that the platform is transitioning to.
Software Architecture
We’ve opted for a decoupled implementation between the frontend and the backend using React and a REST API.
Changes made to the backend took form mostly as APIs to the new frontend, but we had to add some deployment hooks to allow passing custom configuration to the instance in provision time. drf-yasg handled the automatic generation of documentation.
The new frontend was built from scratch using React and Typescript. A TypeScript API client was generated using the backend's automatic documentation, using Swagger Codegen and saving us lots of development time.
Upstream features
While building the console, we leveraged a lot of features contributed over the years to the platform:
simple_theme ansible role to allow easy theme deployments
Static page content overrides from SiteConfiguration (see Pull Request)
We’re also upstreaming support to set SiteConfiguration variables on instance build time on this PR
Marketing URL overrides: allows modifying links in the LMS even when a marketing website is not set (see Pull Request)
The release
After a few months of implementation, we finally deployed our brand new user console:
Feel free to try it out on https://console.opencraft.com, and you can even deploy your own from the source code! The entire instance manager is open source software and can be found at: https://github.com/open-craft/opencraft, and if you want to dig deeper, you can follow the PR trail on the implementation.
There’s still lots of improvements to be worked on and bugs to be fixed, so if you have any suggestions, feel free to create an issue on the repository or comment below.
Recognition is powerful in online learning. It motivates learners, supports educators, and signals skills to employers. With its global scale and flexibility, the Open edX Platform has the potential to recognize learning in so many ways. But currently, certificates only tell one story: pass or fail. That simplicity leaves a lot unsaid. It doesn’t capture […]
This year, the Open edX Conference will be held from July 2 – 5, 2024 in Stellenbosch, South Africa. I’m so excited for the community to visit my beautiful country! And what’s more, we have some awesome talks lined up by our very own OpenCrafters. Getting Started with Frontend Pluggability Tuesday 10:00 AM | Braden […]
The arrival of new AI technology has sent the world of online education abuzz. The new technologies have brought new excitement to e-learning, but it’s difficult to tell what’s hype and what’s not. What will the impact of AI be in the online learning space? What’s likely to change? What will remain the same? We’ll […]