This is a full-stack MERN (MongoDB, Express.js, React.js, Node.js) web application project built using TypeScript. The project incorporates various features to facilitate food ordering and restaurant management.
Responsive Design: The website is fully responsive, ensuring a seamless experience across various devices and screen sizes.
Pagination: Enhanced user experience with pagination for browsing through multiple pages of content.
Auth0 Integration: Secure user authentication and authorization handled using Auth0.
Stripe Payment Handling: Secure payment processing via Stripe, allowing users to make payments for their orders.
Restaurant Management: Users can create and manage their restaurants, including menu items, cuisines, delivery charges, and restaurant images.
Real-time Order Tracking: Users can track the status of their orders in real-time, providing transparency and convenience.
Filtering Options: Users can apply filters such as cuisine type, delivery time, and delivery charges while searching for restaurants.
MongoDB: NoSQL database for storing application data.
Express.js: Web application framework for Node.js.
React.js: JavaScript library for building user interfaces.
Node.js: JavaScript runtime for server-side development.
TypeScript: Superset of JavaScript that adds static typing to the language.
Auth0: Authentication and authorization platform.
Stripe: Payment processing platform.
Prerequisites
Node.js
npm or yarn
MongoDB
Auth0 account
Stripe account
1) Clone the repository:
git clone https://github.com/soumilaggarwal2003/MERN-food-ordering-app-backend
2) Install dependencies:
npm install or yarn install
3) Set up environment variables:
Create a .env file in the root directory and add the following variables:
MONGO_CONNECTION_STRING=
AUTH0_AUDIENCE=
AUTH0_ISSUER_BASE_URL=
Cloudinary
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
Stripe
FRONTEND_URL=
STRIPE_API_KEY=
STRIPE_WEBHOOK_SECRET=
Run the development server:
npm run dev or yarn dev
Open your browser and navigate to: http://localhost:3000
Navigate to the hosted URL: https://mern-food-ordering-app-frontend-nj2c.onrender.com/
Create an account or log in using Auth0.
Browse restaurants, filter results, and place orders.
Manage your restaurant if you are a registered owner.
Track your order status in real-time.
Auth0 Documentation
Stripe Documentation
React Documentation
Express.js Documentation
MongoDB Documentation
https://mern-food-ordering-app-frontend-nj2c.onrender.com/
Use the following card number for Stripe payment testing:
Card Number: 4000 0035 6000 0008