TECHNOLOGY MODERNIZATION –
of a Legacy System
About the Client
The Client is a leading company that offers Fortune 500 companies and businesses of all sizes and types specialized support and consulting services in the area of human resources.
As part of the digitalization journey of the company’s processes, they acquired a legacy app to meet the market demand.
The software came in 2 pieces, a desktop application and web application. The client wanted to integrate these two different systems and work as a single unit.
The major objective was to totally redesign this web app by upgrading to a more effective and efficient technology stack, combined with a great user experience.
- Integrate a web app and a desktop app into a single application.
- Current applications were not user friendly.
- The applications were not scalable.
- The apps used old technologies like Perl and Catalyst framework.
- There were no separation of the presentation and business logic layers.
- The application pages were rendered in a very outdated and boring user interface that resembled an
- Any organization subscribing to these applications must be separately setup the master data (like User details)
- Customer was not satisfied with the old UI
- 1.1. The proposed solution was to implement a Single Application which would help in synchronizing data between the applications and integrating the end customer organizations with the subscribed applications.
2.Initially rewrite the UI layer in a modern JS framework. Angular was selected as the frontend framework due to the following benefits:
- Detailed documentation which saves time and effort.
- It has a command-line interface which means it has a good choice of tools and built-in features for development.
- Improved speed and performance.
- Faster development process.
3.Separate the Business Logic from the UI and gradually update the backend framework to Node.js framework due to the following benefits:
- Works well for real-time handling large amount of information.
- Fast as it stores its data in native JSON.
- Handles simultaneous tasks since it is non-blocking and supports async functions which in turn help speed up the server activities.
- Can be scaled and offers relatively higher performance.
The current complex workflow had to be modified to one that is simpler.
Since this is more of a data-driven app, the tech stack needed to be upgraded from EXT JS to Angular, which can handle more data representations and graphical representations, and Perl to Node.js for improved product performance and scalability.
The user interface (UI) was completely redesigned to transition from a legacy app that resembled an Excel sheet to a futuristic, interactive, and user-friendly design.
The legacy app used a PDF/Excel format for the data chosen for analysis (such as when producing resumes), which was updated to a point system.
The selection process was made easier, and the icons were uniformized. The UI had a complete makeover, which improved the app’s appearance and ease of use.
The color palette was changed to one that was more appropriate, which made the app aesthetically more appealing.
The database which was SQL was completely restructured to make the fields in the app dynamic. As a result, fields in the app can be customized by the users.
Organization and User Setup
- No UI screens were available for setting the client and users for the applications. All the users were setup from the backend.
- To Address this new screen were developed for Internal users to Add their clients, users (Client Admin) and provide the necessary access required through Frontend. Provided the ability to the client admin to in turn add additional users & guest users to access their application.
Data not normalized
- Data organized in the backend DB were not normalized which resulted in duplication of data and storing data inefficient manner.
- To overcome this Tables were normalized and restructured to effectively manage the data and avoid duplications and faster access of data.
- Current application user login information was not encrypted. Any user who gained access to the backend DB could login and impersonate as that user with the information available in the DB.
- While migrating the existing users from old system to new system, enabled password encryption mechanism in the code to provide user access. The login information is now stored in encrypted format in the backend.
- The current applications did not have the flexibility to bring in Template management and Version management features.
- Restructured the DB with the flexibility for the users to have the ability to create & manage new template and implement version management.
Authentication & Authorization
- The current applications used cookies-based authentication for session. Only the users were authenticated but authorized.
- To overcome this, JWT authentication was implemented to enable the user access and role-based permissions and ensure only the appropriate data is accessible to them.
Development changes in Future
PDF to Excel conversion
Current application the client was manually entering data from PDF into the application.
Planning to develop an interface and use Node NPM package to extract the data from PDF and convert to excel.
- Seamless and real time synchronization of data between applications.
- Eliminate manual data entry reducing errors, effort and cost.
- Ensure data consistency across applications.
- Provide feature to end customers to integrate their applications and transfer data to subscribed applications.
- Provide customization of Templates and have version history.