Skip to content

A restaurant-focused platform for processing online orders with an admin panel to manage operations and a user-friendly interface for customers to place and track their orders.

License

Notifications You must be signed in to change notification settings

Bushra-Butt-17/FoodDeliverySystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


πŸ” FoodDeliverySystem

banner

A robust and scalable web application designed to deliver an intuitive food ordering experience for customers while providing administrators with powerful tools for order and menu management. The platform allows users to explore menus, place orders, track delivery statuses, and enjoy a seamless ordering experience. Meanwhile, administrators benefit from easy-to-use features for managing food categories, menu items, and orders, ensuring smooth operational workflows and an optimized user experience.


πŸ“‚ Project Structure

FoodDeliverySystem/
β”œβ”€β”€ assets/                     # Static resources (CSS, JavaScript, media files)
β”œβ”€β”€ partials-front/             # Reusable frontend components (headers, footers, modals)
β”œβ”€β”€ images/                     # Image files for the application
β”œβ”€β”€ admin/                      # Backend admin panel files and scripts
β”œβ”€β”€ config/                     # Configuration scripts for database and environment settings
β”œβ”€β”€ user/                       # Frontend files for user interactions (UI components, user-specific logic)
β”œβ”€β”€ README.md                   # Project documentation

✨ Features

πŸ›οΈ For Users:

  • πŸ“– Explore Menu: Browse dishes by category, cuisine, or search for specific meals.
  • πŸ›’ Easy Ordering: Select items, add them to the cart, and complete the purchase process seamlessly with real-time updates.
  • πŸ“¦ Track Orders: Stay informed about the real-time status of orders, from preparation to delivery.
  • 🌟 User-Friendly Interface: A responsive and visually appealing design ensures a smooth experience across desktop and mobile platforms.
  • πŸ”„ Realtime Updates: Experience live order status updates via AJAX, with no need to refresh the page.

πŸ› οΈ For Admins:

  • πŸ“‘ Category Management: Add, update, or remove food categories to ensure easy menu navigation for customers.
  • 🍽️ Menu Management: Efficiently update menu items, their descriptions, prices, and availability.
  • πŸ“Š Order Management: Monitor and manage incoming orders, update their statuses (e.g., Pending, In Progress, Delivered), and track historical data.
  • πŸ”’ Secure Admin Panel: Admin access is protected by a robust authentication system, ensuring security and control.
  • πŸ“ˆ Reporting: Access real-time insights and reports on sales, most popular dishes, and order trends.

πŸ› οΈ Technologies Used

🌐 HTML (Hypertext Markup Language)

  • Purpose: Provides the structure and layout of the web pages, including content organization such as text, images, and forms.
  • Role in This Project:
    • Defines the overall page structure for both user and admin interfaces.
    • Organizes elements like menus, forms, and order data in a meaningful, user-friendly manner.
  • Example:
    <div class="menu-item">
        <h3>Cheese Burger</h3>
        <p>$10</p>
        <button>Add to Cart</button>
    </div>

🎨 CSS (Cascading Style Sheets)

  • Purpose: Responsible for the visual appearance and layout of the web pages, ensuring that the content is presented in a clean, professional, and aesthetically pleasing manner.
  • Role in This Project:
    • Implements responsive design techniques using media queries for mobile and desktop versions.
    • Enhances user experience with styling for buttons, navigation bars, cards, and other UI components.
  • Example:
    .menu-item {
        background-color: #f9f9f9;
        padding: 20px;
        border-radius: 8px;
        text-align: center;
    }
    button {
        background-color: #ff5722;
        color: white;
        padding: 10px 20px;
        border: none;
        border-radius: 5px;
    }

πŸ€– JavaScript

  • Purpose: Adds dynamic behavior and interactivity to the website, allowing for real-time updates without needing to refresh the page.
  • Role in This Project:
    • Implements core functionality like cart operations, real-time order tracking, and search features.
    • Utilizes AJAX to fetch data dynamically and update the UI without page reloads.
    • Validates forms, ensuring users enter correct data.
  • Example:
    document.querySelector("#addToCart").addEventListener("click", function() {
        alert("Item added to cart!");
    });

βš™οΈ PHP (Hypertext Preprocessor)

  • Purpose: Server-side scripting language that handles backend logic, data processing, and interactions with the database.
  • Role in This Project:
    • Manages CRUD (Create, Read, Update, Delete) operations for food items, categories, and orders.
    • Handles user authentication for the admin panel and maintains session management.
    • Ensures smooth communication between the front end and the MySQL database.
  • Example:
    // Fetch menu items from the database
    $query = "SELECT * FROM menu_items";
    $result = $conn->query($query);
    while ($row = $result->fetch_assoc()) {
        echo "<div class='menu-item'>";
        echo "<h3>{$row['name']}</h3>";
        echo "<p>\${$row['price']}</p>";
        echo "</div>";
    }

