Client
This is an internal project for our company Elinext, a custom software development company. Elinext has been in the software development market for over two decades, and during this time we’ve cooperated with hundreds of customers. This web application is aimed to provide effective monitoring and help with the assessment of company projects.
This project is one of many internal projects that could be customized for the needs of our clients in the future. We have built a nice working ecosystem that includes a corporate calendar, vacation manager, payment tracker, and other useful software that simplifies everyday operations.
We have plans to offer a similar ecosystem development for our customers.
Project Description
This web application allows managers and accountants to track the money flow and the effectiveness of company projects, manage contracts, control payments and debt status, and come up with financial reports.
Payment Tracker helps reduce the time spent on working with customers’ payments and allows mitigating risks of missing contract terms and payments.
Elinext didn’t have a unified system for all the maintaining contracts and payments to keep track of. With such a system in play, we could manage all the contracts with ease. That led to a huge internal project being up for realization.
Challenges
There was quite a list of challenges our team faced:
- To build a system that would unite all the contracts and payment information from every customer Elinext works with
- To provide an unparalleled level of security before the deployment as the data within the system is very sensitive, and keeps all the accounting information in one place
- To make sure exchange rates are always correct and historical data for them doesn’t cause any miscalculation, all the invoices could be kept in one currency
- To constantly improve certain features of the projects, i.e. calculation in the Balance section, reconciliation logic, etc.
- To deliver each version within the deadline and make sure it is timely deployed
Process
We used the Kanban methodology. In this case, it was convenient because the development team is not always available in its entirety and the intensity of work on the project is usually low. We used the Google Authenticator for 2-factor authentication. It helps to increase financial data security and works especially hard to provide its unparalleled level. The project is after its third stage, ready to enter the fourth. Here is the timeline:
Stage 1: 2019 – Apr 2022
MVP development
MVP development took a lengthy time, but even at that stage, quite a set of functions was made. They were:
User role management. Depending on the user's role, one could access certain software features. There are the following roles: Account Manager, Responsible Manager, and Guest. User role divide allows them to focus on their area of work.
Clients and contracts management. Allows the creation of clients in the system, assigns projects to them, links the contracts, and controls the terms of payments made.
Projects management. Allows keeping the general information about the project, assignment of managers, payments control, and attachment of documentation connected with that project.
Invoice management. Allows creation and export of invoices for the customers.
Payments management. The user can add and manage the information about payments from the customers. Also, it is possible to import or export the payments.
Reconciliation. With a Reconciliation tool, the user can match payments with the invoices thereby helping to update the accounts receivables.
Balance. With the help of the balance feature, the user can observe all the payments and invoices in a table view and see the calculation of invoices/payments summary amounts.
Templates. It is possible to upload, and store in the system the various document templates. The user can download document templates anytime.
Reports. This massive section allows users to observe the financial state of the customer, project, or user perspective. Export features are also there
Debt Reminders. Automates the notifications for the customer about the debts.
Stage 2: Apr 2022– August 2022.
Release 2.0 included significant security improvements, new functionality related to the reconciliation of payments with invoices, import payments in bulk, and generation of reports.
We added a tool designed to find common security issues in code and fixed security linter errors in the project, among other changes.
Stage 3: August 2022 - January 2023.
Release 3.0 included new notification settings, an improved Debt Reminders function, reconciliation logic, and new adjustments in Reports.
Stage 4 is upcoming. We’ve got plans to improve the notifications logic and provide the customers with new financial reports.
Solution
We built an internal web system that includes different modules from other management and account systems.
The system currently consists of ten modules, and at some point, we increased its security levels to the maximum. It got it all: the firewall, encryption of particularly sensitive information, isolation of the database and access to it via an encrypted channel, logging and auditing of access to the database with data at a low level, and, naturally, all of it is the addition to 2-factor authentication.
Module 1: Payments
This core module allows users to collect the most important information about the payment and use it for balance calculation, debt management, and reporting. The management of payments function allows users to observe quickly all the payments on one page to have a general understanding of these entries with the ability to export and import the grid.
Module 2: Invoices
The managing invoice details function allows users to collect the most important information about the invoices and use it for balance calculation, debt management, and reporting.
Pretty much the same functionality as with payments, but for the invoices.
Module 3: Clients
This module allows users to observe and manage all the objects and parameters related to the particular client, so there is no need to collect the information related to this client from the different modules.
That way the user can observe all the clients on one page with the ability to export the grid.
Module 4: Projects
Managing project details allows the user to collect the most important information about the project, and assign the project to responsible managers. this module allows to track payments and invoices within a particular project, also the user can build reports related to specific projects, and add/track contracts for each project.
Module 5: Balance
On the Balances page, the user can observe all the payments and invoices, it is possible to see the summary amounts automatically recalculated in USD. The user can filter the Balance by the client, its status, project, entry type, date, and sums and export a balance as an Excel report.
This module also includes the Debts page. That way, the user can easily observe all the invoices that are not fully paid, also it is possible to see the summary amounts automatically recalculated in USD. The user can filter the grid by the client, its status, project, due date, sums, and comments, and then export a balance as an Excel report. This is the fastest way to see the amount of accounts receivable.
Module 6: Reconciliation
On the Reconciliation page, the user is allowed to manually correlate payments with invoices, which allows updating data on the amount of the client’s debt to the company. The system automatically offers invoices to which a particular payment potentially applies.
Module 7: Templates
The Templates module can be used to provide quick access to samples of documents such as contracts, invoices, and others.
Module 8: Reports
Allows users to view the balance and movement of finances within a specific client and period with the ability to export to Excel.
Module 9: Notifications
Allows the user to view all notifications for all users generated by the system.
The recipient will be notified promptly about this or that event via email and in the application, thereby he can take the necessary actions as quickly as possible.
A user with sufficient rights can manually configure each notification individually. This will allow you to customize the rules within the specifics of the project or recipient.
A user with sufficient rights can configure default parameters for each notification type. Therefore, you do not have to manually set notification rules for each recipient and project.
Module 10: Settings
A user with the corresponding rights can easily add users to the system with an SSO server and assign a role to each of them. Also, the user can reset the user’s QR code if some issues with access to the system were occurred. Various settings are realized in this module.
Results
The project is a long-playing addition to Elinext’s infrastructure and is ready to be offered to other companies together with other projects that create a wonderful ecosystem that helps companies similar to others streamline their daily operations.
As for now, being an individual piece of this ecosystem, the system eases managers’ lives and allows them to control the terms of contracts and they can check the payment situation in one place.
The project is about to enter the fourth stage which would include a demo version, and new financial reports by adding new user roles, such as accountants.
Based on the fact that the system works with the company’s general financial information, it is necessary to pay a lot of attention to its security, and the realization that it was one of our top priorities.