A seemingly simple task was set before our team – to consider and to implement a new design of a portal according to the customer’s requirements.
However, besides the standard work on the redesign, we accepted into work the wish not only to perform the redesign, but also to create a new version of the financial analytics module for the existing system in the telecommunications industry.
The main tasks, we had to solve and successfully solved within this project:
- Analysis of the new format of input CSV files.
- Adaptation of the system for a new file format, and also support of the old format.
- Development of the design for a new file format, taking into account the usability of the system and quick search of the necessary information.
- To provide for switching between the designs for different file formats.
After completed work on the redesign, the updated system represents a single entry point of receiving the information about all the customer’s accounts (mobile, fixed, RAS, data), and provides as an organization reporting service on all levels: corporate, regional and national levels, on local and custom levels.
With the help of analytics and diversified detailed reports this system gives an overall view of the costs that helps to analyze and to make a decision on the company’s telecommunications expenses optimization.
Technical description of the project
The system represents multi -module Maven application.
The system uses Oracle as a database. Interaction with the database is implemented with Hibernate and JPA. In some cases JDBC Connection is involved for achievement of better productivity.
The server part of the whole system is implemented in Java using widely known Struts2 and Spring frameworks.
During the work on the new design version we changed the structure of the database to store new information, updated the data model for work with the new file format.
The web part for updated file format was developed using MVC pattern, the new pages were implemented with JSP, CSS, JS, TAGS, and their internal logic was implemented with such frameworks as Struts2, Spring, Hibernate, JPA.
For processing of the new CSV files format the functionality of the server component, which processes events, was extended. The integration of the component and the client’s infrastructure was established, we updated the existing events supporting the new file format and their handlers in the existing system.
Stack: Java, Maven, JPA (Hibernate), JDBC Connection, Servlet API, TagLib, JSTL, Jaxb, SuperCSV, Apache commons, Apache POI.
Infrastructure: Jenkins, SVN.
Frameworks: Struts2, Spring, Spring security.
Test Automation libraries: Mockito, JUnit.
DB: Oracle, PL/SQL.
Other libraries: Ehcache, Achartengine.
What we did on the project, our responsibilities
- During the work on the application, the team performed the following work:
- Prototypes preparation for new pages and taking into account changes for the existing pages.
- New file format researching, analysis of the provided information.
- The functionality expansion of the existing system for multiple formats support.
- Changing the structure of the database for storing new financial information in the field of telecommunications expenses of the company.
- Implementation of a new design to display information.
- Documentation establishment for the functionality processing the new file format.
- The stability supporting of the existing application.
- Demonstration of the performed work to the customer after each completed iteration.
- A large number of legacy code in the existing system.
- Long-term collaboration with the customer, going beyond this project.
- The project management according to Scrum methodology: daily stand-ups, two-week sprints, at the end of each sprint the demonstration of the accomplished work to the customer was held.
- Using Jira as a project management tool and for communication with the customer.
- Work with a distributed multilingual team.
- The existing system was analyzed and refactored.
- The project team offered and implemented several architectural solutions to improve system stability.
- A new functionality was implemented and the existing system bugs were fixed.
- All project phases were completed successfully.
- The decision was documented and transferred to the customer.
Company’s achievements during the project
- A business analysis of the customer’s requirements was carried out; options for improving and optimal work of applications were offered.
- Deficiencies in the generation of CSV files on the customer’s side were identified.
- Approaches to the process of merging changes into the existing system were formalized.
- The key vulnerability in the architecture of the existing system, due to which the system could not withstand high loads, was found and fixed.
- The documentation for the new file format was created.
- The ongoing bug fixing of the existing customer’s systems was performed throughout the whole period of the new functionality development.