feat: added food delivey system #36
Merged
+935
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add a Food Delivery System using C++ and OOP Design Patterns
✅ Summary
This PR implements the complete Food Delivery System in C++ following Object-Oriented Design Principles and key Design Patterns — Singleton, Factory, and Strategy.
The system simulates a simplified food ordering platform similar to Zomato, where users can browse restaurants, select items, place orders (delivery or pickup), and pay using multiple payment methods.
🧩 Key Features Implemented
📦 Models
User,Restaurant,MenuItem,Cart,Order,PickupOrder,DeliveryOrder🏢 Managers (Singletons)
RestaurantManager– handles restaurant data and menusOrderManager– manages active and past orders🏭 Factories (Factory Pattern)
OrderFactory(abstract interface)NowOrderFactoryandScheduledOrderFactoryfor creating order types dynamically💳 Payment Strategies (Strategy Pattern)
PaymentStrategy(interface)CreditCardPaymentStrategy,UpiPaymentStrategy,NetbankingPaymentStrategy🛎️ Services
NotificationServicefor sending notifications after order placement🧰 Utils
TimeUtilsfor timestamps and order scheduling🧠 Design Highlights
Demonstrates SOLID principles and design pattern usage for modularity and scalability.
Clean folder structure aligning with UML design:
Code documented with comments explaining relationships and responsibilities.
🧪 Testing
📸 Attachments
📜 Additional Notes
Requesting Review
Please review the code structure, design implementation, and adherence to OOP principles.
Feedback on design extensibility and naming conventions is welcome.