Business component of the project
The product is a calculator for generating paysheets and sending them to the email addresses of the customer’s employees. The application is designed to simplify the process of paysheets generation by significantly reducing the time spent by the accounting department for routine mechanical operations.
Technical description of the project
A multi-module architecture is implemented in the application. There are 3 main modules below:
- The main module represents a calculator which runs paysheet calculations. Based on the results of the calculation, an Excel document with salary data is created, in which the employee of the accounting department, if necessary, can make comments. After that, the main module will generate a finished paysheet. As a result, paysheets are clear and transparent to each employee of the company.
- The module for sending emails that allows sending generated images of paysheets to the emails of the company’s employees. The module takes data about the employees to whom emails will be sent from the Excel file.
- The analyzer module, which is responsible for statistics and allows finding out whether the user opened the sent email with the paysheet. So, the employee of the administration department understands that all specialists of the company received emails with their paysheets.
Technologies
Programming languages: Java 8.
API: Aspose.Cells, Java XMail.
Infrastructure: Jenkins, IntelliJ idea, Jira.
Java libraries: Apache Commons, Apache POI, FreeMarker, Jackson.
Database: MySQL.
Version Control: SVN.
Test Automation libraries: TestNG.
Platforms: Nexus.
Logging libraries: log4j.
JazzTeam responsibilities
- To develop an application for paysheets calculation:
- to implement the solution for automatic generation of calculated data into a graphic file – an employee’s paysheet;
- to automate the process of sending ready-made paysheets by email to the company’s employees.
- To implement the application based on a modular architecture.
- To apply in the course of development:
- the test-driven development approach that allows creating simple and well-thought-out code;
- the data-driven testing approach that will ensure verification of a large set of data in various combinations.
- To ensure a high level of code coverage with Unit tests.
- To create documentation describing the operation of the application.
- To establish the CI/CD process on the project.
Project features
- The focus was on creating Unit tests.
- Error messages are displayed in the form of a text clear to a simple PC user, so that it is possible to clearly understand what bug occurred during program execution and how to fix it.
- The application is based on a modular architecture, which in the future will allow to easily make changes to it and integrate individual modules into third-party applications.
Project results
- The product was accepted by the customer and is functioning properly.
- The application is based on a modular architecture.
- The level of code coverage with Unit tests required by the customer was achieved.
- Documentation with a description of the application operation was created.
- Jenkins was used as a tool for CI/CD implementation on the project. It made it possible to increase the speed of product delivery and assembly.
Company’s achievements on the project
- We developed a calculator on a modular basis for the generation of paysheets and their automatic distribution from scratch.
- Test-driven development and data-driven testing approaches were used for the development. The code is covered by many Unit tests, which reduces the risk of bugs that may emerge during production.
- The application was accepted by the customer and implemented in the company. The customer is satisfied with the result.
- The use of CI/CD allowed to optimize testing. During regular assemblies, a series of autotests are carried out to check the code operability. So, the code is constantly monitored for bugs.