Gromeal is an app that aims to be a sustainable tool, to avoid food waste, as to plan and organize your weekly meals and provide a shopping list with all the needed ingredients(including total quantity). Project collaborators : @nalmarazgutierrez, @AnitaMari and @immatte Project supervision : @jbrcodes and @vic-fb
- Create a meal Plan for your week
-
Add meals
- Filter the meal search by : -> Dish type (Soup, dessert, breakfast, lunch, snack, etc) -> Cuisine (Italian, French, etc) -> Diet type (Gluten free, vegetarian, vegan, etc)
- Browse the meal's recipes
- Select a recipe to check the details : Ingredients, Preparation steps and preparation time
- Select the day, the meal(breakfast, lunch or dinner) and Serving(Number of persons)
- add the recipe to your week
-
Edit your Weekly Plan
- Create an account to personalize your plans and recover a previous week plan created
gromeal-1_video.mp4
- Go to project directory (cd GROMEAL). Run
npm installin project directory. This will install server-related dependencies such asexpress. cd clientand runnpm install. This will install client dependencies (React).- Specific dependencies :
- Progress bar :
cd clientand runnpm install @mui/material @emotion/react @emotion/styled - Saving PDF :
cd clientand runnpm install jspdf --save - Pop-up notifications :
cd clientand runnpm install --save react-toastify, run 'yarn add react-toastify'
- Progress bar :
- Access the MySQL interface in your terminal by running
mysql -u root -p - Create a new database called what you want (xxxxx):
create database gromeal - Add (or verify) a
.envfile to the project folder of this repository containing the MySQL authentication information for MySQL user. For example:
DB_HOST=localhost
DB_NAME=gromeal
DB_USER=root
DB_PASS=root-
Run
npm run migratein the project folder of this repository (GROMEAL), in a new terminal window. This will create 3 tables called 'users', 'plans' and 'recipes' in your database. -
Make sure you understand how each table is constructed. In your MySQL console, you can run
use gromeal;and thendescribe users;ordescribe plans;ordescribe recipes;ordescribe list;to see the structure of the students table. -
For testing reasons, a data sample of 500 recipes was extracted from the API Spoonacular and are being used directly from '\client\public\test\random.json'. However, the function Spoonacular is already built in file '\client\src\views\Spoonacular.js' but currently deactivated.
-
We are using React-Context for this project, most of the variables and functions are being imported from file '\client\src\components\RecipesContext.js'
-
The file App.js is the parent from all the views(.js) and some of the helpers(.js) and components(.js). The rest of the components and helpers are imported directly into the views which are children from App
- Run
npm startin project directory (my-express-app) to start the Express server on port 5000 - In another terminal, do
cd clientand runnpm startto start the client in development mode with hot reloading in port 3000.