Restaurant Delivery Website
This project is a restaurant delivery web application developed using Django and HTML. The platform allows users to browse the restaurant's menu, place orders online, and for the restaurant's admin team to manage and track deliveries. This system simplifies the food ordering process and enhances the delivery management workflow.
Project Overview
The Restaurant Delivery Website was designed to cater to the needs of both customers and restaurant administrators. It offers an intuitive interface for customers to explore the menu and place orders, while also providing an administrative interface to handle order processing and delivery management.
The project demonstrates my ability to develop a functional, scalable web application using modern technologies and best practices in web development.
Key Features
Menu Page:
Customers can easily browse through the restaurant's available dishes along with their prices.
Menu items are displayed in a clean and accessible layout, making it simple for users to view and select what they want to order.
Order Submission:
Customers can select items from the menu and submit their orders for delivery.
The ordering process is streamlined to ensure quick and easy interaction, with a form that captures essential order details.
Admin Panel for Order Management:
Administrators have access to a secure login page where they can manage all incoming orders.
Admins can track the status of each order and mark them as "shipped" once the delivery is completed.
The admin interface is intuitive and built into Django’s default admin system, offering security and ease of use.
Technologies Used
Django: Backend framework used for handling the database, routing, and order management logic.
HTML: Frontend used for designing the web pages for both customers and the admin dashboard.
SQLite: Default Django database used for handling customer orders and admin data.
Setup and Installation
If you want to run the project locally, follow the steps below:
Clone the Repository:
bashCopy code
git clone https://github.com/mahmouddaasan/restaurant-delivery-website.git cd restaurant-delivery-website
Create a Virtual Environment:
bashCopy code
python -m venv env source env/bin/activate # macOS/Linux env\Scripts\activate # Windows
Install the Required Dependencies:
bashCopy code
pip install -r requirements.txt
Run Migrations: Django uses migrations to set up the database schema. Run the following command to apply migrations:
bashCopy code
python manage.py migrate
Create a Superuser: To access the admin panel, you need to create a superuser:
bashCopy code
python manage.py createsuperuser
Follow the prompts to create a username, email, and password.
Run the Development Server: Start the Django development server by running:
bashCopy code
python manage.py runserver
Access the Application:
User Website: Go to
http://127.0.0.1:8000/
to view the menu and place orders.Admin Interface: Go to
http://127.0.0.1:8000/admin/
to log in with your superuser credentials and manage orders.
How the Application Works
User Side:
Menu Browsing: The homepage features the restaurant’s menu, where customers can browse through various food items and view their prices.
Placing Orders: Once the customer selects their food items, they can place an order by submitting a simple form with relevant details.
Admin Side:
Managing Orders: Admins log in to the dashboard to view submitted orders. Each order contains the details of the customer and the selected items.
Updating Order Status: Once an order is delivered, the admin can mark the order as "shipped" to reflect the delivery status.
Why This Project Stands Out
This project showcases a complete end-to-end solution for online food ordering and delivery management. By leveraging Django's powerful framework, I was able to create a smooth experience for both customers and restaurant staff. The project demonstrates my skills in:
Backend Development: Using Django to handle routing, database management, and admin functionality.
Frontend Development: Developing user-friendly interfaces using HTML.
Database Management: Utilizing Django's ORM and SQLite to handle user and order data effectively.
Project Management: From concept to deployment, the project follows best practices in full-stack development, with a clear focus on scalability and user experience.