LMS for Councils
E-learning system for efficient staff education which involves various trainings, methodologies, gamification tools and convenient reporting system.
Project info
Duration
6+ months, 7000 hours
Methodology
Agile
Technologies
- Backend (PHP,Java): Yii, Symfony, Spring
- Web: HTML5/CSS, AngularJS, SASS
- Database: MySQL, PostgreSQL
- Infrastructure: Amazon(EC2, Load balancer, Autoscaling group, S3, RDS, SNS), Docker
Project Team
- 3 PHP developers
- 2 frontend developers
- 1 business analyst / 1 PM
- 2 QA engineers
Category
Mobile, Web
Objective
- To finish working on the project in HR process automation domain.
- To implement the product in the infrastructure of the end customer.
- To make security analysis and eliminate potential threats.
- To modernize the system and develop mobile applications.
- As a result of the system audit, we created product development strategy and system modernization plan.
Business tasks
- To create a site mobile version.
- To update design and usability of the current version.
- To make system safety testing and eliminate potential problems.
- To make a system a modular one in order to allow to easily customize it to the needs of end customers with minimal effort.
- To implement SSO module (a single login) for integration with LDAP (the system of access control in customer infrastructure).
- To implement data integration and synchronization with Core HR and HR Cascade systems.
- To finish working on such features as Gamification and Enrolment Approval.
- To develop iOS and Android mobile applications.
Technical tasks
- To perform refactoring of the existing code. As the system had been developing for 2 years before we joined the project, for that period technologies had changed. And also code quality wasn’t high.
- To separate business logic and application appearance (a necessity for its redesign). Also we must build mobile apps and a website mobile version. For this purpose we developed REST API to transfer data for a mobile version. The website was also switched to REST API together with redesign.
- To make the system scalable. For that we significantly reworked the architecture and data configuration and improved a system deployment pattern. The possibilities of Amazon infrastructure were used in large volumes.
Challenges
Making the system high-scalable
The system was implemented without orientation to scaling and high loads. To the data stored in the cloud, not on the local server, we redesigned a module for working with files and documents. For that we used Amazon S3 as it is a flexible and convenient file storage.
Run automatic tasks & activities
The application involved lots of automatic activities and tasks (course completion check, sending letters, certificates generation, etc.). For their launch according to schedule we used CRON, and for the total user generated content and customer data we used tools for CSV import.
Develop REST API
During the REST API development we had to rewrite a lot of code as there wasn’t separation on layers and a significant part of logic was had been implemented out of the services level.
Dependencies management
We decided to use Composer for dependencies management. It was the first step to modular architecture and the possibility to gather a version for the customer.
Coordination of protocols
During the working process we had to communicate with customer’s IT department and divide the responsibilities: what they could make and would make, and which activities we had to perform.
Integration of SCORM standard
The system implied close integration with SCORM, a widespread format in eLearning industry. For PHP we didn’t find satisfactory solutions and in the app this functionality hadn’t been implemented, so we had to themselves handle module for processing SCORM data and see into the format in detail.
Solution
The key task was to separate business logic and user interface. For that purpose we implemented REST API for data access from any applications (both desktop and mobile apps). Also a site mobile version was made – SPA (single-page application) on Angular basis, which worked with main system logic via REST API. And for more complete use of Amazon opportunities, as well as for system’s behaviour improvement in case of high loads we changed servers’ configuration. After that we started the development of mobile apps.
Features
-
Efficient collaboration with team
- Team motivation techniques.
- Simple formation of groups by departments for close productive work.
- Building groups for top management teams.
- Sharing up-to-date documents and simultaneous work with them.
- Expertise sharing, making posts polls and events.
-
Building employee career roadmaps
- Guiding staff for progression.
- Tracking employee progress.
- Showing the next steps of development.
-
Gamification tools
- Rewarding for great performance and course accomplishment.
- The possibility to create competitiveness by setting budgets, points and levels.
-
Staff training techniques
- Adding new users.
- Providing access to various training materials.
- Providing certificates.
-
Evaluation surveys
- Checking survey reports and making analysis.
- Creating new surveys.
- Comparing expectations with results.
- Choosing questions from a variety of prepared ones
-
Convenient reporting system
- 20 standard report templates to choose between.
- Measuring staff performance.
- Providing feedback based on KPIs.
- Defining spheres of possible improvement.
Result
We developed a complicated e-learning system for efficient staff education which would involve various trainings, methodologies, gamification tools, convenient reporting system, and allow to analyze employee results, create groups for teamwork and much more. We successfully solved all issues and challenges appearing during the system development, and built a complex e-learning web application and its mobile version with rich functionality. During this project we received useful experience in working with Amazon, Yii framework and PHP tools as well.