Use cases Models Design Patterns
A Web App that orients different types of users to calculate their dietary intake and analyzes the healthiness of their diet, plus giving them advice that makes their diet more balanced and healthier.
- Help all kinds of people (athletes, average people, pregnant women, patients, etc.) to build a healthy diet.
- The goal of this project is to build an App that will fit users from amateur to expert since most of the dietary Apps are not friendly to users who do not know about a balanced diet or professionals.
- Many dietary Apps are too complex that they include some other functions (like calorie burn, fitness course, etc.) which make their Apps unprofessional.
- People who are concerned about health
- Dietitians
- Diet-related Researchers
- Calculate dietary intake in a different scope (specific food, meal, recipe, or day)
- Give daily recommended dietary intake based on user type
- Recommend suitable meals based on current recipe and user type
- User basic functions (login, logout, etc.)
- Recipe sharing
- Save foods, meals, recipes data
- Recipes, meals, foods search
- Programming Language: Java
- Project Management: Maven
- Backend Framework: Spring Boot
- API data format: RESTful JSON
- The server can connect to the database
- All the required environments for the project are set up
- Food Data API: USDA FoodData Central API
- fastJSON
- Spring framework series
- JDBC
- Swagger
- JPA
- Junit
The project can be deployed with Docker.
- Replace “localhost” with “mysql_db” in datasource url of application.yml.
- Using command line terminal in project root directory
- Run “docker-compose up” command (In Unix-like environment needs root privilege to run this command) PS: In Unix-like environment, run.sh and mvnw need to be executable (using “chmod 0755 file” command)
- Need local MySQL database
- Configure database information in application.yml file
- Run tests on IntelliJ IDEA
The project uses Swagger API for documentation: http://localhost:8080/swagger-ui/index.html
- Application Architecture: Three-Tier Architecture