Skip to the content.

Shelf Awareness: Learning to be Shelf Aware.

CI

Table of Contents


Overview

Shelf Awareness is a centralized mobile and web application designed to provide a digital inventory system for managing household food storage, including pantries, refrigerators, freezers, and spice racks. The application allows users to add, remove, and edit items, while tracking item quantities and expiration dates.

Using this information, Shelf Awareness can automatically generate shopping lists for items that are running low, required for selected recipes, or nearing (or past) their expiration dates—helping users stay organized and reduce food waste.

The application will allow for two types of users.

Use Cases

Beyond The Basics

User Guide / Page Mockups

Below provides a walkthrough of the Shelf Awareness applications that includes its user interface.

Use of generative AI disclaimer: Page mockups were generated using AI

Landing Page

Landing Page

Sign In Page

Sign In Page

Shopping List Page

Shopping List Page

Recipe Page

Mockup Recipe Page

Mobile View

Mobile Application


Team

Shelf Awareness is designed, implemented, and maintained by:

Team Contract

Our team’s Code of Conduct can be found in the Team Contract


Our GitHub


Milestone 1

Overview

Milestone 1 focused on establishing a stable, well-documented foundation for the Shelf Awareness application. Since this project is based on a forked repository, much of the core functionality (pantry management, shopping lists, recipes, and UI components) was already implemented. The primary goal of this milestone was to align the existing codebase with our project goals (primarily through making mockup pages) and modernize the development environment by updating packages to prepare the application for future feature development.

During Milestone 1, we focused on the following tasks:

Project Planning and documentation

Development Environment & Tooling

UI/UX & Branding

Quality Assurance

Milestone 1 Progress and Mockups

Landing Page

Landing Page

Dashboard Page

Dashboard Page

View Shelf Page

View Shelf Page

Shopping List Page

Shopping List Page

Recipe Page

Recipe Page

Map Mockup

Use of generative AI disclaimer: Mockup was generated using AI

Map Mockup Page

“Recipes Within Budget” Filter Mockup

Recipes Within Budget Mockup

Current Mobile Mockups

Shelf Mobile Mockup
Shelf Mobile Mockup
Shopping List Mobile Mockup
Shopping List Mobile Mockup
Dashboard Mobile Mockup
Dashboard Mobile Mockup

Milestone 2

Overview

In M2, our focus was on enhancing usability, improving mobile responsiveness, and integrating new features to support different user needs. We completed a thorough mobile-friendly review of all pages, making the app easier to navigate on a variety of devices. Key functionality was added to support three core user stories, improving the experience for both casual users and specialized users like personal chefs and elite bodybuilders.

Completed User Stories

Personal Chef - Ingredient Management

As a personal chef, I want to know what ingredients I have and what I’m missing when making a recipe, and be able to quickly add missing ingredients to my shopping list.

Add Missing Ingredients Recipe Card

Add Missing Ingredients To Shopping List

BodyBuilder - Macro Tracking

As an elite bodybuilder who needs at least 50g of protein daily, I want macro and protein information on recipes and the ability to import recipes.

Macro Display In Recipe Card

Casual User - Save Recipes

As a casual home cook, I want to save recipes I enjoy so that I can quickly find them later.

Saved Recipe Page

Add and Display Protein Information In Shopping List

Shopping List Page Add Protein

Additional Implementation and Improvements

Recipe Mobile View
Shelf Mobile Mockup
Saved Recipe Page Mobile View
Shopping List Mobile Mockup
Landing Page Mobile View
Dashboard Mobile Mockup

Milestone 3

Overview

Milestone 3 focused on expanding core functionality while improving overall system stability and user experience. During this phase, we introduced recipe-based grocery list automation, dietary tagging and filtering, recipe cook tracking, completed mobile friendly-ness of already integrated pages, and completed protein integration across the shopping list system.

In addition, significant effort was devoted to database synchronization, schema corrections, and migration cleanup to ensure long-term maintainability and stability as the project scales while beginning to prepare the application for deployment. These updates strengthen both the user-facing experience and the underlying structure of the project, helping ensure the application is more reliable, scalable, and ready for continued development.

Dietary Tags and Filtering

We added dietary tags to recipes (such as vegan, vegetarian, keto, gluten-free, and high-protein).

Users can now:

This system allows users to quickly find meals aligned with their dietary needs and included the same functionality within the Saved Recipes Page.

Dietary Filters on Recipe Page

