DEADLINE: 2019 - present.
PROJECT STAFF: 1 – 4 developers.
Support and extension of application services for accounting of requests for entry/exit to the port.
HOW THE APP IS DESIGNED
The contractor adds the worker, vehicle and other data to the system. After that, the application is sent for approval to the terminal staff and government agencies. They confirm entry/exit and send the decision to the pass office and to the access control and management system. It’s possible to track the fact of approval or refusal in a personal account.
THE DIFFICULTIES WE ENCOUNTERED
- Revision of the legacy code.
- The monolithic nature of the application did not allow us to quickly find the necessary components and make additions and edits.
- Inconvenient deployment of new terminals. For each customer it was necessary to create a separate project.
- No autotests.
- Code refactoring. In 2020, we strongly recommended that the customer improve the code in order to speed up the development and implementation of new functionality. We received consent. Having completely rewritten the code, we began to make changes faster and solve individual problems for each terminal.
- Separation of the monolith into backend and frontend applications. In 2021, we were approved to refine the structure and split it into modules. There was a clear delineation of responsibility within the project. It became easier to add an extension or remove unnecessary ones, or even completely change the entire frontend using the available data.
- Accelerating application development. The new settings made it possible for programmers to select and port already created components, rather than making each project from scratch. This allowed much faster deployment of new terminals.
- The introduction of an automated testing system reduced the time for manual testing of functionality.
WHAT WE LEARNED
The project impresses with its scale. We ensure the uninterrupted operation of almost 20 terminals, through which about 1 million applications have already been received. Therefore, we learned to quickly find solutions to the tasks of any complexity.
Our team wrote and finalized modules for registration, signature, payment, etc. We made a lot of unit tests and console commands to speed up the update and support of services. To this day, we develop new features and implements them into the functionality of the site.
- Implementation of a module for signing documents using EDS.
- Interaction of the service with diadocs, development of the payment module.
- Code refactoring and division of a monolithic application into backend and frontend.
- Implementation of autotests.