With Olmero we are helping people to easily find right skilled professionals mostly focused on the house maintenance businesses.
The main idea is to upgrade the current system using a combination of the latest standards. The frontend is written in the latest Angular/Typescript stack supported by Java/Spring Boot on the backend.
Architecturally, the whole system is running as a group of Docker containers orchestrated with Kubernetes.
What we want to achieve is a switch to a single page app which communicates with REST API. Our biggest challenge is to keep the already existing platform running while injecting new or reworking existing functionalities without distracting our customers. In order to do it we are using the “feature-toggling” policy which allows us to deploy something and switch the desired functionality in the right moment. All new things are injected into a central iframe which communicates with the host application by post messages.
The Angular application stays on top of our reusable components composed differently on different pages, but keeps the same look and feel. Specialized components triy to encapsulate the internal state as much as it is possible and give a simple API to the parent page/component. The whole code is well tested by unit tests and covered end to end automated tests. To be on the safe side we are doing very strict linting and type-checking configuration.
On the server side, we are gradually replacing the old PHP application with the new one. We are focusing on using the latest industry standard technologies in Spring Boot and with a layered architecture, with units tests for core functionalities and integration tests for every endpoint. JOOQ is used for querying the database, which is a MariaDB instance.
During development RestAssured integration tests are used to test endpoints, without the overhead of full-stack debugging. It is decoupled from the client side in a way that will allow the API to be reused by a native application.