Pizza Rasoi is a full-stack web application built using Next.js 14, Node.js, and MongoDB with Tailwind CSS. It offers a complete online pizza ordering experience, including user authentication, shopping cart functionality, and an admin dashboard for managing products, categories, users, and orders.
Checkout live demo on vercel.
- Home Page: Includes a Hero section, Menu, About, and Contact sections.
- Navigation: Easily navigate through different sections and pages.
- 🍽️Menu: Browse a variety of pizzas available for order.
- 🛒Shopping Cart: Add pizzas to the cart, choose pizza sizes, add extra toppings, and view the cart with subtotal, delivery charges, and total charges.
- 💳Checkout: Fill in delivery details and proceed to payment, I haven't added a payment gateway, you can use stripe, shopify or razorpay.
- User Login: Login with Google or create an account.
- Profile Management: Update profile information, including uploading a profile image to Firebase.
- Admin Dashboard: Accessible only to admins.
- Categories: Perform CRUD operations on categories (add, edit, delete, and search).
- Menu Items: Perform CRUD operations on menu items.
- Users: View all users and manage user roles (e.g., promote users to admin).
- Carts: View and manage all carts.
- Next.js 14: The main framework for building the application.
- Tailwind CSS: For styling the application.
- React-Hot-Toast: For notifications and toasts.
- Node.js: The runtime environment.
- MongoDB: The database for storing application data.
- Mongoose: An ODM for MongoDB.
- Next-Auth: For authentication and session management.
- Next Adapters: For adapting various Next.js features.
- Uniqid: For generating unique IDs.
- Firebase: For handling image uploads to Firebase storage.
- Node.js
- MongoDB
- Firebase Account (for image uploads)
- Shopify or Stripe or RazorPay Account (for payment processing)
-
Clone the repository:
git clone https://github.com/Shivam171/pizza-rasoi.git cd pizza-rasoi
-
Install dependencies:
yarn install
-
Set up environment variables: Create a
.env
file in the root of the project or use the.env.example
for refrence and add the following environment variables:MONGO_URL=<Your MongoDB connection string> NEXTAUTH_URL=<Your NextAuth URL> NEXTAUTH_SECRET=<Your NextAuth secret> GOOGLE_CLIENT_ID=<Your Google client id> GOOGLE_CLIENT_SECRET=<Your Google client secret key> FIREBASE=<Refer .env.example>
-
Run the development server:
npm run dev
-
Open the application in your browser:
http://localhost:3000
- Browse Menu: Navigate to the menu to see different pizzas.
- Add to Cart: Customize your pizza with size and toppings and add it to the cart.
- Checkout: Proceed to checkout, fill in your details, and pay via your payment gateway.
- View Order: After payment, view your order details on the order page.
- Login as Admin: Access the admin dashboard.
- Manage Categories: Add, edit, delete, or search categories.
- Manage Menu Items: Perform CRUD operations on menu items.
- Manage Users: View and manage user roles.
- Manage Orders: View and manage all orders.
- Fork the repository.
- Create a new branch (
git checkout -b feature/feature-name
). - Make your changes.
- Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature/feature-name
). - Open a pull request.
Feel free to contribute, open issues, and submit pull requests to make Pizza Rasoi even better! Enjoy your pizza ordering experience!