Firestorm had two prevalent issues to solve with the EMS. The first was the ability to manage and share incoming employee applications efficiently on a digital platform. They wanted to get rid of the paper clutter and lacked the ability to easily filter and view their new applicants. Second, managing their crews proved to be more and more difficult as the company experienced growth. They realized they needed a centralized system to manage their employees, projects and resources.
- Develop a custom EMS (Employee Management System).
- Should be REST API compatible, with the future goal of eventually moving to a mobile app.
- Develop and integrate web GUI for employees to access the system anywhere.
- Save time and streamline HR hiring processes with the ability to analyze, filter and manage incoming applicants and employees.
- Centralize HR for employee management, project managment and resource allocation.
The Firestorm EMS requirements were specific to company policies and none of the existing open source EMS systems were suitable for what they were trying to accomplish. Firestorm's company as a whole is an ever moving body of employees working on different resources, locations, and crews. After further discussions with Firestorm, the decision was made to move forward with a custom solution, giving access to their entire company through a single web-based portal. The system would include the intake and management of digital employee applications. In addition, they would be provided with full user-creation and an internal social network for Firestorm to manage their employees.
We decided to build the application in a cloud environment and the framework of choice was Angular.js. On calculating the number of users and requests per minute, it was decided to setup the system with two application servers under a load balancer. The database system was designed to support multi-master setup so that application servers could contact any DB server via the load balancer.
Lastly, since we were planning to store crucial employee data, we wanted to integrate a disaster recovery option. The idea was to replicate active MySQL clusters to remote MySQL clusters in another datacenter, resulting in the database at both the positions to synchronize instantaneously. In the case of a disaster at one site, we just have to redirect the traffic to flow to our recovery site, allowing even the active sessions to remain active.
Recruitment improved and a significant amount of time was saved for the HR team.
Developed the Firestorm EMS, continuing monthly additions of new features and improvements to the system as a whole.
Provided a single portal for upper management to interact with employees.
Provided a tool for Firestorm to manage their resources.