Welcome to the Bistro Boss Restaurant Client-Side Repository! This repository contains the frontend code for the Bistro Boss Restaurant application, built using modern web technologies to provide a seamless and engaging user experience.
- React - A JavaScript library for building user interfaces.
- React Router - A collection of navigational components for React.
- Firebase - Used for Authentication & Hosting.
- Axios JS - A promise-based HTTP client for the browser and Node.js.
- Tailwind CSS - A utility-first CSS framework.
- Daisy UI - A component library for Tailwind CSS.
- React Helmet - A document head manager for React.
- React Hook Form - A library for managing form state in React.
- React Icons - Popular icons as React components.
- React Parallax - Parallax scrolling effects for React.
- React Responsive Carousel - Carousel component for React.
- React Simple Captcha - Captcha implementation for React.
- React Tabs - A React component for creating tabs.
- Recharts - A composable charting library for React.
- Sweet Alerts - Beautiful replacement for JavaScript's popup boxes.
- Swiper - A modern touch slider.
- Stripe - Payment processing platform.
- CORS - Middleware to enable CORS.
- Dotenv - Loads environment variables from a .env file.
- Express.js - Web application framework for Node.js.
- Node.js - JavaScript runtime built on Chrome's V8 engine.
- MongoDB - NoSQL database.
- JWT - JSON Web Tokens for secure data transmission.
- Stripe - Payment processing platform.
-
Navigation:
- The website has 6 main navigation links for easy access to different sections.
-
Home Page:
- Unregistered users can view a carousel, swiper, menu items with a "View Full Menu" button, a parallax section, customer reviews, and a footer.
-
Dashboard:
- Regular users and admins have distinct views. Admins can see additional stats not visible to regular users.
-
Our Menu Page:
- Regular users can see all menu items with descriptions and an "Order Now" button.
-
Order Food Route:
- After clicking "Order Now," users navigate to the "Order Food" route to see menu categories.
-
Protected Routes:
- Users must register or log in to add items to the cart, ensuring secure access to the ordering system.
-
User Authentication:
- Registered users can add products to their cart and proceed with orders.
-
Cart and Checkout:
- Users can view their cart, proceed to checkout, and use the Stripe payment gateway to complete their purchase.
-
Payment History:
- Users can view their payment history from the dashboard.
-
Admin Dashboard:
- Admins have access to additional links: Admin Home, Add Items, Manage Items, Manage Bookings, and All Users.
-
Admin Home:
- Displays stats related to revenue, customers, menus, and orders with bar and pie charts.
-
Add Items:
- Admins can add new menu items by filling out a form.
-
Manage Items:
- Admins can view and manage all menu items.
-
User Management:
- Admins can view all registered users, promote users to admin, or remove admin privileges.
-
API Security:
- JWT is used to secure APIs, ensuring only valid users can access data.
-
Admin Route Protection:
- Unauthorized users cannot access admin routes, even if they manually enter the URL.
-
Stripe Integration:
- Stripe payment gateway is implemented for secure transactions.
-
User Registration and Login:
- New users can register, and existing users can log in. Users can easily navigate between login and registration forms.
-
Form Management:
- Forms are implemented using Daisy UI and React Hook Form for a smooth user experience.
Explore the repository and contribute to enhance the Bistro Boss Restaurant application!
- Node.js installed on your local machine.
- MongoDB instance (local or cloud-based) for data storage.
- SMTP service credentials for sending emails (e.g., Gmail SMTP).
-
Clone the repository:
git clone https://github.com/Nadim-Nion/bistro-boss-client.git
-
Install dependencies:
cd bistro-boss-client npm install
-
Set up environment variables:
Create a
.env
file in the root directory with the following variables:PORT=3000 MONGODB_URI=<your_mongodb_connection_string> JWT_SECRET=<your_jwt_secret_key> SMTP_HOST=<smtp_host> SMTP_PORT=<smtp_port> SMTP_USER=<smtp_username> SMTP_PASS=<smtp_password>
-
Start the server:
npm start ```Absolutely, here's the section on commits with a potential improvement:
This repository adheres to a structured commit message convention to enhance readability and maintainability. Here's an overview of the key commit types:
- feat: Introduces a new feature to the application.
- fix: Addresses a bug or issue identified in the codebase.
- docs: Encompasses changes made to documentation, such as updates, additions, or corrections.
- style: Covers formatting adjustments, whitespace changes, or fixing minor inconsistencies like missing semicolons.
- refactor: Represents code structure improvements without altering functionality. This can involve code organization, renaming variables or functions, or improving readability.
- test: Introduces new tests or updates existing tests to ensure code quality and maintainability.
- chore: Encompasses changes that don't directly affect the application's functionality, such as updating build tasks, package manager configurations, or dependency versions.
Optional Improvement:
Consider adopting a more comprehensive commit message convention like Conventional Commits (https://www.conventionalcommits.org/en/v1.0.0-beta.4/). This approach provides a standard format for commit messages, including type, scope (optional), and a clear description of the change, making it easier to generate changelogs, automate workflows, and collaborate effectively.
By following these guidelines and potentially adopting a more detailed convention, you'll ensure clear and consistent commit messages that benefit you and your team in the long run.
Contributions are always welcome!
Contributions are welcome! Please open a pull request for any improvements or features.
Please adhere to this project's code of conduct
.
This project is licensed under the MIT License.
To deploy this project run
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Nadim-Nion/bistro-boss-client.git
git push -u origin main
Client: React+Vite, React Router, Firebase (Authentication & Hosting), Tailwind CSS, Daisy UI, Axios JS
Server: Express.js, Node.js, JWT, Stripe
Database: MongoDB
Tools: Vite, Vercel, npm, Surge, Netlify
State Management: Context API
Answer : Yes, the full website is responsive for the all devices (Desktop, Tablet and Phone)
Answer : I have stored all the data in MongoDB.
Hi, I am Nadim Mahmud Nion. I have recently concluded my graduation from the department of Computer Science and Engineering (CSE) at the Daffodil International University (DIU). I have been learning MERN Stack Web Development since 2022. I am expertise in the following skills:
-
React
-
Express.js
-
Node.js
-
MongoDB
-
JWT
-
Stripe
-
Vite
-
React Router
-
Firebase (Authentication & Hosting)
-
Vercel
-
JavaScript
-
Advanced JavaScript
-
Daisy UI
-
Bootstrap
-
Tailwind
-
HTML5
-
CSS3
-
Media Query
I have built multiple projects using these skills. You are invited to my GitHub profile to know about my projects and don't forget to give a star to my projects.