This is a food delivery website built using ReactJS, Tailwind CSS, NodeJS, Firebase, Express, REST APIs, Redux, and authentication implemented using Google authentication. Users can browse through a variety of food items, add them to cart, and place an order. Administrators can add new dishes to the menu as well. 🍕🍝
Make sure you have installed the following software on your system:
- Node.js (v12 or higher)
- Firebase CLI (for deployment only)
- Clone the repository or download the zip file.
- Navigate to the project directory in your terminal.
- Run
npm install
to install all the required dependencies. - Create a
.env
file and add your Firebase configuration. Here's an example:
REACT_APP_FIREBASE_API_KEY=your_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id
REACT_APP_FIREBASE_MEASUREMENT_ID=your_measurement_id
- Run
npm start
to start the development server. - Navigate to http://localhost:3000 in your web browser to view the website.
To build the website for production, run npm run build
. This will create an optimized production build in the build
directory. 🏗️
To deploy the website, follow these steps:
- Create a new Firebase project.
- Initialize Firebase hosting in your project using the Firebase CLI.
- Run
npm run build
to create a production build. - Deploy the production build to Firebase hosting using the Firebase CLI.
For more information, see the Firebase documentation. 📖
- Authentication using Google authentication.
- Home page with a slider and featured dishes.
- Menu page with all the dishes listed.
- Add to cart page where users can add dishes to cart and place an order.
- Administrator page where administrators can add new dishes to the menu.
- ReactJS
- Tailwind CSS
- NodeJS
- Firebase
- Express
- REST APIs
- Redux
If you would like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your changes.
- Make your changes and commit them with descriptive commit messages.
- Push your changes to your forked repository.
- Create a pull request to merge your changes into the main repository.
This project is licensed to Harshith Mente.