Our client is a leading HR consultancy in US providing Performance Management and Training solutions.
Data requirements of each application were analyzed.
Data points to be received by APIs were identified.
A common JSON structure for the API payload was designed.
The payload data points were mapped to each application’s corresponding data points.
Introduced Spring Security, which is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications.
Application is running on Tomcat server version 9.0.46.
Java version used in Java-8, which is a major feature release of JAVA programming language
JWT token replaced the server-side session storage, which was used for user authentication
Introduced Spring filters, which is an object used to intercept the HTTP requests and responses of your application. A filter is mainly used to perform filtering tasks such as conversion, logging, compression, encryption and decryption, input validation, etc.
Rest APIs, Beans, Components, Services, etc. were developed with the help of the spring annotation mechanism.
Introduced Spring Data JPA, which aims to significantly improve the implementation of data access layers by reducing the efforts that are needed. The developer can write repository interfaces, including custom finder methods, and Spring will provide the implementation automatically.
Introduced Spring Boot scheduling to automate the notification emails sending. Scheduling is a process of executing tasks for a specific time period. Spring Boot provides good support to write a scheduler on the Spring applications.
The UI component of the legacy version of the application was originally written in an older version of JavaScript and JSP, and it included a lot of condition checking and calculation. It was difficult to incorporate these features into angular. We customize the angular packages to maintain the same user experience.
The database structure was incompatible with the spring JPA query. Some field names were rejected in the spring JPA.
There are existing clients in the old version of the application, and the underlying DB that was linked with legacy applications and new applications, both must be compatible.
We optimized the query and added necessary fields to the database tables without affecting the production version, which was the legacy application, and made it work with both systems. Clients from the legacy system are gradually migrated to new applications.