Skip to content

tejaswiniii-11/FoodOrderingConsoleApp_Beta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍽️ Mini Food Ordering Console App (Beta)

A console-based food ordering system for Admins and Customers built with Java πŸ§‘β€πŸ’»

This Beta version of the Mini Food Ordering App allows an Admin to manage menus, discounts, and delivery partners, while Customers can browse menus, place orders, and receive printed invoices β€” all through a console interface.


βœ… Key Features

#πŸ‘©β€πŸ’ΌAdmin Functionalities #

βž• Add/Delete Menus and Menu Items (with IDs)

🏷️ Set Discount Percentage

πŸ“ƒ View Menu List

🚚 Manage Delivery Partners

πŸ“ƒ View Customer Invoices


#πŸ‘©β€πŸ³ Customer Functionalities #

πŸ“– View Menus

βž•βž– Add/Delete Items to Cart (via Menu ID & Item ID)

πŸ›’ View Cart

πŸ’° View Total Price (with applied discounts)

🧾 Make Payment (UPI / Cash)

🧍 Assigned Delivery Partner

🧾 Generate Invoice


πŸ“Œ Functional Scope

  • βœ… Menu Display: Dynamic list of food items by menu
  • βœ… Order Placement: Customer selects items and quantities
  • βœ… Discount System: Flat discount applied if total > β‚Ή500 πŸ€‘
  • βœ… Payment Options: Choose between Cash πŸ’΅ or UPI πŸ“±
  • βœ… Delivery Assignment: Random assignment to available delivery agents
  • βœ… Invoice Generation: Print full bill with items, quantities, price, discount, total, payment method, and delivery partner and also store it using serialization concept

πŸ” SOLID Design Principles Used

🧱 Principle βœ… Implementation

S - Single Responsibility Each class does one job only β€” e.g., MenuManager manages menus, OrderManager handles cart logic, InvoiceGenerator generates invoices.

O - Open/Closed System is open for extension, closed for modification β€” e.g., new payments/discounts can be added without changing existing classes using interfaces.

L - Liskov Substitution Subtypes like CashPayment, UpiPayment are interchangeable via IPaymentService abstraction.

I - Interface Segregation Interfaces are granular and focused β€” e.g., IMenuViewer, IMenuManager, IDeliveryService.

D - Dependency Inversion High-level modules (Customer, etc.) depend on interfaces, not concrete classes β€” promoting flexibility and testability.

πŸ› οΈ Technologies Used

β˜• Java 17 🧭 Object-Oriented Programming πŸ–₯️ Console-based User Interaction 🧱 SOLID Design Principles

πŸš€ How to Run git clone https://github.com/yourusername/food-ordering-console-app.git cd food-ordering-console-app

➑️ Open the project in your favorite IDE (e.g., IntelliJ IDEA, Eclipse). ➑️ Run FoodOrderingDriver.java from the com.aurionpro.tests package to start the application.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages