Mastera LMS
Our client requested the creation of a content management system for managing courses, allowing people to educate themselves. The goal was to replace the old system with a new one that would be more powerful, efficient in terms of disk and database space, and flexible for future improvements.
The old system was built on WordPress, so we decided against changing the programming language stack and opted for PHP + JavaScript. Specifically, we chose PHP (Symfony) + JavaScript (Stimulus). We selected Stimulus because we wanted to create a lightweight frontend without large bundles of files, and it was already integrated into Symfony.
Our dedicated development team followed an iterative approach as usual. We had scheduled meetings with the customer once a week to demonstrate our progress, and we maintained a common chat where our developers could ask any questions they had. By keeping our work transparent, we were able to overcome any technical or organizational difficulties.
Additionally, there were a few interesting nuances in the project that I'd like to describe here.
Firstly, we made the decision to minimize database space consumption by implementing a content editor that doesn't store the content in the same format as it was created in the administrator panel. Instead, it generates a lightweight JSON object that can be parsed to display the content to the user. Our choice was Editor.js, and despite a few challenges with nested editors, we successfully integrated it into the system.