πŸš€ Installation

1️⃣ Clone the Repository

git clone https://github.com/Bushra-Butt-17/FoodDeliverySystem.git
cd FoodDeliverySystem

2️⃣ Set Up the Database

  1. Import the Database Schema
    Import the database.sql file from the config folder into your MySQL database using phpMyAdmin or a similar database management tool.

  2. Update Database Configuration
    Edit the config/db-config.php file and provide your database credentials:

    • Host: The host address of your MySQL server (e.g., localhost).
    • Username: Your MySQL username.
    • Password: Your MySQL password.
    • Database Name: The name of the database you imported from database.sql.
  3. Run the Application
    Place the project folder into your local server's root directory (e.g., htdocs) and access it through your browser at: http://localhost/FoodDeliverySystem/


🎯 Future Enhancements

  • πŸ” User Authentication: Integrate a secure login system for users to manage their personal information, order history, and preferences.
  • πŸ’³ Payment Gateway Integration: Implement payment functionality for users to complete purchases securely via integrated payment processors (e.g., Stripe, PayPal).
  • πŸ“ Ratings & Reviews: Allow customers to rate and leave reviews for dishes, enhancing the decision-making process for other users.
  • πŸ“± Mobile Optimization: Further optimize the UI for mobile devices, ensuring a smooth and intuitive experience for users on-the-go.
  • 🌍 Multi-Language Support: Expand accessibility by offering localization options to support multiple languages and cater to a wider audience.

πŸ§‘β€πŸ’» Contributor Guidelines

If you would like to contribute to the development of FoodDeliverySystem, here are a few guidelines to ensure smooth collaboration:

How to Contribute:

  1. Fork the Repository
    Start by forking the repository to your own GitHub account. This ensures that you can freely make changes without affecting the original code.

  2. Clone the Forked Repository
    Clone the repository to your local machine to begin working:

    git clone https://github.com/Bushra-Butt-17/FoodDeliverySystem.git
  3. Create a New Branch
    Before making any changes, create a new branch for your feature or bug fix:

    git checkout -b feature/your-feature-name
  4. Make Changes
    Implement your feature or fix the bug. Ensure that your code follows the project's coding standards (e.g., indentations, naming conventions).

  5. Commit Your Changes
    Commit your changes with a clear and concise commit message describing what was changed:

    git commit -m "Added new feature XYZ"
  6. Push Your Changes
    Push your changes back to your forked repository:

    git push origin feature/your-feature-name
  7. Create a Pull Request
    Once you've pushed your changes, create a pull request (PR) from your forked repository's branch to the original repository's main branch. In the PR description, explain the changes you made.

  8. Code Review
    A project maintainer will review your PR, provide feedback, and possibly request additional changes before merging.

Code Standards:

  • Clean and Readable Code: Always write clean, understandable, and well-documented code.
  • Commenting: Include comments where necessary, especially for complex logic, to explain what the code does.
  • Testing: If applicable, write unit tests to verify the correctness of your feature or bug fix.

By following these guidelines, you can help ensure that contributions to the project are high quality and maintainable.


🌱 License and Acknowledgements

This project is licensed under the MIT License, which allows anyone to freely use, modify, and distribute the software for both personal and commercial purposes.

License Information:

  • MIT License
    The MIT License allows for redistribution and modification of the software, provided that the original license notice is included in all copies of the software. This ensures that anyone using the project is aware of the terms under which it was shared.

Acknowledgements:

This project was inspired by the need for a simple yet effective solution to manage food orders and provide a seamless user experience. Special thanks to the following resources that helped in shaping the development process:

  • Bootstrap: For providing responsive web components and grid systems.
  • PHP Manual: For comprehensive documentation on PHP.
  • MySQL Documentation: For clear guides on database management and queries.
  • Font Awesome: For easily integrating icons and enhancing the UI.

The development community's open-source projects and documentation have been invaluable in providing the necessary tools and frameworks for building this application.


πŸŽ₯ Video Demonstration

To give you a comprehensive overview of how the FoodDeliverySystem works, we have created a demonstration video that covers the key features and functionalities of the system, both from the user and admin perspectives.

Key Features Covered:

  • For Users: Browsing the menu, adding items to the cart, placing an order, and tracking delivery status in real-time.
  • For Admins: Managing food categories, updating menu items, and monitoring incoming orders with the ability to update order statuses and view reports.
Online.food.ordering.system.mp4

This video provides a step-by-step walkthrough of how to use the system, ensuring that you get the most out of the FoodDeliverySystem, whether you're a customer placing an order or an admin managing the platform.