Progress, technical solution of the project
We started software development from scratch and used agile principles. The customer was able to follow the development process through the environments and give immediate feedback during the entire development process. Weekly meetings, which helped us to consider the changed wishes of the client and feedback were very useful.
The first step of the project was to build up a backlog of primary user stories. Once the user stories had been compiled, we evaluated them and prioritised with the client. Upon prioritisation, we tried to identify the most important and the most extensive use cases that would be in first place in the development process. The most critical and significant issue of the Taddy application was the search for advertising spaces, which will be the main tool for app users to run campaigns. Thus, during development, we concentrated on the search for surfaces and designed the model particularly on this basis. We managed to find a very elegant and scaling model, which enabled us to manage a relatively complex logic around the surfaces (changing prices, discounts, reservations, etc.), including to carry out extremely quick searches on their data. The development of the following use cases was based on the model established in the first use case, while extending it at the same time.
In particular, the application is a tool designed to provide the user with the best possible experience in compiling their own campaigns, which is why we decided to build it as a so-called single page application (SPA). The end result is a very responsive, smooth, and playful user experience, which cannot be achieved as a traditional web application.
As per the technical side, we considered different technologies and frameworks. We decided to develop the customer part on the VueJs framework. This was a thoroughly considered and successful option since VueJs allowed us to quickly and easily achieve our goals. The customer code was developed with TypeScript, the server part was developed in C# language on the cross platform .NET Core framework. The benefits of this framework are its speed, security and modernity. Given the nature and needs of the application, the choice of database was crucial. We chose between PostgreSQL, MS SQL Server, and Elasticsearch. In the end, we decided to use the free, secure, up-to-date, and secure PostgreSQL database. It covers all of the Taddy application's data management needs. For the search part, we planned to use the powerful search engine Elasticsearch. However, it already appeared in the first phase that due to the search specifics and the effective data model developed by us, Elasticsearch was not actually needed, and we had less dependence on the application side. The Taddy platform was developed as a cloud application, hosted as a high-performance Azure App Service, and the Azure PostgreSQL server service is fully deployed as a database. All binary data is stored in the Azure Blob Storage service. The development was also greatly supported by the Docker platform, which made it very easy to manage dependencies. Even the application's continuous integration build is carried out through the Docker Compose configuration, which was configured with the exact dependencies necessary for the application.
In the development process, we followed the principles of TDD and DDD, which allowed us to move forward quickly and courageously, while also ensuring the sustainability of the development. We made deliveries as often as possible, and the first tangible solution reached the customer after the first week. This was very useful, as it allowed the customer to provide a valuable input for subsequent developments.