top of page
  • Alexandra Charland

Project Speculate (Iteration 3)

For this iteration I want to build the full NutriTrack app. The MVP of my app will contain these features:

Features

Back-end:

  • Nutrition API: The API that I will use for this app will be able to retrieve nutrition information for specific food ingredients (such as Horizon Organic 2% lowfat milk). Some APIs that I can use for this are the free Nutritionix API or the free USDA API. It is likely that I will use the Nutritionix API provided here.

  • Data Persistence: The nutritional information of every recipe and every ingredient will be stored locally using Realm. I am also familiar with SQLite, so if I have trouble structuring the data in Realm I have that as another choice. The recipes will be stored as an array of strings containing ingredients. The nutritional information that I'll store for both recipes and ingredients will have this structure:

Tab bar items:

  • Food Inventory: The user can store their preferred grocery items here in a personalized database with general nutrition information. *New* Allow the user to add their own categories of grocery items. To add an ingredient, the user will tap a plus button to bring up the new ingredient interface with a search bar. This is where all of the API calls should happen as the user searches for their grocery items. The information retrieved from the API can be saved in a tableview format here, where each row stores an ingredient's nutritional information to be used for local referencing in the recipe tab. Allow the user to view the nutritional information of these ingredients. The table of food ingredients will be organized by food type (dairy, vegetables, meats, etc.) in searchable, alphabetical order. Allow the user to add a custom ingredient if it is not found in the database.

  • Recipes: The user can create and save recipes with their nutritional information in a tableview format here. This table of recipes will be automatically sorted in searchable, alphabetical order. To fill in each line, the user will type a number on the keypad and choose from a list of common measurements in a picker. Then the user can begin typing the ingredient into the search bar on the current line, and while they are doing this a suggestion prompt will come up with a reference to an existing ingredient in the food inventory. If the ingredient is not found, the user will be prompted in the suggestion to add the new ingredient to the food inventory, in which the interface to add a new ingredient will pop up. Once the user adds a new ingredient, the interface will close, the new ingredient will be autofilled in the current line, and the user can move on to the next line.

Work estimates

Here is a concise index of all the features ordered by priority implementation order and my estimated time for each:


API data (2 days):

  • Save API ingredient data to a back-end database/data persistence method (1 days)

  • Save sample recipes with ingredients to back-end database (1 day)

View controller design (2 days):

  • Tab bar view controller (10 minutes)

  • Table views in each tab (10 minutes)

  • Interface for adding grocery categories (10 minutes)

  • Interface for adding ingredients (3 hours)

  • Interface for creating recipes (3 hours)

  • Individual recipe nutrition details (1 hour)

  • Individual ingredient nutrition details (1 hour)

  • Navigation from recipe table view to recipe details (2 hours)

  • Navigation from ingredient table view to ingredient details (2 hours)

API data integration (1 day):

  • Display API data in ingredient table view (2 hours)

  • Display API data in individual ingredient page (2 hours)

  • Connect ingredient table view row to individual ingredient page (2 hours)

Calculation (1 day):

  • Calculate overall nutritional value for a recipe based on ingredients chosen and amount of each used (1 day)

Search bars (2 hours):

  • Search through saved food inventory (30 minutes)

  • Search through saved recipes (30 minutes)

  • Retrieve food inventory data while creating recipes (1 hour)

Goal for Iteration 3:

By the end of iteration 3, I want to have a working app with all of these features implemented. Once I get the features working I'll finish it with a design similar to the one I had in the prototype.

8 views0 comments

Recent Posts

See All

Project Close

Final project can be found on GitHub. As I mentioned before in the adapt phase, there's a lot that goes into building an app to make sure that everything works as intended and user interaction is smoo

Project Adapt (Iteration 3)

For this iteration I tried to implement my app with features mostly complete. I realized that although they were there, some features didn't work as intended. I received feedback from two users in per

Project Explore (Iteration 3)

For this iteration I wanted to have all of my features working. I was able to get most of the features implemented except the exact data persistence method. I had trouble getting Realm to work with my

bottom of page