Subjekt Help

Conclusions

In this section we will summarize our insights and findings from the development of the project. We will also discuss the limitations of our project and suggest possible future work.

Francesco Magnani

This project has helped me to understand the importance of a good software architecture, particularly from the point of view of the two extremes of the spectrum:

  • the high-level architecture, referring to the first stages and the first design decisions of the project, starting from a solid model of the domain and the requirements of the system;

  • the pure practical implementation and the software development process itself, which allows developers to become free when performing changes on the software, without the fear of breaking the system. This is achieved by constructing a good automation and testing infrastructure, through various tools and practices (e.g. CI/CD, build automation etc.).

This two aspects lead to a more solid and maintainable software, and this project has been a great opportunity to experience this first-hand.

There are still many aspects that could be improved in the project, such as the implementation of a more complex authentication system, the addition of more features to the application, and the improvement of the user interface. Also, regarding the deployment of the application, it would be interesting to explore the possibility of deploying the application on a cloud platform, such as AWS or Azure, and to implement a more complex CI/CD pipeline that includes this aspect.

Finally, it would be interesting to integrate even more different platforms and work with a bigger team, to experience the challenges of team coordination and the integration of different parts of the system when working with a larger codebase.

Luca Rubboli

This project has been a valuable learning experience, reinforcing the importance of a well-structured development process.

One of the key takeaways has been the importance of automating all phases of development, from testing to deployment. This automation not only saves significant time but also proves especially beneficial in a multi-service environment, where managing different components efficiently is crucial for scalability and maintainability. Focusing on a good software architecture highlighted how important is to maintain a proper test suite, especially if matched with build automation tools.

However, there are areas for potential improvement. In terms of features, there is room for better results visualization and the introduction of more advanced functionality. Furthermore, replicating services to scale depending on traffic intensity would enhance the system’s robustness, especially for handling larger volumes of requests.

Another aspect that could be explored in future iterations is collaboration within a wider team. Working in a larger group could introduce better coordination requirements.

Last modified: 11 February 2025