Skip to content

ECE444-2020Fall/project1-webapp-group6-importteamname-1

Repository files navigation

Chef Co-Pilot

This web application asks a user to enter ingredients, and then recommends recipes based on the ingredients. The user can add recipes to favourites list, rate recipes, save personal notes on recipes, and add recipes to a cart to generate an ingredients shopping list. The ingredients shopping list contains a list of additional ingredients that the user needs to purchase in order to prepare the carted recipes.

Developers

  • Yanisa Kham
  • Tim Fei
  • Johnathon Martin
  • Mohamed Abdelhamid

How to run the code locally

In the root directory of the project

  1. Install node modules npm install.
  2. Install Python dependencies pip install -r requirements.txt.
  3. Start front-end npm start.
  4. Start back-end python server/server.py.

File Structure

The front-end is based on create-react-app. It is served on http://localhost:3000/.

The back-end is based on Flask. It is served on http://localhost:3001/.

.
├── server - Flask back-end
│ ├── app - Defines the constants for the endpoints and port
│ │  ├── model_schemas - database models for the app
│ │  └── routes - routes and controller classes for the app
│ ├── migrations - MySQL database migrations
│ ├── scripts - Contains code used for scraping recipes and ingredients from Spoonaular API
│ ├── tests - Unit tests
│ ├── util - Helper functions
│ └── constants.py - Defines the constants for the endpoints and port
├── src - React front-end
| ├── actions - Redux action dispatchers
│ ├── components - React sub components for containers
| ├── containers - React components with sub-components for each page 
| ├── pages - App web pages
| ├── reducers - Redux reducers
| ├── utils - Helper functions 
│ ├── App.jsx - React routes
│ ├── index.jsx - React root component
| ├── store.js - Redux store for storing app's states
| └── localStorage.js - Code for accessing data from and storing data to local storage
└── README.md

Additional Documentation

This project was created using Microsoft Web Template Studio.