Tomato is a full-stack food delivery web application built with React.js, Express.js, and MongoDB. It allows users to sign in or sign up, explore a variety of food products, add them to the cart, and place orders securely. The application is designed to be responsive and user-friendly.
Check out the live demo here.
- User Authentication: Secure user authentication with JSON Web Tokens (JWT).
- Product Exploration: Browse through a variety of food products.
- Shopping Cart: Add products to the cart and place orders seamlessly.
- Responsive Design: Fully responsive design for a great user experience on any device.
- Frontend: React.js, Tailwind CSS
- Backend: Express.js
- Database: MongoDB
- Authentication: JSON Web Tokens (JWT)
To get a local copy of the project up and running, follow these steps:
-
Clone the repository:
git clone https://github.com/Mihirjataniya/TOMATO-MERN
-
Change to the project directory:
cd TOMATO
-
Set up MongoDB: Create a MongoDB database and update the connection string in
server/config/db.js
. -
Configure environment variables: Create a
.env
file in theserver
directory and set the following variables:JWT_SECRET=your_secret_key DATABASE=your_mongodb_connection_string
-
Start the backend server:
cd Backend npm i node index.js
The server will be running at
http://localhost:3000
. -
Start the frontend:
cd Frontend npm i npm run dev
The application will be accessible at
http://localhost:5173
.
This project utilizes JSON Web Tokens for user authentication. Ensure that sensitive information, such as secret keys, is kept secure. Implement HTTPS for production deployments.
Contributions are welcome! Feel free to open issues and pull requests.