Skip to content

1046prt/QuickBite

Repository files navigation

πŸ” QuickBite - Modern Food Delivery Platform

A comprehensive, modern food delivery platform built with Next.js and React. Features a complete restaurant experience with 100+ menu items, advanced filtering, responsive design, authentication system, and multiple pages - delivering a premium user experience similar to top food delivery platforms.

QuickBite Platform

✨ Features

🍽️ Complete Menu System

  • 100+ Menu Items across 10 diverse categories
  • 10 Food Categories: Burgers, Sides, Drinks, Desserts, Pizzas, Biryani, Noodles, North Indian, South Indian, Rolls & Momos
  • Rich Product Details with descriptions, pricing, and high-quality images
  • Advanced Search & Filtering with price ranges and category filters
  • Popular Items highlighting with special badges

πŸŽ›οΈ Advanced Customization & Features

  • Size Selection (Small, Medium, Large, Extra Large)
  • Add-ons & Extras (cheese, bacon, vegetables, sauces, spices)
  • Special Instructions for dietary preferences and allergies
  • Real-time Price Calculation as you customize
  • Quantity Management with intuitive controls
  • Smart Search Bar with real-time results

πŸ›’ Enhanced Shopping Cart

  • Persistent Cart with localStorage integration
  • Item Management (add, remove, modify quantities)
  • Order Summary with itemized pricing
  • Tax Calculation and total computation
  • Responsive Cart Sidebar with smooth animations
  • Empty State Handling with helpful suggestions

πŸ” Authentication System

  • Login/Signup Modal with modern UI
  • Social Authentication (Google, Facebook)
  • Password Visibility Toggle
  • Form Validation with error handling
  • Responsive Design for all screen sizes

πŸ“± Multi-Page Architecture

  • Home/Menu Page - Main ordering interface
  • About Us Page - Company story, team, and values
  • FAQ Page - Comprehensive help section with categories
  • Contact Page - Multiple contact methods and form
  • Changelog Page - Feature updates and version history
  • Enhanced 404 Page - Helpful error page with suggestions

🎨 Modern Design System

  • Native CSS Architecture - No external CSS frameworks
  • Global CSS Variables - Consistent theming system
  • Responsive Design - Mobile-first approach
  • Professional Color Palette - Orange/red food-focused theme
  • Typography System - Montserrat + Open Sans combination
  • Smooth Animations and micro-interactions
  • Accessibility Compliant (WCAG AA standards)
  • Dark Mode Support - Complete theme switching

πŸ—οΈ Component Architecture

  • Reusable Components - Modular and maintainable
  • Layout Components - Header, Footer, Navigation
  • Independent CSS Files - No component dependencies
  • TypeScript Integration - Full type safety
  • Performance Optimized - Lazy loading and code splitting

πŸ› οΈ Tech Stack

  • Framework: Next.js 15 - React framework with App Router
  • Frontend: React 18 - Modern React with hooks
  • Styling: Native CSS - Custom CSS architecture with variables
  • State Management: Zustand - Lightweight state management
  • UI Components: Radix UI - Accessible component primitives
  • Icons: Lucide React - Beautiful icon library
  • Fonts: Google Fonts - Montserrat & Open Sans
  • TypeScript: Full type safety throughout the application
  • Build Tool: Turbopack - Fast bundler for development

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone <repository-url>
    cd quickbite-platform
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Start development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  4. Open your browser

    Navigate to `http://localhost:3000`

Build for Production

npm run build
npm run start

Linting & Code Quality

npm run lint
npm run lint:fix

πŸ“ Project Structure

quickbite-platform/
β”œβ”€β”€ πŸ“ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ πŸ“ about/                    # About page
β”‚   β”œβ”€β”€ πŸ“ api/                      # API routes
β”‚   β”‚   β”œβ”€β”€ πŸ“ menu/                 # Menu data endpoints
β”‚   β”‚   └── πŸ“ orders/               # Order processing
β”‚   β”œβ”€β”€ πŸ“ changelog/                # Changelog page
β”‚   β”œβ”€β”€ πŸ“ contact/                  # Contact page
β”‚   β”œβ”€β”€ πŸ“ faq/                      # FAQ page
β”‚   β”œβ”€β”€ πŸ“„ layout.tsx                # Root layout
β”‚   β”œβ”€β”€ πŸ“„ not-found.tsx             # 404 page
β”‚   └── πŸ“„ page.tsx                  # Home/Menu page
β”œβ”€β”€ πŸ“ components/                   # React components
β”‚   β”œβ”€β”€ πŸ“ auth/                     # Authentication components
β”‚   β”‚   └── πŸ“„ auth-modal.tsx        # Login/Signup modal
β”‚   β”œβ”€β”€ πŸ“ layout/                   # Layout components
β”‚   β”‚   β”œβ”€β”€ πŸ“„ header.tsx            # Site header
β”‚   β”‚   └── πŸ“„ footer.tsx            # Site footer
β”‚   β”œβ”€β”€ πŸ“ ui/                       # UI components
β”‚   β”œβ”€β”€ πŸ“„ checkout-modal.tsx        # Checkout flow
β”‚   β”œβ”€β”€ πŸ“„ item-customization-modal.tsx
β”‚   β”œβ”€β”€ πŸ“„ shopping-cart-sidebar.tsx
β”‚   └── πŸ“„ theme-provider.tsx
β”œβ”€β”€ πŸ“ hooks/                        # Custom React hooks
β”‚   β”œβ”€β”€ πŸ“„ use-mobile.ts
β”‚   └── πŸ“„ use-toast.ts
β”œβ”€β”€ πŸ“ lib/                          # Utility libraries
β”‚   β”œβ”€β”€ πŸ“„ cart-store.ts             # Shopping cart state
β”‚   β”œβ”€β”€ πŸ“„ menu-data.ts              # Menu data & types
β”‚   └── πŸ“„ utils.ts                  # Utility functions
β”œβ”€β”€ πŸ“ public/                       # Static assets
β”‚   β”œβ”€β”€ πŸ“ burger/                   # Food images
β”‚   β”œβ”€β”€ πŸ“ desserts/
β”‚   β”œβ”€β”€ πŸ“ drinks/
β”‚   β”œβ”€β”€ πŸ“ logo/                     # Brand assets
β”‚   β”œβ”€β”€ πŸ“ pizzas/
β”‚   └── πŸ“ sides/
β”œβ”€β”€ πŸ“ styles/                       # CSS files
β”‚   β”œβ”€β”€ πŸ“„ globals.css               # Global styles & variables
β”‚   β”œβ”€β”€ πŸ“„ components.css            # Component styles
β”‚   β”œβ”€β”€ πŸ“„ layout.css                # Layout styles
β”‚   β”œβ”€β”€ πŸ“„ pages.css                 # Page-specific styles
β”‚   β”œβ”€β”€ πŸ“„ auth.css                  # Authentication styles
β”‚   └── πŸ“„ additional-pages.css      # Additional page styles
β”œβ”€β”€ πŸ“„ components.json               # shadcn/ui config
β”œβ”€β”€ πŸ“„ next.config.mjs               # Next.js configuration
β”œβ”€β”€ πŸ“„ package.json                  # Dependencies
β”œβ”€β”€ πŸ“„ tsconfig.json                 # TypeScript config
└── πŸ“– README.md                     # Documentation

