Modularization of learning tools

More Info
expand_more

Abstract

Our client is a growing business, which leads to less flexibility and more problems in development. Also, there is a need to be able to easily test out functionality on a small group of customers, without breaking other parts of the product. Therefore our client would like to modularize their application. As the client wants to develop a new modular platform next to their current platforms, the choice of frameworks and techniques was still open. We split up the backend and frontend, because they wanted to have a static frontend communicating with an API server. We used Ruby on Rails for the backend and Ember.js as a frontend framework. The modular structure has been implemented by building plugins for these frameworks, being a Rails Gem and an Ember Addon. Also, we built a command line tool to generate new modules to make it easier to work with the new structure. The resulting plugins allow for the generation of both frontend and backend modules, being able to communicate with each other. They can be executed both standalone, and integrated into the new platform. During this process we wanted to keep high software standards in mind. We continuously tested the product and measured code coverage, quality and other analytics. We have used the Scrum methodology for our agile workflow. During the development it became clear that the core application of the client wouldn’t be ready in time. Therefore we adapted our plugins to be completely standalone.