Skip to content
EvanaHolevas edited this page Nov 10, 2020 · 24 revisions

Nutrition Tracker - CSCI 150 Fall 2020 Project

Introduction

1.1 Purpose

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.

1.2 Scope

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.

1.3 Definitions

  • 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

Description

2.1 Components

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.

2.2 The Client

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.

2.3 The Database

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)

Requirements

3.1 UI Requirements

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.

3.2 Functional Requirements

  • 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.

3.3 Non-Functional Requirements

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

Clone this wiki locally