Welcome to the MERN Grocery Shop Project! This project is built using the MERN (MongoDB, Express, React, Node.js) stack and incorporates various features like user authentication, product listings, reviews, and more.
- 🚀 Login/Sign Up: Users can create accounts or log in to existing ones.
- 🔐 Forgot Password: Forgot your password? No problem! Users can reset their passwords via email.
- 🔒 Update Password: Users can change their passwords for added security.
- 📝 Customer Reviews: Customers can leave reviews for products.
- ✏️ Update Reviews: Customers can edit or delete their reviews.
- 📦 Product Lists: Browse and view product listings.
- 🔍 Filter Products: Filter products by category, price, or other attributes.
- 🔎 Search Products: Search for specific products by name or keywords.
- 🛒 Cart Items: Add products to the cart for purchase.
- 🛍️ Order Summary: Review and confirm orders before checkout.
- 📄 Order Details: View order history and details.
- 👨💼 Admin Functionality: Special features for administrators to manage products and users.
-
Clone the repository:
git clone https://github.com/SamruddhiBhosale/grocery-shop.git
-
Change into the project directory:
cd grocery-shop
-
Install backend dependencies:
npm install
-
Install frontend dependencies:
cd frontend npm install
-
Create a
.env
file in theroot
directory with the following environment variables:MONGODB_URI=your_mongodb_uri PORT=3000 JWT_SECRET_KEY = jwt_secret_key JWT_RESET_PASSWORD_SECRET_KEY = jwt_reset_password_secret_key COOKIE_EXPIRE = 5 SMPT_MAIL = smpt_mail SMPT_PASSWORD = smpt_password **SMPT MAIL & SMPT PASSWORD comes from Google's App passwords.** CLOUD_NAME = your_cloudinary_cloud_name CLOUD_API_KEY = your_cloudinary_api_key CLOUD_API_SECRET_KEY = your_cloudinary_api_secret
-
Start the backend:
npm run dev
-
Start the frontend:
cd frontend npm start
-
Access the application in your web browser at
http://localhost:3000
.
- 📦 MongoDB: A NoSQL database for storing data.
- ⚙️ Express.js: A web application framework for Node.js.
- ⚛️ React: A JavaScript library for building user interfaces.
- 🚀 Node.js: A JavaScript runtime for server-side development.
- 🔑 JWT: JSON Web Tokens for user authentication.
- 🔒 bcrypt: A library for hashing user passwords.
- 💌 Nodemailer: A library for sending email.
- ☁️ Cloudinary: A cloud-based image and video management service.
Happy coding! 👩💻👨💻