Dietary Filters on Saved Recipe Page

Recipes-Cooked Tracking

The app now tracks how often a recipe is cooked.

Each time a recipe is marked as cooked:

This helps users see which recipes they use most often and sets up future personalization features.

Protein Integration Completed

Protein tracking was fully integrated into the shopping list system.

This keeps nutritional tracking consistent across recipes and grocery planning.

Automatic Grocery List from Selected Recipes

The app now generates a grocery list based on selected recipes.

When users choose multiple recipes, the system:

Create From Recipe Button

Substitutions on Recipe Page

Database Fixes and Migration Cleanup

We resolved several database and migration issues that were causing conflicts.

This included:

This work ensures long-term maintainability and reduces technical debt introduced by prior iterations and branching conflicts.


Milestone 4

Overview

Milestone 4 focused on polishing the user experience, improving workflow between major features, and completing several usability improvements identified during earlier milestone reviews. During this phase we fixed UI issues affecting pantry and shopping list interactions, continued rebranding work across the interface, and introduced a basic map implementation for locating nearby grocery stores. Furthermore, an ingredient substitution system was integrated to help refine the overall experience of Shelf Awareness while preparing the application for further expansion and development.

UI Improvements and Bug Fixes

Several usability issues discovered during the Milestone 2 review were addressed to improve the consistency and reliability of the interface.

This Included:

Grocery List to Pantry Workflow

To improve the grocery shopping workflow, we added the ability to move purchased items directly from the shopping list into the pantry.

Users can now:

Move items from Shopping List to Pantry

Subsequently, we tweaked the page so that any changes in shopping lists would be reflected in real time. This is also accompanied by a basic sorting function for quicker, targeted shopping list viewing.

Sorting options for Shopping List view

Ingredient Substitution System

The app now supports ingredient substitution suggestions for missing recipe items. This includes a centralized substitution mapping and inline display within recipes. This makes recipes more flexible and helps users cook even when ingredients are missing.

This includes:

Substitutions on Recipe Page

Dietary Filters on Saved Recipe Page

Branding and UI Rebranding

Additional rebranding work was completed across the application to maintain visual consistency with the Shelf Awareness identity and theme.

This included:

UI Rebranding

Basic Grocery Store Map Implementation

A basic map system was implemented using Leaflet to support the grocery store location feature described in earlier milestones.

Map Page

Profile Page Created

A basic profile page was created, which can be accessed through the user dropdown. Future milestones will refine the UI and add more functionalities, such as being able to edit the profile, add display names, and set macro goals.

Profile Page


Milestone 5

Overview

Milestone 5 focused on improving data precision, enhancing user personalization, and refining the overall user interface across both desktop and mobile experiences. During this phase, we introduced more structured quantity and pricing systems to support future cost and nutrition-based features, while also addressing usability issues within the profile page and mobile layouts. Additionally, location-based functionality was expanded to improve the grocery store mapping experience.

These updates strengthen the application’s ability to provide accurate calculations, improve user customization, and deliver a more polished and responsive interface.

Structured Quantity System

We redesigned how item quantities are stored and managed across the application to support more accurate tracking and calculations.

This included:

Recipe Popularity & Usage Tracking

We introduced recipe usage tracking and popularity insights to help users discover trending and frequently cooked meals across the platform.

Key updates include:

User impact:

Recipe marked as made

Trendy Recipes

Dashboard Trendy

This feature lays the groundwork for future enhancements such as personalized recommendations, trending analytics, and smarter meal planning.

Updates to Tracking Macros

Each user can now set and track their desired daily macros, being their desired amount of Proteins, Fats, Carbs, and Calories consumed per day.

Users will now find:

How to track consumed Macros:

Recipe marked as made

Trendy Recipes

Dashboard Trendy

Users can reset their tracked daily macros by clicking the “Reset” button from the Dashboard at the end of their day.

Price-Per-Unit Integration

We introduced pricing metadata to pantry items to support cost estimation features.

Users can now:

This feature enables future enhancements such as:

Profile Page Improvements

We enhanced the functionality and appearance of the profile page to improve personalization and usability.

This included:

Updated profile page UI

Diet preferences modal

Mobile and UI Refinements and Bug Fixes

We refined the mobile experience by addressing layout and spacing issues across key pages. Additional interface improvements were made to enhance consistency and usability.

This included:

Map Page

We added the ability to add an address when you add a location and have that location show up on the map.

Map with location markers