Skip to main content
Kunal Das

Crusto - Full-Stack Pizza Delivery Platform

Full-stack pizza delivery platform featuring custom pizza building, order tracking, inventory management, payments, and an advanced admin dashboard.

Content type:Project
Duration:

Reading time:4 min read

Crusto is a full-stack pizza delivery platform with custom pizza building, order tracking, inventory management, dynamic pricing, and an advanced admin dashboard.

๐ŸŒ Try now at crusto-pizza.vercel.app

Demo Admin Credentials

Email: admin@gmail.com
Password: Admin@123

Features

  • Custom Pizza Builder - Choose ingredients and build pizzas
  • Order Tracking - Real-time status updates
  • User Accounts - Save preferences and order history
  • Secure Payments - Multiple payment options
  • Admin Dashboard - Manage inventory and orders
  • Low Stock Alerts - Email notifications for low ingredients
  • Analytics - Sales reports and insights
  • Dynamic Pricing - Automatically calculate costs and availability
  • Mobile Responsive - Works across devices

Project Structure

The project is organized into separate frontend and backend applications:

crusto-pizza-delivery-app/
โ”œโ”€โ”€ client/                     # React frontend application
โ”‚   โ”œโ”€โ”€ public/                 # Static assets (favicon, etc.)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/         # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/              # Custom React hooks
โ”‚   โ”‚   โ”œโ”€โ”€ layouts/            # Page layout components
โ”‚   โ”‚   โ”œโ”€โ”€ lib/                # Utility functions and helpers
โ”‚   โ”‚   โ”œโ”€โ”€ pages/              # Page components organized by domain
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth/           # Authentication pages
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ root/           # Customer-facing pages
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ dashboard/      # Admin dashboard pages
โ”‚   โ”‚   โ”œโ”€โ”€ routes/             # React Router configuration
โ”‚   โ”‚   โ”œโ”€โ”€ store/              # Zustand state management stores
โ”‚   โ”‚   โ”œโ”€โ”€ App.tsx             # Main app component
โ”‚   โ”‚   โ”œโ”€โ”€ main.tsx            # React entry point
โ”‚   โ”‚   โ””โ”€โ”€ global.css          # Global styles
โ”‚   โ”œโ”€โ”€ .env.example            # Environment variables template
โ”‚   โ”œโ”€โ”€ package.json            # Frontend dependencies and scripts
โ”‚   โ”œโ”€โ”€ components.json         # Radix UI components configuration
โ”‚   โ”œโ”€โ”€ vite.config.ts          # Vite build configuration
โ”‚   โ””โ”€โ”€ tsconfig.json           # TypeScript configuration
โ”‚
โ”œโ”€โ”€ server/                     # Node.js backend application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/             # DB, Redis, Cloudinary, and Razorpay configuration
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/        # Route handlers and business logic
โ”‚   โ”‚   โ”œโ”€โ”€ jobs/               # Background job system
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ processors/     # Job processing logic
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ queues/         # Job queue definitions
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ workers/        # Worker processes
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/         # Express middleware
โ”‚   โ”‚   โ”œโ”€โ”€ models/             # Mongoose schemas and models
โ”‚   โ”‚   โ”œโ”€โ”€ nodemailer/         # Email configuration and templates
โ”‚   โ”‚   โ”œโ”€โ”€ routes/             # API route definitions
โ”‚   โ”‚   โ”œโ”€โ”€ types/              # TypeScript type definitions
โ”‚   โ”‚   โ”œโ”€โ”€ utils/              # Helper functions and utilities
โ”‚   โ”‚   โ””โ”€โ”€ server.ts           # Express server entry point
โ”‚   โ”œโ”€โ”€ .env.example            # Environment variables template
โ”‚   โ”œโ”€โ”€ package.json            # Backend dependencies and scripts
โ”‚   โ””โ”€โ”€ tsconfig.json           # TypeScript configuration
โ”œโ”€โ”€ .gitignore                  # Git ignore rules
โ”œโ”€โ”€ LICENSE                     # Apache 2.0 license
โ””โ”€โ”€ README.md                   # Project documentation

Prerequisites

Before you begin, ensure you have the following installed:

Getting Started

After checking the prerequisites above, follow these steps to set up the project.

  1. Clone the repository

    git clone https://github.com/kunaldasx/crusto-pizza-delivery-app
    cd crusto-pizza-delivery-app
  2. Set up the frontend

    cd client
    npm install
    cp .env.example .env
    npm run dev

    Configure the required environment variables in .env.

  3. Set up the backend

    Open a second terminal:

    cd server
    npm install
    cp .env.example .env
    npm run dev

    Configure the required environment variables in .env.

  4. Start the background workers

    Use additional terminals for the background jobs:

    # Price calculations
    cd server
    npm run dev:price
    # Stock management
    cd server
    npm run dev:availability

Development

Once the frontend, backend, and background workers are running, the application can be used locally with the configured environment variables.

Contributing

Contributions are welcome. To contribute to Crusto:

  1. Clone the repository and create a new branch:

    git checkout -b name_for_new_branch
  2. Make your changes and test them locally.

  3. Submit a Pull Request with a comprehensive description of your changes.

Emailware

Crusto is an emailware. If you liked using this app or it helped you in any way, you can send an email to kunaldasx@gmail.com with anything you'd like to say about the software.

Technologies

This software uses the following technologies:

  • Frontend: React 19 + TypeScript + Vite + TailwindCSS + Radix UI
  • Backend: Node.js + Express + TypeScript
  • Database: MongoDB (Mongoose ODM)
  • State Management: Zustand stores
  • Queue System: Redis + BullMQ for background jobs
  • Authentication: JWT + bcrypt
  • File Storage: Cloudinary
  • Payments: Razorpay
  • Email: Nodemailer

License

Apache 2.0


๐ŸŒ Visit my website โ†’
๐Ÿ–ฅ๏ธ GitHub ย ยทย 
๐Ÿ’ผ LinkedIn ย ยทย 
๐Ÿฆ Twitter / X ย ยทย