Chef'd is an app which people can use as a weekly Meal planner
Who is this app for: Anyone who wants to make use of what they have in their pantry
Why would someone use this app: Use what you have in your pantry, Spend less, Save
What makes this app different from other apps: It is free, Uses Pantry data, Recipies from Serious Eats which has lot of recipies of difference cuisine
-
A user is able to not only find recipes but plan what he wants to eat for the week
-
The app is developed as a full-stack web application created with MongoDb, Express.js, React, Node
- Used Express to manage the server and routes.
- Used Node and Mongoose to create, query, update and delete routed data in the app.
- Used bcryptjs npm package to hash passwords.
- Used Json WebTokens for user authentication.
- Used cheerio and axios to scrape recipes from Serious Eats.
- Used eslint for linting which analyse the code for potential errors.
- Used GSAP to design animations
- Used Travis-CI for Continuous Integration (CI) which automate the build and testing of code every time a team member commits changes to version control.
Chef'd app can be installed as follows
- Clone the repository
- npm install
- npm start
npm start
runs the app in development mode and opens the browser at http://localhost:3000 to view it in the browser.
- Register the user using the main page using register option
- create a folder named models.
- In models, make the following files:
- Index.js: Create an index.js file
- Profile.js : Create Profile Schema using Mongoose
- RecipeExternal.js: Create RecipeExternal Schema to store recipes using Mongoose
- User.js: Create User Schema using Mongoose, Bcryptjs, Jsonwebtoken
- Create a folder named routes.
- In routes, make the following files:
- apiRoutes.js: create different routes which are required for the app.
- authRoutes.js: Authenticate a user to register, login, logout
Use bcryptjs to compare password sent with the hash stored in the database.