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.
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
- π 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.
- π 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.
- 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>
- 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; }
- 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!"); });
- 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>"; }
git clone https://github.com/Bushra-Butt-17/FoodDeliverySystem.git
cd FoodDeliverySystem
-
Import the Database Schema
Import thedatabase.sql
file from theconfig
folder into your MySQL database using phpMyAdmin or a similar database management tool. -
Update Database Configuration
Edit theconfig/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
.
- Host: The host address of your MySQL server (e.g.,
-
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/
- π 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.
If you would like to contribute to the development of FoodDeliverySystem, here are a few guidelines to ensure smooth collaboration:
-
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. -
Clone the Forked Repository
Clone the repository to your local machine to begin working:git clone https://github.com/Bushra-Butt-17/FoodDeliverySystem.git
-
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
-
Make Changes
Implement your feature or fix the bug. Ensure that your code follows the project's coding standards (e.g., indentations, naming conventions). -
Commit Your Changes
Commit your changes with a clear and concise commit message describing what was changed:git commit -m "Added new feature XYZ"
-
Push Your Changes
Push your changes back to your forked repository:git push origin feature/your-feature-name
-
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. -
Code Review
A project maintainer will review your PR, provide feedback, and possibly request additional changes before merging.
- 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.
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.
- 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.
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.
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.
- 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.