Welcome to the official repository for 2YourDoor, a cutting-edge, full-stack food ordering application built with the powerful MERN (MongoDB, Express.js, React, Node.js) architecture. Our platform is engineered to deliver an intuitive, secure, and seamless experience for both customers and administrators.
- Dual-Panel Architecture: Separate, feature-rich interfaces for both end-users and administrators.
 - Secure User Authentication: Robust user security implemented with JSON Web Tokens (JWT) and Bcrypt password hashing.
 - Integrated Payment Gateway: Seamless and secure online payments powered by the Stripe API.
 - Comprehensive User Experience: Full suite of user actions including registration, login/logout, cart management, and order placement.
 - Advanced Admin Controls: Empowering administrators with complete control over product listings, order fulfillment, and user management.
 - Dynamic Food Filtering: Users can easily find what they're looking for with our intuitive product filtering system.
 - Modern API Design: Built on a foundation of RESTful APIs with role-based access control for enhanced security.
 - User-Friendly Notifications: Engaging and informative alerts to keep users updated on their order status.
 
To get a local copy up and running, follow these simple steps.
- Node.js and npm installed on your machine.
 - A MongoDB database instance (local or cloud-based).
 - A Stripe account for payment processing.
 
- 
Clone the repository:
git clone [https://github.com/codingwithshawnyt/2YourDoor.git](https://github.com/codingwithshawnyt/2YourDoor.git) cd 2YourDoor - 
Install Frontend Dependencies:
cd frontend npm install - 
Install Admin Panel Dependencies:
cd ../admin npm install - 
Install Backend Dependencies:
cd ../backend npm install - 
Configure Environment Variables: Create a
.envfile in thebackenddirectory and add the following variables:JWT_SECRET=YOUR_CUSTOM_JWT_SECRET SALT=YOUR_CUSTOM_SALT_VALUE MONGO_URL=YOUR_MONGODB_CONNECTION_STRING STRIPE_SECRET_KEY=YOUR_STRIPE_API_SECRET_KEY - 
Link Frontend, Admin, and Backend:
- In 
admin/src/App.jsx, setconst url = 'YOUR_BACKEND_URL'; - In 
frontend/src/context/StoreContext.js, setconst url = 'YOUR_BACKEND_URL'; - In 
backend/controllers/orderController.js, setconst frontend_url = 'YOUR_FRONTEND_URL'; 
 - In 
 - 
Launch the Application:
- Start the Backend:
cd backend nodemon server.js - Start the Frontend:
cd ../frontend npm start - Start the Admin Panel:
cd ../admin npm start 
 - Start the Backend:
 
This project is built using a modern and robust technology stack:
- Frontend: React
 - Backend: Node.js, Express.js
 - Database: MongoDB
 - Payments: Stripe
 - Authentication: JWT (JSON Web Token)
 - File Uploads: Multer
 
This application is deployed and hosted on Render.
We welcome and encourage contributions to the project! Please feel free to open a pull request to suggest changes or add new features.