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’ve created a product development strategy and a system modernization plan.
– To create a site mobile version;
– To update the 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.
– 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 the code quality wasn’t high;
– To separate business logic and application appearance (a necessity for its redesign). Also, we had to build mobile apps and a website mobile version. For this purpose, we’ve developed REST API to transfer data for a mobile version. The website was also switched to REST API together with the redesign;
– To make the system scalable. For that, we’ve significantly reworked the architecture and data configuration and improved a system deployment pattern. The possibilities of Amazon infrastructure were used in large volumes.
The key task was to separate business logic and user interface. For that purpose, we’ve 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 the main system logic via REST API. And for more complete use of Amazon opportunities, as well as for system’s behavior improvement in case of high loads, we’ve changed servers’ configuration. After that, we’ve started the development of mobile apps.
1. We made the design of a mobile app version not when all features were implemented in the system, but taking into account the client’s wishes for the future. Because of that, it was impossible to implement some functions, as they hadn’t been prepared on the server or work in another way;
2. There were some difficulties related to communication and coordination of protocols. The challenge was the necessity to communicate with the customer’s IT department and agree on what they can do and what they can’t, and so on;
3. The system implies close integration with SCORM, a widespread format in the eLearning industry. For PHP we didn’t find satisfactory solutions and in the app, this functionality hadn’t been implemented, so we had to handle the module for processing SCORM data and see into the format in detail themselves;
4. 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 the module for working with files and documents. For that, we used Amazon S3 since it is a flexible and convenient file storage;
5. 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;
6. During the REST API development we had to rewrite a lot of code as there was no separation on layers and a significant part of the logic had been implemented out of the services level;
7. Also, 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.
1. Efficient collaboration with the team:
– 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.
2. Staff training techniques:
– Adding new users;
– Providing access to various training materials;
– Providing certificates.
3. Convenient reporting system:
– 20 standard report templates to choose from;
– Measuring staff performance;
– Providing feedback based on KPIs;
– Defining spheres of possible improvement.
4. Engaging the staff through gamification tools:
– Rewarding for great performance and course accomplishment;
– The possibility to create competitiveness by setting budgets, points, and levels.
5. Managing employee career roadmaps:
– Guiding staff for progression;
– Tracking employee progress;
– Showing the next steps of development.
6. Making evaluation surveys:
– Checking survey reports and making analysis;
– Creating new surveys;
– Comparing expectations with results;
– Choosing questions from a variety of prepared ones.
We have 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 great and useful experience in working with Amazon, Yii framework and PHP tools as well.