├── README.md ├── pom.xml └── src ├── main └── java │ └── com │ └── mayank │ └── fooddelivery │ ├── FoodDeliveryStartApplication.java │ ├── commands │ ├── AddCartCommandExecutor.java │ ├── CancelOrderCommandExecutor.java │ ├── CartCommandExecutor.java │ ├── OrderCommandExecutor.java │ ├── PlaceOrderCommandExecutor.java │ └── RemoveCartCommandExecutor.java │ ├── controllers │ ├── CartController.java │ ├── DeliveryController.java │ ├── FoodMenuController.java │ ├── OrderController.java │ ├── PaymentController.java │ ├── PricingController.java │ ├── RestaurantController.java │ └── UserController.java │ ├── datastore │ ├── CartData.java │ ├── DeliveryData.java │ ├── FoodMenuData.java │ ├── OrderData.java │ ├── PaymentData.java │ ├── RestaurantData.java │ └── UserData.java │ ├── exceptions │ ├── ExceptionType.java │ └── FoodDeliveryException.java │ ├── model │ ├── Address.java │ ├── Bill.java │ ├── CartCommandType.java │ ├── CouponCode.java │ ├── CuisineType.java │ ├── Delivery.java │ ├── FoodMenu.java │ ├── Location.java │ ├── MealType.java │ ├── MenuItem.java │ ├── Order.java │ ├── OrderCommandType.java │ ├── OrderStatus.java │ ├── Payment.java │ ├── PaymentStatus.java │ ├── PaymentType.java │ ├── Restaurant.java │ └── User.java │ ├── services │ ├── CartService.java │ ├── DeliveryService.java │ ├── FoodMenuService.java │ ├── OrderService.java │ ├── PaymentService.java │ ├── PricingService.java │ ├── RestaurantService.java │ └── UserService.java │ └── strategy │ ├── FiveHundredOffPricingStrategy.java │ ├── PricingStrategy.java │ └── TwentyPercentOffPricingStrategy.java └── test └── java └── com └── mayank └── fooddelivery ├── CartTest.java ├── DeliveryTest.java ├── FoodMenuTest.java ├── OrderProcessTest.java ├── PaymentTest.java ├── PricingTest.java ├── RestaurantProcessTest.java ├── TestHelper.java └── UserTest.java /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/FoodDeliveryStartApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/FoodDeliveryStartApplication.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/AddCartCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/AddCartCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/CancelOrderCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/CancelOrderCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/CartCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/CartCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/OrderCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/OrderCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/PlaceOrderCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/PlaceOrderCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/commands/RemoveCartCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/commands/RemoveCartCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/CartController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/CartController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/DeliveryController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/DeliveryController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/FoodMenuController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/FoodMenuController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/OrderController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/OrderController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/PaymentController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/PaymentController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/PricingController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/PricingController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/RestaurantController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/RestaurantController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/controllers/UserController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/controllers/UserController.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/CartData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/CartData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/DeliveryData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/DeliveryData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/FoodMenuData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/FoodMenuData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/OrderData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/OrderData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/PaymentData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/PaymentData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/RestaurantData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/RestaurantData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/datastore/UserData.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/datastore/UserData.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/exceptions/ExceptionType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/exceptions/ExceptionType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/exceptions/FoodDeliveryException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/exceptions/FoodDeliveryException.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Address.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Address.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Bill.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Bill.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/CartCommandType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/CartCommandType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/CouponCode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/CouponCode.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/CuisineType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/CuisineType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Delivery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Delivery.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/FoodMenu.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/FoodMenu.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Location.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Location.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/MealType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/MealType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/MenuItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/MenuItem.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Order.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/OrderCommandType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/OrderCommandType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/OrderStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/OrderStatus.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Payment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Payment.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/PaymentStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/PaymentStatus.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/PaymentType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/PaymentType.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/Restaurant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/Restaurant.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/model/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/model/User.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/CartService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/CartService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/DeliveryService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/DeliveryService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/FoodMenuService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/FoodMenuService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/OrderService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/OrderService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/PaymentService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/PaymentService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/PricingService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/PricingService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/RestaurantService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/RestaurantService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/services/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/services/UserService.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/strategy/FiveHundredOffPricingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/strategy/FiveHundredOffPricingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/strategy/PricingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/strategy/PricingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/mayank/fooddelivery/strategy/TwentyPercentOffPricingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/main/java/com/mayank/fooddelivery/strategy/TwentyPercentOffPricingStrategy.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/CartTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/CartTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/DeliveryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/DeliveryTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/FoodMenuTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/FoodMenuTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/OrderProcessTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/OrderProcessTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/PaymentTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/PaymentTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/PricingTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/PricingTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/RestaurantProcessTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/RestaurantProcessTest.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/TestHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/TestHelper.java -------------------------------------------------------------------------------- /src/test/java/com/mayank/fooddelivery/UserTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mayankbansal93/lld-food-delivery-zomato-swiggy/HEAD/src/test/java/com/mayank/fooddelivery/UserTest.java --------------------------------------------------------------------------------