It's a web application to help you find recipes with the ingredients you have and add servings of such recipes to a meal tracker where you can see stats of calories and macronutrients consumption.
Made with
- Backend: NodeJS + Express and Mongoose
- DB: MongoDB
- Frontend: React + Redux
The recipes where extracted from LivelyTable using a Scraper made with puppeteer
Proceed to the next steps to run locally or take a look at the live version demo
-
Use the sample users to see all functionalities underway
-
TO GET RELEVANT STATS FROM CLIENT USER, SEARCH THE DATES FROM 06-01-2021 TO 06-08-2021
-
Clone the Main repository.
-
on root folder:
docker compose up
By default the react server will run on port 3000 and the Express server will run on port 5000, you can modify the PORTS on the docker-compose.yml
file
-
After docker compose ends Open a new browser tab http://localhost:3000/
-
Use the sample users to see all functionalities underway
brekkie
├───brekkie-backend
│ ├───config
│ ├───controllers
│ ├───middleware
│ ├───models
│ ├───public
│ ├───routes
│ └───util
└───brekkie-frontend
├───public
│ └───img
└───src
├───components
│ ├───comments
│ ├───dropdownMenu
│ ├───errorMsg
│ ├───footer
│ ├───header
│ ├───inventoryAccordion
│ ├───inventoryIngredients
│ ├───login
│ ├───mainPageCard
│ ├───myIngredients
│ ├───navbar
│ ├───navItem
│ ├───nutrientsPieChart
│ ├───nutritionalInfo
│ ├───pagination
│ ├───rangeBarChart
│ ├───recipeCard
│ ├───recipeDetail
│ ├───setCaloriesModal
│ ├───signUp
│ ├───userCardModal
│ ├───userComment
│ └───voteModal.js
├───containers
│ ├───adminView
│ ├───favorites
│ ├───inventory
│ ├───main
│ ├───mealTracker
│ ├───recipeView
│ ├───searchView
│ └───shoppingList
├───fonts
│ └───SF-Pro
├───icons
├───services
├───store
│ ├───actions
│ └───reducers
└───util
- Schema
The recipes where extracted from LivelyTable using a Scraper made with puppeteer
-
admin:
email: admin@admin.com
password: Hu?8v/S;
-
moderator:
email: mod@mod.com
password: Hu?8v/S;
-
client:
email: user@user.com
password: Hu?8v/S;
New users will have to signup in order to access the app.
Registered users can login and once the user is logged in, each subsequent request must include a JSON Web Token, which allows the user to access routes, services, and resources that are permitted with that token.
All new users are created with 'client' role by default, only the 'admin' role user can create, update or delete documents. The 'mod' users can update documents and delete comments.
The supported request body format is JSON
All endpoints but the login and signup require authentication by JWT sent on the request via bearer token
Search recipes by keyword or check the box to search only recipes with the ingredients you have
-
You can add items to your shopping list directly from this view
- And rate the recipes
Users can comment the recipes and Admins and Mods can delete comments
Users can revisit their favorited recipes from a favorite view
-
Users can add items to the inventory from a default list
- Or add them manually from a textbox and manage their current inventory
Users can manage their shopping list from the shopping list view
Users can track their calories and macronutrients consumption
- Daily
- By range of dates
From here, admin cand delete and update and mods can update users