Welcome to the Restaurant Order Delivery System! This application leverages the Observer design pattern and RabbitMQ to efficiently handle order deliveries from restaurants to delivery agents.
In the fast-paced world of food delivery, timely communication between restaurants and delivery agents is crucial. This application uses the Observer pattern, allowing multiple delivery agents to subscribe to order updates, ensuring they receive real-time notifications when a new order is placed.
- Real-time Order Notifications: Delivery agents receive instant updates on new orders.
- Scalable Architecture: Easily add more delivery agents or restaurants without significant code changes.
- Robust Messaging: Utilizes RabbitMQ for reliable message delivery.
- User-friendly Interface: Simple and intuitive UI for both restaurant staff and delivery agents.
- RabbitMQ: For handling message queuing and delivery.
- Observer Design Pattern: To manage the relationship between orders and delivery agents.
- Python Programming Language: Python
- Frameworks Used: Flask
To get a local copy up and running, follow these steps:
-
Clone the repository:
git clone https://github.com/JavadTorabiKh/RestaurantOrderDeliverySystem.git
-
Install dependencies:
Navigate to the project directory and install the necessary packages:
cd restaurant-order-delivery-system # Replace with your dependency manager pip install -r requirements.txt
-
Set up RabbitMQ: Ensure RabbitMQ is installed and running on your machine. You can follow the official RabbitMQ installation guide.
-
Run the application:
Start the application with the following command:
python producer.py
- Place an Order: Use the restaurant interface to place a new order.
- Notify Delivery Agents: The system will automatically notify all subscribed delivery agents.
- Track Deliveries: Delivery agents can view and accept orders in real time.
Contributions are welcome! Please follow these steps:
- Fork the repo.
- Create a new branch (git checkout -b feature/YourFeature).
- Make your changes.
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature/YourFeature).
- Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.