-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This program is a desktop application that allows users to track their calorie intake for the day and live a healthy lifestyle. This wiki serves as a collection of information about the application on what it does and what the purpose of the application is. The requirements described later in this wiki are used to develop the application more and set out the priorities that should be followed during development.
The program is designed for everyone who wants to keep track of their daily nutrition intake or live a healthy life in general. This is to target the people that would like to benefit from a healthy lifestyle. This application serves as a daily nutritional intake reminder as well as calculating your Basal Metabolic Rate or BMR. It provides various datasets about food calories, daily calorie intake, and diet recommendations. Every user needs to make a profile which will prompt them to enter their: age, weight, height, gender, allergies, and daily activity level. This is stored in the database server. After filling in their basic information, the application will calculate the number of calories the user requires based on their own set goals. The server database stores the nutrition data of food, calories and macros, this information is taken from the USDA food API.
- User - Person who can create account and track their food intake
- Macros - Macronutrients: 3 categories of calories - carbohydrates, protein, and fats
- Basal Metabolic Rate (BMR) - estimation of a user’s caloric needs
- Body Mass Index (BMI) - Used as an indicator of body fat
- Food tables - Individual foods and their associated macros stored in the database
There are two main components to this project, the client and the database. The client will be a desktop application that connects to the remote database via the internet. The client will be the interactive part for users which will update information as they input, and will control everything that goes on around it.
The client will be a downloaded application that communicates with the database once logged in to retrieve user specific preferences. These are their goals, recommended number of daily calories, allergies, and saved meals for the day. Upon logging in, it will retrieve their personal info. The client can then update their info and will also contain the different features of the program.
The database contains the user information that will allow users to authenticate with the program and to access the nutritional features in the application. The database will remember user entries for what the user ate that day and can later retrieve that information for calculations. The database will have all of the users information: BMR, BMI, height, weight, gender, age, and food allergies. These are used for displaying food items that meet the users needs, such as intake goals if the user is trying to gain/lose/maintain weight.
(add example tables of how data will be stored)
Main Window: following download of the program a window must be displayed to the user for them to see a UI. This will be in the form of a Login/Create account page. Here the user can create a username and password which will be encrypted and saved to the database. Requires connection to the database to access and store account information Home page/Dashboard: Users should be able to see their progress graphs on this page along with their set goals and promoted recipes. First time accounts should be prompted to complete an evaluation quiz to complete their accounts User Account Page: Users should be able to view their entered data: age, weight, height, BMI, BMR. Search: Users can search for recipes.
- ID: FR1
Database
Description: The database stores all the data used in the application. The application depends on this information because it contains food items and nutritional facts. The database stores user accounts, food tables, recipes, and user logging of food items.
Rationale: Need a database as a central figure where all data is stored/retrieved to use again after the application is closed.
Dependencies: Microsoft SQL Server - ID: FR2
User registration
Description: The user will be able to create a new profile with a username and password. This information will be saved to the database.
Dependency: FR1 - ID: FR3
User Evaluation Quiz
Description: Following registration the user will be prompted to answer a series of questions such as age, height, and weight. This will be used to calculate their BMR and BMI which will be used later in goal setting and graphing.
Dependency: FR2 - ID: FR4
User log-in
Description: The user can log in to an already created account using the same login information they chose during registration: username and password.
Dependency: FR2 - ID: FR5
User set goals
Description: This allows the user to set custom goals to affect their calculated daily caloric intake. There will be three options for the user to choose from: maintain current weight, lose weight, and gain weight. The option will default to “maintain current weight” which users can change later in their profile page.
Dependency: FR3 - ID: FR6
User entered nutrition info
Description: Users can enter their daily food intake to calculate their calories and macros. Users will view and search from the database of foods and select items to add to their daily intake. Users can categorize their food items based on meal: breakfast, lunch, dinner, snacks. This will be saved to the database.
Dependency: FR1 - ID: FR7
User progress graphs
Description: Graphs take the data entered by the user and generate a visual representation of that data. Data can be entered for specific dates and be displayed as time vs. calories or macros graphs. The graph can be filtered to display info from the current week and month, and also display the information from all time.
Dependency: FR5, FR6 - Recipes
Description: Users will be able to sort from a list of criteria: calorie content, certain macros, dietary restrictions.They can also upload their own recipes using calorie and macro information from the database.
Prioritization
Week Of Back-End Front-End 9/14 & 9/21 Setup database class with functions for the front-end Research GUI for C# 9/28 Find a database host to have a remote connection from the front-end Connect to remote database inside C# 10/5 Harvest websites for food items and nutritional information Implement launcher and registration form 10/5 Add DB columns to calc and save BMR Implement evaluation quiz 10/12 Import and add food columns to DB Implement food entry form 10/19 Link user table to user_data table via SQL JOINs Implement user data entry 10/26 Build recipes using lists of item IDs Implement recipe form 11/2 Write query that plots progress Implement user graphs 11/9 Admin function to promote recipes Promote recipe data 11/16 Show fancy graphs based on dates Present image graphs 11/23 Switch to production database Perform unit tests
Diagrams