Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dimitrisstyl7/my-undergraduate-thesis
Integrated Service System for a Nutritionist and Clients – Web Platform and Mobile Application | Spring Boot - Jetpack Compose
https://github.com/dimitrisstyl7/my-undergraduate-thesis
android android-application clean-architecture-android docker docker-compose hibernate java jetpack-compose kotlin lombok postgresql restful-api spring spring-aop spring-data-jpa spring-mvc spring-security springboot thymeleaf web-platform
Last synced: about 20 hours ago
JSON representation
Integrated Service System for a Nutritionist and Clients – Web Platform and Mobile Application | Spring Boot - Jetpack Compose
- Host: GitHub
- URL: https://github.com/dimitrisstyl7/my-undergraduate-thesis
- Owner: dimitrisstyl7
- License: mit
- Created: 2023-11-12T19:17:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-30T23:23:30.000Z (16 days ago)
- Last Synced: 2024-10-31T00:21:44.488Z (16 days ago)
- Topics: android, android-application, clean-architecture-android, docker, docker-compose, hibernate, java, jetpack-compose, kotlin, lombok, postgresql, restful-api, spring, spring-aop, spring-data-jpa, spring-mvc, spring-security, springboot, thymeleaf, web-platform
- Language: CSS
- Homepage:
- Size: 16.9 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [Integrated Service System for a Nutritionist and Clients – Web Platform and Mobile Application](https://dione.lib.unipi.gr/xmlui/handle/unipi/16908)
## [University of Piraeus](https://www.unipi.gr/en/) | [Department of Informatics](https://cs.unipi.gr/en/)
## Abstract
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**.## Backend Server
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](./DietitianHub-Backend/src/main/java/gr/unipi/thesis/dimstyl/repositories/) and [services](./DietitianHub-Backend/src/main/java/gr/unipi/thesis/dimstyl/services/), to better organize different functionalities and database interactions. Additionally, the Controller layer is also further divided into [web](./DietitianHub-Backend/src/main/java/gr/unipi/thesis/dimstyl/controllers/web/) and [api](./DietitianHub-Backend/src/main/java/gr/unipi/thesis/dimstyl/controllers/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](./DietitianHub-Backend/docker/docker-compose.yml) file is used, while the [init.sql](./DietitianHub-Backend/docker/sql-scripts/init.sql) and [seed-data.sql](./DietitianHub-Backend/docker/sql-scripts/seed-data.sql) files are used to create the database and populate it with mock data.
### Frameworks, tools and libraries:
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](https://spring.io/projects/spring-boot)
- [Spring Data JPA](https://spring.io/projects/spring-data-jpa)
- [Spring Security](https://spring.io/projects/spring-security)
- [Spring AOP](https://docs.spring.io/spring-framework/reference/core/aop.html)
- [Spring Email](https://docs.spring.io/spring-boot/reference/io/email.html)
- [Hibernate ORM](https://hibernate.org/orm/)
- [Hibernate Validator](https://hibernate.org/validator/)
- [Project Lombok](https://projectlombok.org/)
- [Thymeleaf](https://www.thymeleaf.org/)
- [Docker](https://www.docker.com/)
- [PostgreSQL](https://www.postgresql.org/)
- [Java JWT](https://github.com/jwtk/jjwt)### Implemented Features:
#### 1. View clients
![View clients](./images/view-clients.png)
#### 2. Register a new client
![Register a new client](./images/add-new-client.png)
#### 3. Edit client details
![Edit client details](./images/edit-client-details.png)
#### 4. Delete a client
![Delete a client](./images/delete-client.png)
#### 5. Add client tags
![Add client tags](./images/add-client-tags.png)
#### 6. Upload, view, download, and delete diet plans for a client
![Upload, view, download, and delete diet plans for a client](./images/upload-view-download-delete-diet-plans.png)
#### 7. View announcements
![View announcements](./images/view-announcements.png)
#### 8. Preview announcement
![Preview announcement](./images/preview-announcement.png)
#### 9. Edit announcement
![Edit announcement](./images/edit-announcement.png)
#### 10. Delete announcement
![Delete announcement](./images/delete-announcement.png)
#### 11. View articles
![View articles](./images/view-articles.png)
#### 12. Preview article
![Preview article](./images/preview-article.png)
#### 13. Preview article tags
![Preview article tags](./images/preview-article-tags.png)
#### 14. Edit article
![Edit article](./images/edit-article.png)
#### 15. Edit article tags
![Edit article tags](./images/edit-article-tags.png)
#### 16. Delete article
![Delete article](./images/delete-article.png)
#### 17. Create a new appointment
![Create a new appointment](./images/create-new-appointment.png)
#### 18. Edit appointment details
![Edit appointment details](./images/edit-appointment-details.png)
#### 19. Cancel, decline, approve, or complete an appointment
![Cancel, decline, approve, or complete an appointment](./images/cancel-decline-approve-complete-appointment.png)## Android Application
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.### Tools and libraries:
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.
- [Jetpack Compose toolkit](https://developer.android.com/compose)
- [Navigation component](https://developer.android.com/develop/ui/compose/navigation)
- [Retrofit](https://square.github.io/retrofit/)
- [OkHttp](https://square.github.io/okhttp/)
- [Gson Converter](https://github.com/square/retrofit/blob/trunk/retrofit-converters/gson/README.md)
- [DataStore](https://developer.android.com/topic/libraries/architecture/datastore)### Implemented Features:
#### 1. Edit personal details
![Edit personal details](./images/edit-personal-details.png)
#### 2. Download diet plans
![Download diet plans](./images/download-diet-plans.png)
#### 3. View appointments
![View appointments](./images/view-appointments-android.png)
#### 4. Request a new appointment
![Request a new appointment](./images/request-new-appointment.png)
#### 5. Cancel an appointment
![Cancel an appointment](./images/cancel-appointment.png)
#### 6. View announcements
![View announcements](./images/view-announcements-android.png)
#### 7. View announcement
![View announcement](./images/view-announcement.png)
#### 8. View articles
![View articles](./images/view-articles-android.png)
#### 9. View article
![View article](./images/view-article.png)