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.


We had the following 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 synchronisation 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


What concerns technical tasks, the most important were:

  • 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.

Project overview:

Duration

6+ months, 7000 hours

Methodology

Agile (Scrum)

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 project manager
  • 2 QA engineers

Date

December 28, 2016

Category

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.

Challenges

1

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.
2

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.
3

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.
4

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.
5

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.
6

Run automatic tasks and 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.

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.

Found the project that catches your eye? Let's discuss it!

Leave a request and we will contact you within a day!