The MSB Management System has been created as an online learning management system to enable staff members to upskill within the Debt Collecting space. Since the inception of the idea, it has pivoted into a LMS to cater for any type of business.
The application allows a user to create dynamic course content for any kind of customer training needs. With the ability to upload images, videos or even plain text, creating course material has never been so easy. Each course can be broken down into a number of modules and a test can be created for each module with an unlimited number of questions that can be answered in multiple choice or free text format.
This application was built with a ReactJS front end, using Redux for state management across the single page application. The Redux Saga design pattern was used to perform asynchronous tasks, like fetching data from an API, easier to manage and more efficient to execute. The Bootstrap framework was used in conjunction with custom SCSS styles to give the application its lean look and feel.
The API for this application was built using the Spring Boot framework with Java. While making use of many of the features Spring Boot provides, some key features of the application include the use of the Hibernate implementation of JPA for database interaction, OAuth 2.0 tokens for authentication, Thymeleaf and FlyingSaucer for PDF generation and SpringFox for Swagger documentation.
One key element in the API design is following the Richardson Maturity model and using Level 3 RESTful API standards. Following this level of API design means we have designed all endpoints to use Hypermedia As The Engine of Application State (HATEOAS).Both applications follow full CI/CD practices using GitLab pipelines and deployed to an Azure server using Docker. All deployed at the click of a button!