Problem Background

Young adults frequently encounter the challenge of deciding what to cook with the ingredients they have on hand. This uncertainty often results in food waste, frustration, and an increased reliance on takeout or pre-packaged meals. A study published in the Journal of Nutrition Education and Behavior reveals that approximately 31% of food in American households is wasted, largely due to the uncertainty about how to use available ingredients. This issue is especially prevalent among young adults, who may lack extensive cooking experience or creativity in the kitchen.

ChefMate aims to address this problem by reducing food waste, saving money, and promoting healthier eating habits. It offers personalized recipe suggestions, functioning as a virtual cooking assistant to guide users in creating delicious meals with minimal stress and effort.

User Pain Points & Research Insights

  • Lack of Cooking Experience: Many young adults are not confident in their cooking skills, leading to a limited repertoire of meals they can prepare and a dependency on takeout or pre-packaged foods.
  • Uncertainty in Ingredient Usage: Users often find themselves unsure about how to combine available ingredients to create a meal, leading to frustration and eventual food waste.
  • Time Constraints: Young adults often have busy schedules and limited time to plan meals, shop for ingredients, and cook, which contributes to their reliance on convenient but less healthy food options.

Solution Explanation

Based on our target users’ pain points, we have developed the following features for ChefMate:

  • Ingredient Identification via Camera: Users can open the camera and take a photo of the ingredients in their kitchen. This feature allows for quick and easy inventory management without the need for manual input.
  • Advanced Back-End System: The back-end system is designed to identify the ingredients from the photographs taken by the user. It processes the images to recognize various food items and suggests recipes based on the available ingredients.

These features collectively aim to empower users to cook with confidence, reduce food waste, and adopt healthier eating habits by making meal preparation more accessible and less stressful.

Iterative Design Learnings

After we showcased our prototype, we learned that users found the process of adding ingredients a bit ambiguous due to a lack of clear action buttons. We aimed to make this process clearer in the design by including an “add ingredient” button to clarify the next steps and enhance user predictability.

Technical Implementation Details

Netlify and Render: Chefmate.netlify.app

What is your tech stack?
  • Backend framework- Python, frontend framework- React, vanilla css, 
High level journey of a request
  • Talk about why you chose the tools used and how you can improve the application's design.
    • We chose Python for its powerful AI tools, React for its efficient and reusable components, and vanilla CSS for lightweight and precise styling. To improve the design, we'll focus on user research and accessibility, optimize performance, and ensure scalability with microservices and load testing.
  • If you can, provide a walkthrough of the application functionality including Creating/Retrieving/Updating /Deleting data in the application.
    • The application is a recipe suggestion tool that allows users to input ingredients and receive recipe recommendations based on those ingredients. Users can manually add ingredients or upload an image to detect ingredients using an AI service. The ingredients list is used to fetch recipes from the Edamam API. The application has two main components: a sidebar for adding ingredients and a main content area for displaying recipe results and a modal for adding ingredients. Creating Data (Adding Ingredients), Retrieving Data (Fetching Recipes), Updating Data (Modifying Ingredients List) & Deleting Data (Removing Ingredients)

Technical challenges

What was the hardest part of development?
  • Learning how to implement AI
Does your app have any scaling issues?
  • Not at this moment
What are some key takeaways?
  • Understanding AI fundamentals and continuous learning

Future Steps

Our plan is to continue developing Chefmate for home cooks seeking convenient solutions to make the most out of their groceries.

  • Make Chefmate more personal to its users by enabling account creation, which allows for recommendations based on cooking history and bookmarking of recipes for future reference. We’d also like to include filters for dietary restrictions/preferences on the recipe results page so that users can browse more efficiently.

Learnings

Product Manager Learnings:

Oliver Soble

As a PM I gained experience in agile workflow and management. I was challenged to be on top of our weekly meetings and communication across different departments. I really enjoyed working in a team setting, giving us real-world experience. I want to give a ton of credit to our designer and devs, as they really took the problem space and ran with it to create awesome solutions!

Designer Learnings:

Winnie Phan

Gained experience working within a cross-functional team and under the lead of a PM. Learned more about agile methodologies, communicating with engineers as well as iterating upon designs to ensure feasibility.

Designer Learnings:

Jo Sturdivant

  1. Adapting to an Established Team: Joining the team in week 6 of 8 was challenging, as I had to quickly adapt to existing workflows, dynamics, and goals. This mirrors real-world situations where you often integrate into teams mid-project, and flexibility is essential.
  2. Work-Blocking for Efficiency: With only two weeks to complete the project, I learned the importance of a structured work-blocking system. This approach allowed me to manage my time effectively and meet deadlines under pressure.
  3. Making Data-Driven Design Decisions: Unlike my past projects, I had to rely on research conducted by others. This was a valuable experience in using pre-existing data to guide design decisions, helping me focus on the core insights without starting from scratch.

Developer Learnings:

Mariamawit Moges

Gained experience in teamwork and learned how to thoroughly research unfamiliar topics. Developed skills to understand and implement powerful technologies like AI. Completed the entire development cycle of an application, from brainstorming and design to building and testing.

Developer Learnings:

Vanady Beard

&

As the back-end developer, I learned how important it is to create efficient and reliable systems that support the entire application. This experience also taught me the importance of optimising the database and ensuring the backend is scalable and easy to maintain.

Developer Learnings:

Stephen Asiedu

&

As a back-end developer, I've come to understand the importance of being familiar with various database systems and modules. This knowledge enables me to build diverse applications and maintain versatility in my work. I've also learned that the responsibility for making the right choices rests on my shoulders, guided by my best judgement.

Developer Learnings:

Haya Mubaidin

&

Learned how to work with a team, especially in collaboration with frontend developers, how to connect frontend and backend code, improved problem-solving skills, gained experience in debugging complex issues, and developed a deeper understanding of project management and agile development practices.

Developer Learnings:

Maurquise Williams

&

  1. Process of Creating an MVP: Developing a Minimum Viable Product (MVP) taught me how to focus on delivering core functionalities balancing between essential features and avoiding scope creep.
  2. Collaboration in a Real-World Tech Setting: This experience taught me how to collaborate efficiently in a fast-paced tech environment, keeping the team aligned and productive, even while working remotely across time zones.
  3. Sharpening Critical Thinking and Problem-Solving Skills: This experience honed my ability to think critically and solve problems efficiently. By tackling challenges and finding quick solutions, I sharpened my decision-making and troubleshooting skills in a dynamic, real-world setting.

Developer Learnings:

Jeremiah Williams

&

All in all this experience was very awesome I learned that in coding with others being transparent is key

Developers Learnings:

Justin Farley

&

I learned how important communication is when working with a team. Communication provides understanding, advice, ideas, and much more. While working with the product team, I’ve found that communication keeps everything flowing smoothly. Working with a team also showed me that every member brings something different to the table and we all have to work together in order to align and meet our end goal.

Full Team Learning

Agile workflow, communication, problem solving,