This thesis aims to implement a service system for nutritionists that facilitates communication with their clients. The system supports the use of a web platform for the nutritionist and a mobile application for clients. The architecture includes a backend server using Spring Boot Framework, which serves both the web platform, and the mobile application developed with the Jetpack Compose toolkit.
The backend server is implemented using the MVC (Model-View-Controller) software architecture pattern. In this project, the Model layer is further divided into sub-layers, such as repositories and services, to better organize different functionalities and database interactions. Additionally, the Controller layer is also further divided into web and api controllers, as the same server also handles RESTful API calls from the Android application.
The relational database management system used is PostgreSQL, which runs in a Docker container. For container creation, the docker-compose.yaml file is used, while the init.sql and seed-data.sql files are used to create the database and populate it with mock data.
The following are the core frameworks, tools, and libraries used in the backend server. These represent the essential components, and additional tools may also be utilized.
- Spring Boot Framework
- Spring Data JPA
- Spring Security
- Spring AOP
- Spring Email
- Hibernate ORM
- Hibernate Validator
- Project Lombok
- Thymeleaf
- Docker
- PostgreSQL
- Java JWT
The Android application is implemented using the Clean Architecture software architecture pattern, which is an improved implementation of MVVM (Model-View-ViewModel) architecture design pattern.
The following tools and libraries are central to the Android application's development. However, there may be additional libraries and tools used in the project that are not explicitly mentioned here.
This project was developed as part of my undergraduate thesis in the Department of Informatics at the University of Piraeus. Contributions and feedback are greatly appreciated!
This project is licensed under the MIT License - see the LICENSE file for details.