πŸ”Œ API Endpoints

Menu Endpoints

  • GET /api/menu - Get all menu items and categories
  • GET /api/menu/[category] - Get items by category

Order Endpoints

  • POST /api/orders - Submit new order
  • GET /api/orders/[id] - Get order status

🎯 Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npm run lint:fix - Fix ESLint errors

πŸ”§ Customization

Adding New Menu Items

Edit lib/menu-data.ts and add items to the appropriate category:

{
  id: "new-item",
  name: "New Delicious Item",
  description: "Amazing description",
  price: 12.99,
  image: "/path/to/image.png",
  category: "burgers",
  popular: true,
  customizations: {
    sizes: [
      { name: "Regular", price: 0 },
      { name: "Large", price: 2.5 }
    ],
    addons: [
      { name: "Extra Cheese", price: 1.5 }
    ]
  }
}

Modifying Styles

  • Global styles: styles/globals.css - CSS variables and base styles
  • Component styles: styles/components.css - Reusable component styles
  • Layout styles: styles/layout.css - Header, footer, navigation
  • Page styles: styles/pages.css - Page-specific styles
  • Theme colors: Modify CSS variables in globals.css

Adding New Pages

  1. Create new page in app/[page-name]/page.tsx
  2. Add corresponding styles in appropriate CSS file
  3. Update navigation in components/layout/header.tsx
  4. Add to footer links in components/layout/footer.tsx

Customizing Colors

Modify the CSS variables in styles/globals.css:

:root {
  --brand-primary: #ff6b35; /* Main brand color */
  --brand-secondary: #f7931e; /* Secondary brand color */
  --brand-accent: #ffd23f; /* Accent color */
  /* ... other variables */
}

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

🌟 Key Features Implemented

βœ… Completed Features

  • βœ… Native CSS Architecture - No external CSS frameworks
  • βœ… Global CSS Variables - Consistent theming system
  • βœ… Responsive Design - Mobile-first approach
  • βœ… Search Functionality - Real-time search with filters
  • βœ… Price Filtering - Filter by price ranges
  • βœ… Authentication Modal - Login/Signup with social options
  • βœ… Multi-page Architecture - About, FAQ, Contact, Changelog
  • βœ… Enhanced 404 Page - Helpful error page with suggestions
  • βœ… Footer Component - Complete footer with links and info
  • βœ… Header Component - Navigation with search and cart
  • βœ… Reusable Components - Modular and maintainable
  • βœ… TypeScript Integration - Full type safety
  • βœ… Performance Optimized - Fast loading and smooth interactions

🎨 Design System

  • Color Palette: Food-focused orange/red theme
  • Typography: Montserrat (headings) + Open Sans (body)
  • Spacing: Consistent spacing scale with CSS variables
  • Border Radius: Rounded corners for modern look
  • Shadows: Layered shadow system for depth
  • Animations: Smooth transitions and micro-interactions

πŸ“± Responsive Breakpoints

  • Mobile: < 768px
  • Tablet: 768px - 1024px
  • Desktop: > 1024px
  • Large Desktop: > 1280px

πŸš€ Performance Features

  • Code Splitting - Automatic route-based splitting
  • Image Optimization - Next.js Image component
  • Font Optimization - Google Fonts with display swap
  • CSS Optimization - Minimal CSS with variables
  • Bundle Analysis - Optimized bundle sizes

πŸ”’ Security Features

  • Form Validation - Client and server-side validation
  • XSS Protection - Sanitized inputs and outputs
  • CSRF Protection - Built-in Next.js protection
  • Secure Headers - Security headers configuration

πŸ“Š Browser Support

  • Chrome: Latest 2 versions
  • Firefox: Latest 2 versions
  • Safari: Latest 2 versions
  • Edge: Latest 2 versions
  • Mobile Browsers: iOS Safari, Chrome Mobile

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use semantic HTML elements
  • Maintain accessibility standards
  • Write descriptive commit messages
  • Test on multiple devices and browsers

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A modern, fully-functional digital menu and ordering system built with Astro and React.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published