NutriQ is a meal planner application that generates meals & recipes based on your caloric needs/goals.
- User can create and account (Email/Password)
- User can log in (Email/Password)
- User can enter their information
- Age, Gender, Height, Weight
- Fitness and weight goals
- User can see customized daily calorie limit
- Category: Health and Fitness
- Mobile: This app is developed for mobile but can work just as well on a desktop environment, but a mobile version will be easier to track each meal.
- Story: Analyzes users health information to calculate their basal metabolic rate and generate a calorie limited meal plan, geared towards the users fitness goals. The user can track their progress over time.
- Market: Anybody who is health conscious and wants to change their diet strategy, or for people who want inspiration for cooking their own meals.
- Habit: This app can be used often to track all meals, or it can be used mostly as a reference point for framing a generalized meal plan.
- Scope: First we start by generating customized meal plans with recipes, eventually users may be able to upload their own meals. Big potential for creating a large food database, or incorporating lite social media elements.
Required Must-have Stories
- User can create an account
- Username, Email, Password (Email signup)
- Google signup
- User can log in
- User can log in with email
- User can log in with Google
- User can enter their information
- Age, Gender, Height, Weight
- Fitness and weight goals
- User can see customized daily calorie limit
- User can view customized meal plan (TableView)
- Nutrition requirements will be based on calculated BMR (Basal Metabolic Rate)
- User can click on a cell and view details
- User can update their weight
- User can view progress towards goal
- User can edit their goals
- User can change password
- User can delete account
Optional Nice-to-have Stories
- User can add their own meals/recipes
- Allergies, Diet Preferences (Vegan, Vegetarian, etc.)
- User Sign Up Screen
- User can create an account
- User can log in
- Gather User Information Screen
- User can enter their information
- Age, Gender, Height, Weight
- Gather User Information Screen 2
- Activity Level
- Gather User Information Screen 3
- Goals (Lose, gain, or maintain weight)
- Gather User Information Screen 4
- Weekly goals (Pounds +/- per week)
- User Results Screen
- User can see daily calorie limit
- Home
- User can view customized meal plan (Table View)
- Cell Detail
- User can click on a cell and view meal details (ingredients, nutrition information)
- Settings
- User can edit their goals
- User can change password
- User can delete account
- User Stats
- User can update weight and view progress
Tab Navigation (Tab to Screen)
- Meal Plan Screen
- User Profile
- Settings
Flow Navigation (Screen to Screen)
- User Sign Up/Log In Screen → User has the choice to either log in to their existing account or sign up for a new account
- Gather User Information Screens → When user just signs up, must answer questions for the app to get data to calculate the user's basal metabolic rate
- User Results Screen → User presented with basal metabolic rate and continues to Home Screen
- Home Screen (Meal Plan Screen) → View of user's meal plan for each day of the week and aggregate nutrition information (all meals combined)
- Meal View Screen → View of a specific meal for a specific day. Shows recipes and nutritional breakdown
- User Stats Screen → View of user's stats. Can update progress and goals
- Settings Screen → Toggle settings
Property | Type | Description |
---|---|---|
username | String | unique name for the user |
password | String | password of the user |
currentWeight | Number | current weight of the user |
dateOfBirth | DateTime | date when user was worn |
gender | Boolean | gender of user; 0 for male, 1 for female |
activityLevel | Number | number representing activity level of user |
mealCountPreference | Number | number of daily meals user prefers to have in meal plan |
goalWeight | Number | weight user would like to achieve |
goalWeeklyWeightLoss | Number | weight user would like to lose every week |
basalMetabolicRate | Number | number of calories user needs to consume to maintain current weight |
requiredMacros | JSON Object | all nutrients required by user in a day; name, unit, calories, percentage of daily total |
requiredNutrients | JSON Object | all nutrients required by user in a day; name, unit (g, mg) |
createdAt | DateTime | date when user created (default field) |
updatedAt | DateTime | date when any user property updated (default field) |
Property | Type | Description |
---|---|---|
mealPlanId | String | unique id for the meal plan (default field) |
createdAt | DateTime | date when meal plan was created (default field) |
updatedAt | DateTime | date when meal plan was updated (default field) |
username | Pointer to User | user the meal plan belongs to |
Property | Type | Description |
---|---|---|
mealId | String | unique id for the meal (default field) |
dayNumber | Number | number representing the day of the week (1 - Monday, 7 - Sunday) |
mealNumber | Number | meal number of the day (1, 2, 3, etc.) |
name | String | name of the meal |
calories | Number | number of calories in the meal |
nutrients | JSON Object | all nutrients in the meal; nutrient name, unit (g, mg), percentage of daily value |
recipe | JSON Object | recipe used to created the meal; food item id, food item name, unit (g, cups), servings, nutrients |
Property | Type | Description |
---|---|---|
foodItemId | String | unique id for the food item (default field) |
name | String | name of the food item |
weight | Number | weight of the food item (g) |
calories | Number | number of calories in the food item |
nutrients | JSON object | all nutrients in the food item; nutrient name, unit (g, mg), percentage of daily value |
- Sign Up/Login Screen
- Sign Up
- (Create/POST) - Create a new user object
- Login
- (Read/GET) - Query logged in user object
- Sign Up
- Gather General User Information Screen
- (Update/PUT) - Update user information (gender, height, weight, date of birth, etc.)
- Gather User Activity Level Screen
- (Update/PUT) - Update user's activity level
- Gather User "General" Goals Screen
- (Update/PUT) - Update user's goals
- Gather Weekly Goal Screen
- (Update/PUT) - Update user's weekly goal
- Show User Results (Basal Metabolic Rate) Screen
- (Read/GET) - Query information user has input (gender, height, weight, date of birth, activity level, etc.) to calculate basal metabolic rate
- (Update/PUT) - Update user's basal metabolic rate
- Home Screen
- (Read/GET) - Query logged in user object for meal plan object
- Settings Screen
- (Update/PUT) - Update user's goals, password, or other settings
- Weekly Meal Plan Screen
- (Read/GET) - Query meal plan object for recipe objects and meal objects
- Food Item Screen
- (Read/GET) - Query meal object for food item object
- User Stats Screen
- (Read/GET) - Query logged in user object
- (Update/PUT) - Update user weight, goals, etc.