gitextract_z31mpvc2/ ├── .gitignore ├── LICENSE ├── README.md ├── design-patterns/ │ ├── Javascript/ │ │ ├── Behavioral Pattern/ │ │ │ ├── Chain of Responsibilites/ │ │ │ │ ├── main.js │ │ │ │ └── supportRequest.js │ │ │ ├── Command Design Pattern/ │ │ │ │ ├── command.js │ │ │ │ ├── invoker.js │ │ │ │ ├── main.js │ │ │ │ └── receiver.js │ │ │ ├── Iterator Design Pattern/ │ │ │ │ ├── aggregate.js │ │ │ │ ├── book.js │ │ │ │ ├── iterator.js │ │ │ │ └── main.js │ │ │ ├── Mediator Design Pattern/ │ │ │ │ ├── main.js │ │ │ │ ├── mediator.js │ │ │ │ └── user.js │ │ │ ├── Memento Design Pattern/ │ │ │ │ ├── Example2/ │ │ │ │ │ ├── canvas.js │ │ │ │ │ ├── careTaker.js │ │ │ │ │ ├── main.js │ │ │ │ │ └── memento.js │ │ │ │ ├── careTaker.js │ │ │ │ ├── main.js │ │ │ │ ├── memento.js │ │ │ │ └── orginator.js │ │ │ ├── Observer Design Pattern/ │ │ │ │ ├── main.js │ │ │ │ ├── observer.js │ │ │ │ └── publisher.js │ │ │ ├── State Design Pattern/ │ │ │ │ ├── context.js │ │ │ │ ├── main.js │ │ │ │ └── state.js │ │ │ ├── Strategy Design Pattern/ │ │ │ │ ├── main.js │ │ │ │ ├── paymentStrategy.js │ │ │ │ └── shoppingCart_Context.js │ │ │ ├── Template Design Pattern/ │ │ │ │ ├── beverages.js │ │ │ │ ├── beveragesTypes.js │ │ │ │ └── main.js │ │ │ └── Visitor Design Pattern/ │ │ │ ├── element.js │ │ │ ├── main.js │ │ │ └── visitor.js │ │ ├── Creational Pattern/ │ │ │ ├── AbstractFactory Design Pattern/ │ │ │ │ ├── abstract.js │ │ │ │ └── main.js │ │ │ ├── Builder Design Pattern/ │ │ │ │ ├── app.js │ │ │ │ └── computerBuilder.js │ │ │ ├── Factory Design Pattern/ │ │ │ │ ├── factory.js │ │ │ │ ├── main.js │ │ │ │ └── pizza.js │ │ │ ├── Prototype Design Pattern/ │ │ │ │ └── app.js │ │ │ └── Singleton Design Pattern/ │ │ │ ├── app.js │ │ │ └── singleton.js │ │ └── Structural Pattern/ │ │ ├── Adapter Design Pattern/ │ │ │ ├── adapter.js │ │ │ ├── main.js │ │ │ ├── usbA_connector.js │ │ │ └── usbC_device.js │ │ ├── Bridge Design Pattern/ │ │ │ ├── device.js │ │ │ ├── main.js │ │ │ └── remoteControl.js │ │ ├── Composite Design Pattern/ │ │ │ ├── app.js │ │ │ ├── component.js │ │ │ ├── file.js │ │ │ └── folder.js │ │ ├── Decorator Design Pattern/ │ │ │ ├── additional.js │ │ │ ├── coffee.js │ │ │ └── main.js │ │ ├── Facade Design Pattern/ │ │ │ ├── dvdPlayer.js │ │ │ ├── lights.js │ │ │ ├── main.js │ │ │ ├── movieFacade.js │ │ │ ├── projector.js │ │ │ ├── snacks.js │ │ │ └── soundSystem.js │ │ ├── Flyweight Design Pattern/ │ │ │ ├── circle.js │ │ │ ├── circleFactory.js │ │ │ └── main.js │ │ └── Proxy Design Pattern/ │ │ ├── main.js │ │ ├── proxyImage.js │ │ └── real_Image.js │ ├── cpp/ │ │ ├── adapter/ │ │ │ ├── in_house_payment_processor.cpp │ │ │ ├── in_house_payment_processor.h │ │ │ ├── legacy_gateway.cpp │ │ │ ├── legacy_gateway.h │ │ │ ├── legacy_gateway_adapter.cpp │ │ │ ├── legacy_gateway_adapter.h │ │ │ ├── main.cpp │ │ │ └── payment_processor.h │ │ ├── bridge/ │ │ │ ├── circle.cpp │ │ │ ├── circle.h │ │ │ ├── main.cpp │ │ │ ├── raster_renderer.cpp │ │ │ ├── raster_renderer.h │ │ │ ├── rectangle.cpp │ │ │ ├── rectangle.h │ │ │ ├── renderer.h │ │ │ ├── shape.cpp │ │ │ ├── shape.h │ │ │ ├── vector_renderer.cpp │ │ │ └── vector_renderer.h │ │ ├── builder/ │ │ │ ├── http_request.cpp │ │ │ ├── http_request.h │ │ │ ├── http_request_builder.cpp │ │ │ ├── http_request_builder.h │ │ │ └── main.cpp │ │ ├── chainofresponsibility/ │ │ │ ├── auth_handler.h │ │ │ ├── authorization_handler.h │ │ │ ├── base_handler.cpp │ │ │ ├── base_handler.h │ │ │ ├── business_logic_handler.h │ │ │ ├── main.cpp │ │ │ ├── rate_limit_handler.h │ │ │ ├── request.cpp │ │ │ ├── request.h │ │ │ ├── request_handler.h │ │ │ └── validation_handler.h │ │ ├── composite/ │ │ │ ├── file.cpp │ │ │ ├── file.h │ │ │ ├── file_system_item.h │ │ │ ├── folder.cpp │ │ │ ├── folder.h │ │ │ └── main.cpp │ │ ├── decorator/ │ │ │ ├── bold_decorator.cpp │ │ │ ├── bold_decorator.h │ │ │ ├── italic_decorator.cpp │ │ │ ├── italic_decorator.h │ │ │ ├── main.cpp │ │ │ ├── plain_text_view.cpp │ │ │ ├── plain_text_view.h │ │ │ ├── text_decorator.cpp │ │ │ ├── text_decorator.h │ │ │ ├── text_view.h │ │ │ ├── underline_decorator.cpp │ │ │ └── underline_decorator.h │ │ ├── facade/ │ │ │ ├── build_system.cpp │ │ │ ├── build_system.h │ │ │ ├── deployment_facade.cpp │ │ │ ├── deployment_facade.h │ │ │ ├── deployment_target.cpp │ │ │ ├── deployment_target.h │ │ │ ├── main.cpp │ │ │ ├── testing_framework.cpp │ │ │ ├── testing_framework.h │ │ │ ├── version_control_system.cpp │ │ │ └── version_control_system.h │ │ ├── factory/ │ │ │ ├── CMakeLists.txt │ │ │ ├── email_notification.cpp │ │ │ ├── email_notification.h │ │ │ ├── main.cpp │ │ │ ├── notification.h │ │ │ ├── notification_factory.cpp │ │ │ ├── notification_factory.h │ │ │ ├── push_notification.cpp │ │ │ ├── push_notification.h │ │ │ ├── sms_notification.cpp │ │ │ └── sms_notification.h │ │ ├── flyweight/ │ │ │ ├── circle.cpp │ │ │ ├── circle.h │ │ │ ├── main.cpp │ │ │ ├── shape.h │ │ │ ├── shape_factory.cpp │ │ │ └── shape_factory.h │ │ ├── iterator/ │ │ │ ├── container.h │ │ │ ├── iterator.h │ │ │ ├── main.cpp │ │ │ ├── name_iterator.cpp │ │ │ ├── name_iterator.h │ │ │ ├── name_repository.cpp │ │ │ └── name_repository.h │ │ ├── mediator/ │ │ │ ├── button.cpp │ │ │ ├── button.h │ │ │ ├── form_mediator.cpp │ │ │ ├── form_mediator.h │ │ │ ├── label.cpp │ │ │ ├── label.h │ │ │ ├── main.cpp │ │ │ ├── text_field.cpp │ │ │ ├── text_field.h │ │ │ ├── ui_component.cpp │ │ │ ├── ui_component.h │ │ │ └── ui_mediator.h │ │ ├── memento/ │ │ │ ├── main.cpp │ │ │ ├── text_editor.cpp │ │ │ ├── text_editor.h │ │ │ ├── text_editor_memento.cpp │ │ │ ├── text_editor_memento.h │ │ │ ├── text_editor_undo_manager.cpp │ │ │ └── text_editor_undo_manager.h │ │ ├── observer/ │ │ │ ├── fitness_data.cpp │ │ │ ├── fitness_data.h │ │ │ ├── fitness_data_observer.h │ │ │ ├── fitness_data_subject.h │ │ │ ├── goal_notifier.cpp │ │ │ ├── goal_notifier.h │ │ │ ├── live_activity_display.cpp │ │ │ ├── live_activity_display.h │ │ │ ├── main.cpp │ │ │ ├── progress_logger.cpp │ │ │ └── progress_logger.h │ │ ├── prototype/ │ │ │ ├── enemy.cpp │ │ │ ├── enemy.h │ │ │ ├── enemy_prototype.h │ │ │ ├── enemy_registry.cpp │ │ │ ├── enemy_registry.h │ │ │ └── main.cpp │ │ ├── proxy/ │ │ │ ├── CMakeLists.txt │ │ │ ├── high_resolution_image.cpp │ │ │ ├── high_resolution_image.h │ │ │ ├── image.h │ │ │ ├── image_gallery_app_v1.cpp │ │ │ ├── image_gallery_app_v2.cpp │ │ │ ├── image_proxy.cpp │ │ │ └── image_proxy.h │ │ ├── singleton/ │ │ │ ├── double_checked_singleton.cpp │ │ │ ├── double_checked_singleton.h │ │ │ ├── eager_singleton.cpp │ │ │ ├── eager_singleton.h │ │ │ ├── lazy_singleton.cpp │ │ │ ├── lazy_singleton.h │ │ │ ├── main.cpp │ │ │ ├── thread_safe_singleton.cpp │ │ │ └── thread_safe_singleton.h │ │ ├── state/ │ │ │ ├── dispensing_state.cpp │ │ │ ├── dispensing_state.h │ │ │ ├── has_money_state.cpp │ │ │ ├── has_money_state.h │ │ │ ├── idle_state.cpp │ │ │ ├── idle_state.h │ │ │ ├── item_selected_state.cpp │ │ │ ├── item_selected_state.h │ │ │ ├── machine_state.h │ │ │ ├── main.cpp │ │ │ ├── vending_machine.cpp │ │ │ └── vending_machine.h │ │ ├── strategy/ │ │ │ ├── distance_based_shipping.cpp │ │ │ ├── distance_based_shipping.h │ │ │ ├── ecommerce_app.cpp │ │ │ ├── flat_rate_shipping.cpp │ │ │ ├── flat_rate_shipping.h │ │ │ ├── order.h │ │ │ ├── shipping_cost_service.cpp │ │ │ ├── shipping_cost_service.h │ │ │ ├── shipping_strategy.h │ │ │ ├── third_party_api_shipping.cpp │ │ │ ├── third_party_api_shipping.h │ │ │ ├── weight_based_shipping.cpp │ │ │ └── weight_based_shipping.h │ │ └── templatemethod/ │ │ ├── CMakeLists.txt │ │ ├── abstract_report_exporter.cpp │ │ ├── abstract_report_exporter.h │ │ ├── csv_report_exporter.cpp │ │ ├── csv_report_exporter.h │ │ ├── excel_report_exporter.cpp │ │ ├── excel_report_exporter.h │ │ ├── pdf_report_exporter.cpp │ │ ├── pdf_report_exporter.h │ │ ├── report_app.cpp │ │ ├── report_data.cpp │ │ └── report_data.h │ ├── csharp/ │ │ ├── adapter/ │ │ │ ├── CheckoutService.cs │ │ │ ├── IPaymentProcessor.cs │ │ │ ├── InHousePaymentProcessor.cs │ │ │ ├── LegacyGateway.cs │ │ │ ├── LegacyGatewayAdapter.cs │ │ │ └── Program.cs │ │ ├── bridge/ │ │ │ ├── Circle.cs │ │ │ ├── IRenderer.cs │ │ │ ├── Program.cs │ │ │ ├── RasterRenderer.cs │ │ │ ├── Rectangle.cs │ │ │ ├── Shape.cs │ │ │ └── VectorRenderer.cs │ │ ├── builder/ │ │ │ ├── HttpRequest.cs │ │ │ └── Program.cs │ │ ├── chainofresponsibility/ │ │ │ ├── AuthHandler.cs │ │ │ ├── AuthorizationHandler.cs │ │ │ ├── BaseHandler.cs │ │ │ ├── BusinessLogicHandler.cs │ │ │ ├── IRequestHandler.cs │ │ │ ├── Program.cs │ │ │ ├── RateLimitHandler.cs │ │ │ ├── Request.cs │ │ │ └── ValidationHandler.cs │ │ ├── composite/ │ │ │ ├── File.cs │ │ │ ├── Folder.cs │ │ │ ├── IFileSystemItem.cs │ │ │ └── Program.cs │ │ ├── decorator/ │ │ │ ├── BoldDecorator.cs │ │ │ ├── ITextView.cs │ │ │ ├── ItalicDecorator.cs │ │ │ ├── PlainTextView.cs │ │ │ ├── Program.cs │ │ │ ├── TextDecorator.cs │ │ │ └── UnderlineDecorator.cs │ │ ├── facade/ │ │ │ ├── BuildSystem.cs │ │ │ ├── DeploymentFacade.cs │ │ │ ├── DeploymentTarget.cs │ │ │ ├── Program.cs │ │ │ ├── TestingFramework.cs │ │ │ └── VersionControlSystem.cs │ │ ├── factory/ │ │ │ ├── EmailNotification.cs │ │ │ ├── INotification.cs │ │ │ ├── NotificationServiceNaive.cs │ │ │ ├── Program.cs │ │ │ ├── PushNotification.cs │ │ │ ├── SMSNotification.cs │ │ │ └── SimpleNotificationFactory.cs │ │ ├── flyweight/ │ │ │ ├── CharacterFlyweightFactory.cs │ │ │ ├── CharacterGlyph.cs │ │ │ ├── ICharacterFlyweight.cs │ │ │ ├── Program.cs │ │ │ └── TextEditorClient.cs │ │ ├── iterator/ │ │ │ ├── IIterableCollection.cs │ │ │ ├── IIterator.cs │ │ │ ├── Playlist.cs │ │ │ ├── PlaylistIterator.cs │ │ │ └── Program.cs │ │ ├── mediator/ │ │ │ ├── Button.cs │ │ │ ├── FormMediator.cs │ │ │ ├── IUIMediator.cs │ │ │ ├── Label.cs │ │ │ ├── Program.cs │ │ │ ├── TextField.cs │ │ │ └── UIComponent.cs │ │ ├── memento/ │ │ │ ├── Program.cs │ │ │ ├── TextEditor.cs │ │ │ ├── TextEditorMemento.cs │ │ │ └── TextEditorUndoManager.cs │ │ ├── observer/ │ │ │ ├── FitnessData.cs │ │ │ ├── GoalNotifier.cs │ │ │ ├── IFitnessDataObserver.cs │ │ │ ├── IFitnessDataSubject.cs │ │ │ ├── LiveActivityDisplay.cs │ │ │ ├── Program.cs │ │ │ └── ProgressLogger.cs │ │ ├── prototype/ │ │ │ ├── Enemy.cs │ │ │ ├── EnemyRegistry.cs │ │ │ ├── Game.cs │ │ │ └── IEnemyPrototype.cs │ │ ├── proxy/ │ │ │ ├── HighResolutionImage.cs │ │ │ ├── IImage.cs │ │ │ ├── ImageGalleryApp.cs │ │ │ └── ImageProxy.cs │ │ ├── singleton/ │ │ │ ├── BillPughSingleton.cs │ │ │ ├── DoubleCheckedLockingSingleton.cs │ │ │ ├── EagerSingleton.cs │ │ │ ├── LazySingleton.cs │ │ │ ├── SingletonDemo.cs │ │ │ ├── StaticBlockSingleton.cs │ │ │ └── ThreadSafeSingleton.cs │ │ ├── state/ │ │ │ ├── DispensingState.cs │ │ │ ├── HasMoneyState.cs │ │ │ ├── IMachineState.cs │ │ │ ├── IdleState.cs │ │ │ ├── ItemSelectedState.cs │ │ │ ├── Program.cs │ │ │ └── VendingMachine.cs │ │ ├── strategy/ │ │ │ ├── DistanceBasedShipping.cs │ │ │ ├── FlatRateShipping.cs │ │ │ ├── IShippingStrategy.cs │ │ │ ├── Order.cs │ │ │ ├── Program.cs │ │ │ ├── ShippingCostService.cs │ │ │ ├── ThirdPartyApiShipping.cs │ │ │ └── WeightBasedShipping.cs │ │ └── templatemethod/ │ │ ├── AbstractReportExporter.cs │ │ ├── CsvReportExporter.cs │ │ ├── ExcelReportExporter.cs │ │ ├── PdfReportExporter.cs │ │ ├── Program.cs │ │ └── ReportData.cs │ ├── golang/ │ │ ├── adapter/ │ │ │ ├── checkout_service.go │ │ │ ├── go.mod │ │ │ ├── in_house_payment_processor.go │ │ │ ├── legacy_gateway.go │ │ │ ├── legacy_gateway_adapter.go │ │ │ ├── main.go │ │ │ └── payment_processor.go │ │ ├── bridge/ │ │ │ ├── circle.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── raster_renderer.go │ │ │ ├── rectangle.go │ │ │ ├── renderer.go │ │ │ ├── shape.go │ │ │ └── vector_renderer.go │ │ ├── builder/ │ │ │ ├── go.mod │ │ │ ├── http_request.go │ │ │ ├── http_request_builder.go │ │ │ └── main.go │ │ ├── chainofresponsibility/ │ │ │ ├── authentication_handler.go │ │ │ ├── authorization_handler.go │ │ │ ├── base_handler.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── request.go │ │ │ ├── request_handler.go │ │ │ └── validation_handler.go │ │ ├── composite/ │ │ │ ├── file.go │ │ │ ├── file_system_item.go │ │ │ ├── folder.go │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── decorator/ │ │ │ ├── beverage.go │ │ │ ├── beverage_decorator.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── milk_decorator.go │ │ │ ├── simple_coffee.go │ │ │ └── sugar_decorator.go │ │ ├── facade/ │ │ │ ├── build_system.go │ │ │ ├── deployment_facade.go │ │ │ ├── deployment_target.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── testing_framework.go │ │ │ └── version_control_system.go │ │ ├── factory/ │ │ │ ├── email_notification.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── notification.go │ │ │ ├── push_notification.go │ │ │ ├── simple_notification_factory.go │ │ │ └── sms_notification.go │ │ ├── flyweight/ │ │ │ ├── character_flyweight.go │ │ │ ├── character_flyweight_factory.go │ │ │ ├── character_glyph.go │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ └── text_editor_client.go │ │ ├── iterator/ │ │ │ ├── book.go │ │ │ ├── book_collection.go │ │ │ ├── collection.go │ │ │ ├── go.mod │ │ │ ├── iterator.go │ │ │ └── main.go │ │ ├── mediator/ │ │ │ ├── chat_mediator.go │ │ │ ├── colleague.go │ │ │ ├── main.go │ │ │ ├── mediator.go │ │ │ └── user.go │ │ ├── memento/ │ │ │ ├── go.mod │ │ │ ├── main.go │ │ │ ├── text_editor.go │ │ │ ├── text_editor_memento.go │ │ │ └── text_editor_undo_manager.go │ │ ├── observer/ │ │ │ ├── fitness_data.go │ │ │ ├── fitness_data_observer.go │ │ │ ├── fitness_data_subject.go │ │ │ ├── go.mod │ │ │ ├── goal_notifier.go │ │ │ ├── live_activity_display.go │ │ │ ├── main.go │ │ │ └── progress_logger.go │ │ ├── prototype/ │ │ │ ├── enemy.go │ │ │ ├── enemy_prototype.go │ │ │ ├── enemy_registry.go │ │ │ ├── go.mod │ │ │ └── main.go │ │ ├── proxy/ │ │ │ ├── go.mod │ │ │ ├── high_resolution_image.go │ │ │ ├── image.go │ │ │ ├── image_proxy.go │ │ │ └── main.go │ │ ├── singleton/ │ │ │ ├── double_checked_singleton.go │ │ │ ├── eager_singleton.go │ │ │ ├── go.mod │ │ │ ├── lazy_singleton.go │ │ │ ├── main.go │ │ │ └── thread_safe_singleton.go │ │ ├── state/ │ │ │ ├── go.mod │ │ │ ├── has_money_state.go │ │ │ ├── idle_state.go │ │ │ ├── item_selected_state.go │ │ │ ├── machine_state.go │ │ │ ├── main.go │ │ │ └── vending_machine.go │ │ ├── strategy/ │ │ │ ├── credit_card_payment.go │ │ │ ├── main.go │ │ │ ├── payment_strategy.go │ │ │ ├── paypal_payment.go │ │ │ └── shopping_cart.go │ │ └── templatemethod/ │ │ ├── csv_data_processor.go │ │ ├── data_processor.go │ │ ├── main.go │ │ └── xml_data_processor.go │ ├── java/ │ │ ├── abstractfactory/ │ │ │ ├── AppLauncher.java │ │ │ ├── Application.java │ │ │ ├── Button.java │ │ │ ├── Checkbox.java │ │ │ ├── GUIFactory.java │ │ │ ├── MacOSButton.java │ │ │ ├── MacOSCheckbox.java │ │ │ ├── MacOSFactory.java │ │ │ ├── WindowsButton.java │ │ │ ├── WindowsCheckbox.java │ │ │ ├── WindowsFactory.java │ │ │ └── shoefactory/ │ │ │ ├── BumpySole.java │ │ │ ├── CasualShoeFactory.java │ │ │ ├── FlatSole.java │ │ │ ├── FormalShoeFactory.java │ │ │ ├── RoundShoeLace.java │ │ │ ├── Shoe.java │ │ │ ├── ShoeFactory.java │ │ │ ├── ShoeLace.java │ │ │ ├── ShoeManufacture.java │ │ │ ├── Sole.java │ │ │ ├── SportsShoeFactory.java │ │ │ ├── TapeShoeLace.java │ │ │ └── ThinSole.java │ │ ├── adapter/ │ │ │ ├── CheckoutService.java │ │ │ ├── ECommerceAppV1.java │ │ │ ├── ECommerceAppV2.java │ │ │ ├── InHousePaymentProcessor.java │ │ │ ├── LegacyGateway.java │ │ │ ├── LegacyGatewayAdapter.java │ │ │ └── PaymentProcessor.java │ │ ├── bridge/ │ │ │ ├── BridgeDemo.java │ │ │ ├── Circle.java │ │ │ ├── RasterRenderer.java │ │ │ ├── Rectangle.java │ │ │ ├── Renderer.java │ │ │ ├── Shape.java │ │ │ └── VectorRenderer.java │ │ ├── builder/ │ │ │ ├── HttpAppBuilder.java │ │ │ ├── HttpAppTelescoping.java │ │ │ ├── HttpRequest.java │ │ │ └── HttpRequestTelescoping.java │ │ ├── chainofresponsibility/ │ │ │ ├── AuthHandler.java │ │ │ ├── AuthorizationHandler.java │ │ │ ├── BaseHandler.java │ │ │ ├── BusinessLogicHandler.java │ │ │ ├── RateLimitHandler.java │ │ │ ├── Request.java │ │ │ ├── RequestHandler.java │ │ │ ├── RequestHandlerV1.java │ │ │ ├── RequestHandlerV2.java │ │ │ └── ValidationHandler.java │ │ ├── command/ │ │ │ ├── Command.java │ │ │ ├── CommandPatternDemo.java │ │ │ ├── Light.java │ │ │ ├── LightOffCommand.java │ │ │ ├── LightOnCommand.java │ │ │ ├── SetTemperatureCommand.java │ │ │ ├── SmartButton.java │ │ │ └── Thermostat.java │ │ ├── composite/ │ │ │ ├── filesystem/ │ │ │ │ ├── File.java │ │ │ │ ├── FileExplorerApp.java │ │ │ │ ├── FileSystemItem.java │ │ │ │ └── Folder.java │ │ │ └── organization/ │ │ │ ├── CompositeDemo.java │ │ │ ├── Designer.java │ │ │ ├── Developer.java │ │ │ ├── Employee.java │ │ │ └── Manager.java │ │ ├── decorator/ │ │ │ ├── BoldDecorator.java │ │ │ ├── DecoratorDemo.java │ │ │ ├── ItalicDecorator.java │ │ │ ├── PlainTextView.java │ │ │ ├── TextDecorator.java │ │ │ ├── TextView.java │ │ │ ├── UnderlineDecorator.java │ │ │ └── coffee/ │ │ │ ├── Coffee.java │ │ │ ├── CoffeeDecorator.java │ │ │ ├── DecoratorDemo.java │ │ │ ├── Milk.java │ │ │ ├── SimpleCoffee.java │ │ │ └── Sugar.java │ │ ├── facade/ │ │ │ ├── BuildSystem.java │ │ │ ├── DeploymentAppDirect.java │ │ │ ├── DeploymentAppFacade.java │ │ │ ├── DeploymentFacade.java │ │ │ ├── DeploymentOrchestrator.java │ │ │ ├── DeploymentTarget.java │ │ │ ├── TestingFramework.java │ │ │ └── VersionControlSystem.java │ │ ├── factory/ │ │ │ ├── notification/ │ │ │ │ ├── EmailNotification.java │ │ │ │ ├── EmailNotificationCreator.java │ │ │ │ ├── FactoryMethodDemo.java │ │ │ │ ├── Notification.java │ │ │ │ ├── NotificationCreator.java │ │ │ │ ├── NotificationServiceNaive.java │ │ │ │ ├── PushNotification.java │ │ │ │ ├── PushNotificationCreator.java │ │ │ │ ├── SMSNotification.java │ │ │ │ ├── SMSNotificationCreator.java │ │ │ │ └── SimpleNotificationFactory.java │ │ │ └── subscription/ │ │ │ ├── Customer.java │ │ │ ├── DataBase.java │ │ │ ├── FactoryApplication.java │ │ │ ├── Gold.java │ │ │ ├── Platinum.java │ │ │ ├── RoyalGold.java │ │ │ ├── Silver.java │ │ │ ├── Subscription.java │ │ │ └── SubscriptionFactory.java │ │ ├── flyweight/ │ │ │ ├── CharacterFlyweight.java │ │ │ ├── CharacterFlyweightFactory.java │ │ │ ├── CharacterGlyph.java │ │ │ ├── FlyweightDemo.java │ │ │ └── TextEditorClient.java │ │ ├── iterator/ │ │ │ ├── IterableCollection.java │ │ │ ├── Iterator.java │ │ │ ├── MusicPlayer.java │ │ │ ├── Playlist.java │ │ │ ├── PlaylistIterator.java │ │ │ └── books/ │ │ │ ├── Book.java │ │ │ ├── BookShelf.java │ │ │ ├── Container.java │ │ │ ├── Iterator.java │ │ │ └── IteratorDemo.java │ │ ├── mediator/ │ │ │ ├── Button.java │ │ │ ├── FormMediator.java │ │ │ ├── Label.java │ │ │ ├── MediatorApp.java │ │ │ ├── TextField.java │ │ │ ├── UIComponent.java │ │ │ └── UIMediator.java │ │ ├── memento/ │ │ │ ├── TextEditor.java │ │ │ ├── TextEditorMemento.java │ │ │ ├── TextEditorNaive.java │ │ │ ├── TextEditorUndoManager.java │ │ │ ├── TextEditorUndoV1.java │ │ │ └── TextEditorUndoV2.java │ │ ├── observer/ │ │ │ ├── FitnessAppNaiveClient.java │ │ │ ├── FitnessAppObserverDemo.java │ │ │ ├── FitnessData.java │ │ │ ├── FitnessDataNaive.java │ │ │ ├── FitnessDataObserver.java │ │ │ ├── FitnessDataSubject.java │ │ │ ├── GoalNotifier.java │ │ │ ├── LiveActivityDisplay.java │ │ │ ├── LiveActivityDisplayNaive.java │ │ │ ├── NotificationServiceNaive.java │ │ │ ├── ProgressLogger.java │ │ │ └── ProgressLoggerNaive.java │ │ ├── prototype/ │ │ │ ├── Enemy.java │ │ │ ├── EnemyPrototype.java │ │ │ ├── EnemyRegistry.java │ │ │ └── Game.java │ │ ├── proxy/ │ │ │ ├── HighResolutionImage.java │ │ │ ├── Image.java │ │ │ ├── ImageGalleryAppV1.java │ │ │ ├── ImageGalleryAppV2.java │ │ │ └── ImageProxy.java │ │ ├── singleton/ │ │ │ ├── BillPughSingleton.java │ │ │ ├── DoubleCheckedLockingSingleton.java │ │ │ ├── EagerSingleton.java │ │ │ ├── EnumSingleton.java │ │ │ ├── LazySingleton.java │ │ │ ├── StaticBlockSingleton.java │ │ │ └── ThreadSafeSingleton.java │ │ ├── state/ │ │ │ ├── DispensingState.java │ │ │ ├── HasMoneyState.java │ │ │ ├── IdleState.java │ │ │ ├── ItemSelectedState.java │ │ │ ├── MachineState.java │ │ │ ├── VendingMachine.java │ │ │ ├── VendingMachineApp.java │ │ │ └── VendingMachineNaive.java │ │ ├── strategy/ │ │ │ ├── DistanceBasedShipping.java │ │ │ ├── ECommerceAppV1.java │ │ │ ├── ECommerceAppV2.java │ │ │ ├── FlatRateShipping.java │ │ │ ├── Order.java │ │ │ ├── ShippingCostCalculatorNaive.java │ │ │ ├── ShippingCostService.java │ │ │ ├── ShippingStrategy.java │ │ │ ├── ThirdPartyApiShipping.java │ │ │ └── WeightBasedShipping.java │ │ ├── templatemethod/ │ │ │ ├── AbstractReportExporter.java │ │ │ ├── CsvReportExporter.java │ │ │ ├── CsvReportExporterNaive.java │ │ │ ├── ExcelReportExporter.java │ │ │ ├── ExcelReportExporterNaive.java │ │ │ ├── PdfReportExporter.java │ │ │ ├── PdfReportExporterNaive.java │ │ │ ├── ReportAppNaive.java │ │ │ ├── ReportAppTemplateMethod.java │ │ │ └── ReportData.java │ │ └── visitor/ │ │ ├── AreaCalculatorVisitor.java │ │ ├── Circle.java │ │ ├── Rectangle.java │ │ ├── Shape.java │ │ ├── ShapeVisitor.java │ │ ├── SvgExporterVisitor.java │ │ └── VisitorPatternDemo.java │ └── python/ │ ├── README.md │ └── adapter/ │ └── README.md ├── oop/ │ ├── cpp/ │ │ ├── abstraction/ │ │ │ └── README.md │ │ ├── aggregation/ │ │ │ └── README.md │ │ ├── association/ │ │ │ └── README.md │ │ ├── classesandobjects/ │ │ │ └── README.md │ │ ├── composition/ │ │ │ └── README.md │ │ ├── encapsulation/ │ │ │ └── README.md │ │ ├── inheritance/ │ │ │ └── README.md │ │ ├── interfaces/ │ │ │ └── README.md │ │ └── polymorphism/ │ │ └── README.md │ ├── csharp/ │ │ ├── abstraction/ │ │ │ └── README.md │ │ ├── aggregation/ │ │ │ └── README.md │ │ ├── association/ │ │ │ └── README.md │ │ ├── classesandobjects/ │ │ │ └── README.md │ │ ├── composition/ │ │ │ └── README.md │ │ ├── encapsulation/ │ │ │ └── README.md │ │ ├── inheritance/ │ │ │ └── README.md │ │ ├── interfaces/ │ │ │ └── README.md │ │ └── polymorphism/ │ │ └── README.md │ ├── golang/ │ │ ├── abstraction/ │ │ │ └── README.md │ │ ├── aggregation/ │ │ │ └── README.md │ │ ├── association/ │ │ │ └── README.md │ │ ├── classesandobjects/ │ │ │ └── README.md │ │ ├── composition/ │ │ │ └── README.md │ │ ├── encapsulation/ │ │ │ └── README.md │ │ ├── inheritance/ │ │ │ └── README.md │ │ ├── interfaces/ │ │ │ └── README.md │ │ └── polymorphism/ │ │ └── README.md │ ├── java/ │ │ ├── AggregationVsComposition/ │ │ │ └── README.MD │ │ ├── abstraction/ │ │ │ └── README.md │ │ ├── aggregation/ │ │ │ └── README.md │ │ ├── association/ │ │ │ └── README.md │ │ ├── classesandobjects/ │ │ │ └── README.md │ │ ├── composition/ │ │ │ └── README.md │ │ ├── encapsulation/ │ │ │ └── README.md │ │ ├── inheritance/ │ │ │ └── README.md │ │ ├── interfaces/ │ │ │ └── README.md │ │ └── polymorphism/ │ │ └── README.md │ ├── python/ │ │ ├── abstraction/ │ │ │ └── README.md │ │ ├── aggregation/ │ │ │ └── README.md │ │ ├── association/ │ │ │ └── README.md │ │ ├── classesandobjects/ │ │ │ └── README.md │ │ ├── composition/ │ │ │ └── README.md │ │ ├── encapsulation/ │ │ │ └── README.md │ │ ├── inheritance/ │ │ │ └── README.md │ │ ├── interfaces/ │ │ │ └── README.md │ │ └── polymorphism/ │ │ └── README.md │ └── rust/ │ ├── .gitignore │ ├── Cargo.toml │ ├── abstraction/ │ │ ├── README.md │ │ └── main.rs │ ├── aggregation/ │ │ ├── README.md │ │ └── main.rs │ ├── association/ │ │ ├── README.md │ │ └── main.rs │ ├── classes_and_objects/ │ │ ├── README.md │ │ └── main.rs │ ├── composition/ │ │ ├── README.md │ │ └── main.rs │ ├── encapsulation/ │ │ ├── README.md │ │ └── main.rs │ ├── inheritance/ │ │ ├── README.md │ │ └── main.rs │ ├── interfaces/ │ │ ├── README.md │ │ └── main.rs │ └── polymorphism/ │ ├── README.md │ └── main.rs ├── problems/ │ ├── airline-management-system.md │ ├── atm.md │ ├── car-rental-system.md │ ├── chess-game.md │ ├── coffee-vending-machine.md │ ├── concert-ticket-booking-system.md │ ├── course-registration-system.md │ ├── cricinfo.md │ ├── digital-wallet-service.md │ ├── elevator-system.md │ ├── food-delivery-service.md │ ├── hotel-management-system.md │ ├── library-management-system.md │ ├── linkedin.md │ ├── logging-framework.md │ ├── lru-cache.md │ ├── movie-ticket-booking-system.md │ ├── music-streaming-service.md │ ├── online-auction-system.md │ ├── online-shopping-service.md │ ├── online-stock-brokerage-system.md │ ├── parking-lot.md │ ├── pub-sub-system.md │ ├── restaurant-management-system.md │ ├── ride-sharing-service.md │ ├── snake-and-ladder.md │ ├── social-networking-service.md │ ├── splitwise.md │ ├── stack-overflow.md │ ├── task-management-system.md │ ├── tic-tac-toe.md │ ├── traffic-signal.md │ └── vending-machine.md └── solutions/ ├── cpp/ │ ├── airlinemanagementsystem/ │ │ ├── AirlineManagementSystem.cpp │ │ ├── AirlineManagementSystem.hpp │ │ ├── AirlineManagementSystemDemo.cpp │ │ ├── Booking.cpp │ │ ├── Booking.hpp │ │ ├── Flight.cpp │ │ ├── Flight.hpp │ │ ├── Passenger.cpp │ │ ├── Passenger.hpp │ │ ├── README.md │ │ ├── Seat.cpp │ │ ├── Seat.hpp │ │ └── airline_system │ ├── atm/ │ │ ├── ATM.cpp │ │ ├── ATM.hpp │ │ ├── ATMDemo.cpp │ │ ├── Account.cpp │ │ ├── Account.hpp │ │ ├── README.md │ │ └── atm │ ├── carrentalsystem/ │ │ ├── Car.cpp │ │ ├── Car.hpp │ │ ├── CarRentalSystem.cpp │ │ ├── CarRentalSystem.hpp │ │ ├── CarRentalSystemDemo.cpp │ │ ├── Customer.cpp │ │ ├── Customer.hpp │ │ ├── README.md │ │ ├── Rental.cpp │ │ ├── Rental.hpp │ │ └── car_rental │ ├── chessgame/ │ │ ├── Board.hpp │ │ ├── ChessDemo.cpp │ │ ├── Game.cpp │ │ ├── Game.hpp │ │ ├── Piece.cpp │ │ ├── Piece.hpp │ │ ├── Position.hpp │ │ ├── README.md │ │ └── pieces/ │ │ ├── Bishop.cpp │ │ ├── Bishop.hpp │ │ ├── King.cpp │ │ ├── King.hpp │ │ ├── Knight.cpp │ │ ├── Knight.hpp │ │ ├── Pawn.cpp │ │ ├── Pawn.hpp │ │ ├── Queen.cpp │ │ ├── Queen.hpp │ │ ├── Rook.cpp │ │ └── Rook.hpp │ ├── coffeevendingmachine/ │ │ ├── Coffee.cpp │ │ ├── Coffee.hpp │ │ ├── CoffeeType.hpp │ │ ├── CoffeeVendingMachine.cpp │ │ ├── CoffeeVendingMachine.hpp │ │ ├── CoffeeVendingMachineDemo.cpp │ │ ├── Inventory.cpp │ │ ├── Inventory.hpp │ │ ├── README.md │ │ └── coffee_machine │ ├── concertticketbookingsystem/ │ │ ├── Booking.cpp │ │ ├── Booking.hpp │ │ ├── BookingSystem.cpp │ │ ├── BookingSystem.hpp │ │ ├── Concert.cpp │ │ ├── Concert.hpp │ │ ├── ConcertBookingDemo.cpp │ │ ├── README.md │ │ ├── Seat.cpp │ │ ├── Seat.hpp │ │ └── concert_booking │ ├── courseregistrationsystem/ │ │ ├── Course.cpp │ │ ├── Course.hpp │ │ ├── README.md │ │ ├── RegistrationSystem.cpp │ │ ├── RegistrationSystem.hpp │ │ ├── RegistrationSystemDemo.cpp │ │ ├── Student.cpp │ │ └── Student.hpp │ ├── cricinfo/ │ │ ├── CricInfoDemo.cpp │ │ ├── CricInfoSystem.cpp │ │ ├── CricInfoSystem.hpp │ │ ├── Match.cpp │ │ ├── Match.hpp │ │ ├── Player.cpp │ │ ├── Player.hpp │ │ ├── PlayerStats.hpp │ │ ├── README.md │ │ ├── Team.cpp │ │ └── Team.hpp │ ├── digitalwalletservice/ │ │ ├── README.md │ │ ├── Transaction.cpp │ │ ├── Transaction.hpp │ │ ├── User.cpp │ │ ├── User.hpp │ │ ├── Wallet.cpp │ │ ├── Wallet.hpp │ │ ├── WalletDemo.cpp │ │ ├── WalletSystem.cpp │ │ └── WalletSystem.hpp │ ├── elevatorsystem/ │ │ ├── Elevator.cpp │ │ ├── Elevator.hpp │ │ ├── ElevatorDemo.cpp │ │ ├── ElevatorSystem.cpp │ │ ├── ElevatorSystem.hpp │ │ ├── README.md │ │ ├── Request.cpp │ │ └── Request.hpp │ ├── fooddeliveryservice/ │ │ ├── DeliveryDemo.cpp │ │ ├── DeliveryService.cpp │ │ ├── DeliveryService.hpp │ │ ├── MenuItem.cpp │ │ ├── MenuItem.hpp │ │ ├── Order.cpp │ │ ├── Order.hpp │ │ ├── README.md │ │ ├── Restaurant.cpp │ │ ├── Restaurant.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── hotelmanagementsystem/ │ │ ├── Booking.cpp │ │ ├── Booking.hpp │ │ ├── Guest.cpp │ │ ├── Guest.hpp │ │ ├── HotelDemo.cpp │ │ ├── HotelManager.cpp │ │ ├── HotelManager.hpp │ │ ├── README.md │ │ ├── Room.cpp │ │ └── Room.hpp │ ├── librarymanagementsystem/ │ │ ├── Book.cpp │ │ ├── Book.hpp │ │ ├── LibraryDemo.cpp │ │ ├── LibraryManager.cpp │ │ ├── LibraryManager.hpp │ │ ├── Member.cpp │ │ ├── Member.hpp │ │ ├── README.md │ │ ├── Transaction.cpp │ │ └── Transaction.hpp │ ├── linkedin/ │ │ ├── LinkedInDemo.cpp │ │ ├── LinkedInManager.cpp │ │ ├── LinkedInManager.hpp │ │ ├── Post.cpp │ │ ├── Post.hpp │ │ ├── Profile.cpp │ │ ├── Profile.hpp │ │ ├── README.md │ │ ├── User.cpp │ │ └── User.hpp │ ├── loggingframework/ │ │ ├── ConsoleAppender.cpp │ │ ├── ConsoleAppender.hpp │ │ ├── FileAppender.cpp │ │ ├── FileAppender.hpp │ │ ├── LogAppender.hpp │ │ ├── LogLevel.hpp │ │ ├── LogMessage.cpp │ │ ├── LogMessage.hpp │ │ ├── Logger.cpp │ │ ├── Logger.hpp │ │ ├── LoggingDemo.cpp │ │ └── README.md │ ├── lrucache/ │ │ ├── DoublyLinkedList.hpp │ │ ├── LRUCache.hpp │ │ ├── LRUCacheDemo.cpp │ │ └── README.md │ ├── movieticketbookingsystem/ │ │ ├── Booking.cpp │ │ ├── Booking.hpp │ │ ├── BookingDemo.cpp │ │ ├── BookingSystem.cpp │ │ ├── BookingSystem.hpp │ │ ├── Movie.cpp │ │ ├── Movie.hpp │ │ ├── README.md │ │ ├── Show.cpp │ │ ├── Show.hpp │ │ ├── Theater.cpp │ │ └── Theater.hpp │ ├── musicstreamingservice/ │ │ ├── Artist.cpp │ │ ├── Artist.hpp │ │ ├── MusicStreamingDemo.cpp │ │ ├── MusicStreamingService.cpp │ │ ├── MusicStreamingService.hpp │ │ ├── Playlist.cpp │ │ ├── Playlist.hpp │ │ ├── README.md │ │ ├── Song.cpp │ │ ├── Song.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── onlineauctionsystem/ │ │ ├── Auction.cpp │ │ ├── Auction.hpp │ │ ├── AuctionSystem.cpp │ │ ├── AuctionSystem.hpp │ │ ├── AuctionSystemDemo.cpp │ │ ├── Item.cpp │ │ ├── Item.hpp │ │ ├── README.md │ │ ├── User.cpp │ │ └── User.hpp │ ├── onlineshoppingservice/ │ │ ├── Cart.cpp │ │ ├── Cart.hpp │ │ ├── CartItem.cpp │ │ ├── CartItem.hpp │ │ ├── Order.cpp │ │ ├── Order.hpp │ │ ├── Product.cpp │ │ ├── Product.hpp │ │ ├── README.md │ │ ├── ShoppingDemo.cpp │ │ ├── ShoppingSystem.cpp │ │ ├── ShoppingSystem.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── onlinestockbrokeragesystem/ │ │ ├── BrokerageDemo.cpp │ │ ├── BrokerageSystem.cpp │ │ ├── BrokerageSystem.hpp │ │ ├── Portfolio.cpp │ │ ├── Portfolio.hpp │ │ ├── README.md │ │ ├── Stock.cpp │ │ ├── Stock.hpp │ │ ├── Transaction.cpp │ │ ├── Transaction.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── parkinglot/ │ │ ├── ParkingLot.cpp │ │ ├── ParkingLot.hpp │ │ ├── ParkingLotDemo.cpp │ │ ├── ParkingSpot.cpp │ │ ├── ParkingSpot.hpp │ │ ├── README.md │ │ ├── Vehicle.cpp │ │ └── Vehicle.hpp │ ├── pubsubsystem/ │ │ ├── Message.cpp │ │ ├── Message.hpp │ │ ├── PubSubDemo.cpp │ │ ├── PubSubSystem.cpp │ │ ├── PubSubSystem.hpp │ │ ├── README.md │ │ ├── Subscriber.cpp │ │ ├── Subscriber.hpp │ │ ├── Topic.cpp │ │ └── Topic.hpp │ ├── restaurantmanagementsystem/ │ │ ├── MenuItem.cpp │ │ ├── MenuItem.hpp │ │ ├── Order.cpp │ │ ├── Order.hpp │ │ ├── OrderItem.cpp │ │ ├── OrderItem.hpp │ │ ├── README.md │ │ ├── RestaurantDemo.cpp │ │ ├── RestaurantSystem.cpp │ │ ├── RestaurantSystem.hpp │ │ ├── Table.cpp │ │ └── Table.hpp │ ├── ridesharingservice/ │ │ ├── Location.cpp │ │ ├── Location.hpp │ │ ├── README.md │ │ ├── Ride.cpp │ │ ├── Ride.hpp │ │ ├── RideDemo.cpp │ │ ├── RideService.cpp │ │ ├── RideService.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── snakeandladdergame/ │ │ ├── Board.cpp │ │ ├── Board.hpp │ │ ├── Dice.cpp │ │ ├── Dice.hpp │ │ ├── Game.cpp │ │ ├── Game.hpp │ │ ├── GameDemo.cpp │ │ ├── Player.cpp │ │ ├── Player.hpp │ │ └── README.md │ ├── socialnetworkingservice/ │ │ ├── Post.cpp │ │ ├── Post.hpp │ │ ├── README.md │ │ ├── SocialNetwork.cpp │ │ ├── SocialNetwork.hpp │ │ ├── SocialNetworkDemo.cpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── splitwise/ │ │ ├── Expense.cpp │ │ ├── Expense.hpp │ │ ├── README.md │ │ ├── SplitwiseDemo.cpp │ │ ├── SplitwiseSystem.cpp │ │ ├── SplitwiseSystem.hpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── stackoverflow/ │ │ ├── Comment.cpp │ │ ├── Comment.hpp │ │ ├── Post.cpp │ │ ├── Post.hpp │ │ ├── README.md │ │ ├── StackOverflow.cpp │ │ ├── StackOverflow.hpp │ │ ├── StackOverflowDemo.cpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── taskmanagementsystem/ │ │ ├── README.md │ │ ├── Task.cpp │ │ ├── Task.hpp │ │ ├── TaskManager.cpp │ │ ├── TaskManager.hpp │ │ ├── TaskManagerDemo.cpp │ │ ├── User.cpp │ │ └── User.hpp │ ├── tictactoe/ │ │ ├── Board.cpp │ │ ├── Board.hpp │ │ ├── Game.cpp │ │ ├── Game.hpp │ │ ├── Player.cpp │ │ ├── Player.hpp │ │ ├── README.md │ │ └── TicTacToeDemo.cpp │ ├── trafficsignalsystem/ │ │ ├── Intersection.cpp │ │ ├── Intersection.hpp │ │ ├── README.md │ │ ├── Signal.cpp │ │ ├── Signal.hpp │ │ ├── TrafficSystem.cpp │ │ ├── TrafficSystem.hpp │ │ └── TrafficSystemDemo.cpp │ ├── vendingmachine/ │ │ ├── Product.cpp │ │ ├── Product.hpp │ │ ├── README.md │ │ ├── Transaction.cpp │ │ ├── Transaction.hpp │ │ ├── VendingMachine.cpp │ │ ├── VendingMachine.hpp │ │ └── VendingMachineDemo.cpp │ └── votingsystem/ │ └── README.md ├── csharp/ │ ├── LLDRunner.cs │ ├── airlinemanagementsystem/ │ │ ├── Aircraft.cs │ │ ├── AirlineManagementSystem.cs │ │ ├── AirlineManagementSystemDemo.cs │ │ ├── Booking.cs │ │ ├── BookingManager.cs │ │ ├── BookingStatus.cs │ │ ├── Flight.cs │ │ ├── FlightSearch.cs │ │ ├── Passenger.cs │ │ ├── Payment.cs │ │ ├── PaymentProcessor.cs │ │ ├── PaymentStatus.cs │ │ ├── README.md │ │ ├── Seat.cs │ │ ├── SeatStatus.cs │ │ └── SeatType.cs │ ├── atm/ │ │ ├── ATM.cs │ │ ├── ATMDemo.cs │ │ ├── DispenserChain/ │ │ │ ├── CashDispenser.cs │ │ │ ├── IDispenseChain.cs │ │ │ ├── NoteDispenser.cs │ │ │ ├── NoteDispenser100.cs │ │ │ ├── NoteDispenser20.cs │ │ │ └── NoteDispenser50.cs │ │ ├── Enums/ │ │ │ └── OperationType.cs │ │ ├── Models/ │ │ │ ├── Account.cs │ │ │ └── Card.cs │ │ ├── README.md │ │ ├── Service/ │ │ │ └── BankService.cs │ │ ├── State/ │ │ │ ├── AuthenticatedState.cs │ │ │ ├── HasCardState.cs │ │ │ ├── IATMState.cs │ │ │ └── IdleState.cs │ │ └── atm.csproj │ ├── bin/ │ │ └── Debug/ │ │ └── net8.0/ │ │ ├── c# │ │ ├── c#.deps.json │ │ ├── c#.pdb │ │ └── c#.runtimeconfig.json │ ├── c#.csproj │ ├── c#.sln │ ├── carrentalsystem/ │ │ ├── Car.cs │ │ ├── CarRentalSystemDemo.cs │ │ ├── CreditCardPaymentProcessor.cs │ │ ├── Customer.cs │ │ ├── IPaymentProcessor.cs │ │ ├── PayPalPaymentProcessor.cs │ │ ├── README.md │ │ ├── RentalSystem.cs │ │ └── Reservation.cs │ ├── chessgame/ │ │ ├── Bishop.cs │ │ ├── Board.cs │ │ ├── ChessGame.cs │ │ ├── ChessGameDemo.cs │ │ ├── Color.cs │ │ ├── InvalidMoveException.cs │ │ ├── King.cs │ │ ├── Knight.cs │ │ ├── Move.cs │ │ ├── Pawn.cs │ │ ├── Piece.cs │ │ ├── Player.cs │ │ ├── Queen.cs │ │ ├── README.md │ │ └── Rook.cs │ ├── coffeevendingmachine/ │ │ ├── CoffeeVendingMachine.cs │ │ ├── CoffeeVendingMachineDemo.cs │ │ ├── Decorator/ │ │ │ ├── CaramelSyrupDecorator.cs │ │ │ ├── CoffeeDecorator.cs │ │ │ └── ExtraSugarDecorator.cs │ │ ├── Enums/ │ │ │ ├── CoffeeType.cs │ │ │ ├── Ingredient.cs │ │ │ └── ToppingType.cs │ │ ├── Factory/ │ │ │ └── CoffeeFactory.cs │ │ ├── Inventory.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── IVendingMachineState.cs │ │ │ ├── OutOfIngredientState.cs │ │ │ ├── PaidState.cs │ │ │ ├── ReadyState.cs │ │ │ └── SelectingState.cs │ │ ├── TemplateMethod/ │ │ │ ├── Cappuccino.cs │ │ │ ├── Coffee.cs │ │ │ ├── Espresso.cs │ │ │ └── Latte.cs │ │ └── coffeevendingmachine.csproj │ ├── concertticketbookingsystem/ │ │ ├── Booking.cs │ │ ├── BookingStatus.cs │ │ ├── Concert.cs │ │ ├── ConcertTicketBookingSystem.cs │ │ ├── ConcertTicketBookingSystemDemo.cs │ │ ├── README.md │ │ ├── Seat.cs │ │ ├── SeatNotAvailableException.cs │ │ ├── SeatStatus.cs │ │ ├── SeatType.cs │ │ └── User.cs │ ├── courseregistrationsystem/ │ │ ├── Course.cs │ │ ├── CourseRegistrationDemo.cs │ │ ├── CourseRegistrationSystem.cs │ │ ├── README.md │ │ ├── Registration.cs │ │ └── Student.cs │ ├── cricinfo/ │ │ ├── CommentaryManager.cs │ │ ├── CricinfoDemo.cs │ │ ├── CricinfoService.cs │ │ ├── Enums/ │ │ │ ├── ExtraType.cs │ │ │ ├── MatchStatus.cs │ │ │ ├── MatchType.cs │ │ │ ├── PlayerRole.cs │ │ │ └── WicketType.cs │ │ ├── Models/ │ │ │ ├── Ball.cs │ │ │ ├── Innings.cs │ │ │ ├── Match.cs │ │ │ ├── Player.cs │ │ │ ├── PlayerStats.cs │ │ │ ├── Team.cs │ │ │ └── Wicket.cs │ │ ├── Observers/ │ │ │ ├── CommentaryDisplay.cs │ │ │ ├── IMatchObserver.cs │ │ │ ├── ScorecardDisplay.cs │ │ │ └── UserNotifier.cs │ │ ├── README.md │ │ ├── Repositories/ │ │ │ ├── MatchRepository.cs │ │ │ └── PlayerRepository.cs │ │ ├── States/ │ │ │ ├── FinishedState.cs │ │ │ ├── IMatchState.cs │ │ │ ├── InBreakState.cs │ │ │ ├── LiveState.cs │ │ │ └── ScheduledState.cs │ │ ├── Strategy/ │ │ │ ├── IMatchFormatStrategy.cs │ │ │ ├── ODIFormatStrategy.cs │ │ │ └── T20FormatStrategy.cs │ │ └── cricinfo.csproj │ ├── digitalwalletservice/ │ │ ├── Account.cs │ │ ├── BankAccount.cs │ │ ├── CreditCard.cs │ │ ├── Currency.cs │ │ ├── CurrencyConverter.cs │ │ ├── DigitalWallet.cs │ │ ├── DigitalWalletDemo.cs │ │ ├── InsufficientFundsException.cs │ │ ├── PaymentMethod.cs │ │ ├── README.md │ │ ├── Transaction.cs │ │ └── User.cs │ ├── elevatorsystem/ │ │ ├── ElevatorSystem.cs │ │ ├── ElevatorSystemDemo.cs │ │ ├── Enums/ │ │ │ ├── Direction.cs │ │ │ └── RequestSource.cs │ │ ├── Models/ │ │ │ ├── Elevator.cs │ │ │ └── Request.cs │ │ ├── Observer/ │ │ │ ├── Display.cs │ │ │ └── IElevatorObserver.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── IElevatorState.cs │ │ │ ├── IdleState.cs │ │ │ ├── MovingDownState.cs │ │ │ └── MovingUpState.cs │ │ ├── Strategy/ │ │ │ ├── IElevatorSelectionStrategy.cs │ │ │ └── NearestElevatorStrategy.cs │ │ └── elevatorsystem.csproj │ ├── fooddeliveryservice/ │ │ ├── Enums/ │ │ │ └── OrderStatus.cs │ │ ├── FoodDeliveryService.cs │ │ ├── FoodDeliveryServiceDemo.cs │ │ ├── Models/ │ │ │ ├── Address.cs │ │ │ ├── Customer.cs │ │ │ ├── DeliveryAgent.cs │ │ │ ├── Menu.cs │ │ │ ├── MenuItem.cs │ │ │ ├── Order.cs │ │ │ ├── OrderItem.cs │ │ │ ├── Restaurant.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ └── IOrderObserver.cs │ │ ├── README.md │ │ ├── Strategies/ │ │ │ ├── assignment/ │ │ │ │ ├── IDeliveryAssignmentStrategy.cs │ │ │ │ └── NearestAvailableAgentStrategy.cs │ │ │ └── search/ │ │ │ ├── IRestaurantSearchStrategy.cs │ │ │ ├── SearchByCityStrategy.cs │ │ │ ├── SearchByMenuKeywordStrategy.cs │ │ │ └── SearchByProximityStrategy.cs │ │ └── fooddeliveryservice.csproj │ ├── hotelmanagementsystem/ │ │ ├── CashPayment.cs │ │ ├── CreditCardPayment.cs │ │ ├── Guest.cs │ │ ├── HotelManagementSystem.cs │ │ ├── HotelManagementSystemDemo.cs │ │ ├── Payment.cs │ │ ├── README.md │ │ ├── Reservation.cs │ │ ├── ReservationStatus.cs │ │ ├── Room.cs │ │ ├── RoomStatus.cs │ │ └── RoomType.cs │ ├── librarymanagementsystem/ │ │ ├── Enum/ │ │ │ └── ItemType.cs │ │ ├── Factory/ │ │ │ └── ItemFactory.cs │ │ ├── LibraryManagementSystem.cs │ │ ├── LibraryManagementSystemDemo.cs │ │ ├── Models/ │ │ │ ├── Book.cs │ │ │ ├── BookCopy.cs │ │ │ ├── LibraryItem.cs │ │ │ ├── Loan.cs │ │ │ ├── Magazine.cs │ │ │ ├── Member.cs │ │ │ └── TransactionService.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── AvailableState.cs │ │ │ ├── CheckedOutState.cs │ │ │ ├── IItemState.cs │ │ │ └── OnHoldState.cs │ │ ├── Strategy/ │ │ │ ├── ISearchStrategy.cs │ │ │ ├── SearchByAuthorStrategy.cs │ │ │ └── SearchByTitleStrategy.cs │ │ └── librarymanagementsystem.csproj │ ├── linkedIn/ │ │ ├── Enums/ │ │ │ ├── ConnectionStatus.cs │ │ │ └── NotificationType.cs │ │ ├── LinkedInDemo.cs │ │ ├── LinkedInSystem.cs │ │ ├── Models/ │ │ │ ├── Comment.cs │ │ │ ├── Connection.cs │ │ │ ├── Education.cs │ │ │ ├── Experience.cs │ │ │ ├── Like.cs │ │ │ ├── Member.cs │ │ │ ├── NewsFeed.cs │ │ │ ├── Notification.cs │ │ │ ├── Post.cs │ │ │ └── Profile.cs │ │ ├── Observer/ │ │ │ ├── INotificationObserver.cs │ │ │ └── Subject.cs │ │ ├── README.md │ │ ├── Services/ │ │ │ ├── ConnectionService.cs │ │ │ ├── NewsFeedService.cs │ │ │ ├── NotificationService.cs │ │ │ └── SearchService.cs │ │ ├── Strategy/ │ │ │ ├── ChronologicalSortStrategy.cs │ │ │ └── IFeedSortingStrategy.cs │ │ └── linkedIn.csproj │ ├── loggingframework/ │ │ ├── Appenders/ │ │ │ ├── ConsoleAppender.cs │ │ │ ├── FileAppender.cs │ │ │ └── ILogAppender.cs │ │ ├── AsyncLogProcessor.cs │ │ ├── Enum/ │ │ │ └── LogLevel.cs │ │ ├── Formatters/ │ │ │ ├── ILogFormatter.cs │ │ │ └── SimpleTextFormatter.cs │ │ ├── LogManager.cs │ │ ├── Logger.cs │ │ ├── LoggingFrameworkDemo.cs │ │ ├── Models/ │ │ │ └── LogMessage.cs │ │ ├── README.md │ │ └── loggingframework.csproj │ ├── lrucache/ │ │ ├── DoublyLinkedList.cs │ │ ├── LRUCache.cs │ │ ├── LRUCacheDemo.cs │ │ ├── Node.cs │ │ ├── README.md │ │ └── lrucache.csproj │ ├── movieticketbookingsystem/ │ │ ├── BookingManager.cs │ │ ├── Enums/ │ │ │ ├── PaymentStatus.cs │ │ │ ├── SeatStatus.cs │ │ │ └── SeatType.cs │ │ ├── Models/ │ │ │ ├── Booking.cs │ │ │ ├── Cinema.cs │ │ │ ├── City.cs │ │ │ ├── Movie.cs │ │ │ ├── Payment.cs │ │ │ ├── Screen.cs │ │ │ ├── Seat.cs │ │ │ ├── Show.cs │ │ │ └── User.cs │ │ ├── MovieBookingDemo.cs │ │ ├── MovieBookingService.cs │ │ ├── Observer/ │ │ │ ├── IMovieObserver.cs │ │ │ ├── MovieSubject.cs │ │ │ └── UserObserver.cs │ │ ├── README.md │ │ ├── SeatLockManager.cs │ │ ├── Strategies/ │ │ │ ├── Payment/ │ │ │ │ ├── CreditCardPaymentStrategy.cs │ │ │ │ └── IPaymentStrategy.cs │ │ │ └── Pricing/ │ │ │ ├── IPricingStrategy.cs │ │ │ ├── WeekdayPricingStrategy.cs │ │ │ └── WeekendPricingStrategy.cs │ │ └── movieticketbookingsystem.csproj │ ├── musicstreamingservice/ │ │ ├── Commands/ │ │ │ ├── ICommand.cs │ │ │ ├── NextTrackCommand.cs │ │ │ ├── PauseCommand.cs │ │ │ └── PlayCommand.cs │ │ ├── Enums/ │ │ │ ├── PlayerStatus.cs │ │ │ └── SubscriptionTier.cs │ │ ├── Models/ │ │ │ ├── Album.cs │ │ │ ├── Artist.cs │ │ │ ├── IPlayable.cs │ │ │ ├── Player.cs │ │ │ ├── Playlist.cs │ │ │ ├── Song.cs │ │ │ └── User.cs │ │ ├── MusicStreamingDemo.cs │ │ ├── MusicStreamingSystem.cs │ │ ├── Observer/ │ │ │ ├── IArtistObserver.cs │ │ │ └── Subject.cs │ │ ├── README.md │ │ ├── Services/ │ │ │ ├── RecommendationService.cs │ │ │ └── SearchService.cs │ │ ├── States/ │ │ │ ├── PausedState.cs │ │ │ ├── PlayerState.cs │ │ │ ├── PlayingState.cs │ │ │ └── StoppedState.cs │ │ ├── Strategies/ │ │ │ ├── Playback/ │ │ │ │ ├── FreePlaybackStrategy.cs │ │ │ │ ├── PlaybackStrategy.cs │ │ │ │ └── PremiumPlaybackStrategy.cs │ │ │ └── Recommendation/ │ │ │ ├── GenreBasedRecommendationStrategy.cs │ │ │ └── RecommendationStrategy.cs │ │ └── musicstreamingservice.csproj │ ├── obj/ │ │ ├── Debug/ │ │ │ └── net8.0/ │ │ │ ├── .NETCoreApp,Version=v8.0.AssemblyAttributes.cs │ │ │ ├── apphost │ │ │ ├── c#.AssemblyInfo.cs │ │ │ ├── c#.AssemblyInfoInputs.cache │ │ │ ├── c#.GeneratedMSBuildEditorConfig.editorconfig │ │ │ ├── c#.GlobalUsings.g.cs │ │ │ ├── c#.assets.cache │ │ │ ├── c#.csproj.CoreCompileInputs.cache │ │ │ ├── c#.csproj.FileListAbsolute.txt │ │ │ ├── c#.genruntimeconfig.cache │ │ │ ├── c#.pdb │ │ │ └── c#.sourcelink.json │ │ ├── c#.csproj.nuget.dgspec.json │ │ ├── c#.csproj.nuget.g.props │ │ ├── c#.csproj.nuget.g.targets │ │ ├── project.assets.json │ │ └── project.nuget.cache │ ├── onlineauctionsystem/ │ │ ├── AuctionService.cs │ │ ├── AuctionSystemDemo.cs │ │ ├── Enum/ │ │ │ └── AuctionState.cs │ │ ├── Models/ │ │ │ ├── Auction.cs │ │ │ ├── Bid.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ └── IAuctionObserver.cs │ │ ├── README.md │ │ └── onlineauctionsystem.csproj │ ├── onlineshoppingservice/ │ │ ├── Decorators/ │ │ │ ├── GiftWrapDecorator.cs │ │ │ └── ProductDecorator.cs │ │ ├── Enums/ │ │ │ ├── OrderStatus.cs │ │ │ └── ProductCategory.cs │ │ ├── Exceptions/ │ │ │ └── OutOfStockException.cs │ │ ├── Models/ │ │ │ ├── Account.cs │ │ │ ├── Address.cs │ │ │ ├── CartItem.cs │ │ │ ├── Customer.cs │ │ │ ├── Order.cs │ │ │ ├── OrderLineItem.cs │ │ │ ├── Product.cs │ │ │ └── ShoppingCart.cs │ │ ├── Observer/ │ │ │ ├── IOrderObserver.cs │ │ │ └── Subject.cs │ │ ├── OnlineShoppingDemo.cs │ │ ├── OnlineShoppingSystem.cs │ │ ├── README.md │ │ ├── Services/ │ │ │ ├── InventoryService.cs │ │ │ ├── OrderService.cs │ │ │ ├── PaymentService.cs │ │ │ └── SearchService.cs │ │ ├── States/ │ │ │ ├── CancelledState.cs │ │ │ ├── DeliveredState.cs │ │ │ ├── IOrderState.cs │ │ │ ├── PlacedState.cs │ │ │ └── ShippedState.cs │ │ ├── Strategy/ │ │ │ ├── CreditCardPaymentStrategy.cs │ │ │ ├── IPaymentStrategy.cs │ │ │ └── UPIPaymentStrategy.cs │ │ └── onlineshoppingservice.csproj │ ├── onlinestockbrokeragesystem/ │ │ ├── Commands/ │ │ │ ├── BuyStockCommand.cs │ │ │ ├── IOrderCommand.cs │ │ │ └── SellStockCommand.cs │ │ ├── Enums/ │ │ │ ├── OrderStatus.cs │ │ │ ├── OrderType.cs │ │ │ └── TransactionType.cs │ │ ├── Exceptions/ │ │ │ ├── InsufficientFundsException.cs │ │ │ └── InsufficientStockException.cs │ │ ├── Models/ │ │ │ ├── Account.cs │ │ │ ├── Order.cs │ │ │ ├── OrderBuilder.cs │ │ │ ├── Stock.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ └── IStockObserver.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── CancelledState.cs │ │ │ ├── FilledState.cs │ │ │ ├── IOrderState.cs │ │ │ └── OpenState.cs │ │ ├── StockBrokerageSystem.cs │ │ ├── StockBrokerageSystemDemo.cs │ │ ├── StockExchange.cs │ │ ├── Strategy/ │ │ │ ├── IExecutionStrategy.cs │ │ │ ├── LimitOrderStrategy.cs │ │ │ └── MarketOrderStrategy.cs │ │ └── onlinestockbrokeragesystem.csproj │ ├── parkinglot/ │ │ ├── Enums/ │ │ │ └── VehicleSize.cs │ │ ├── Models/ │ │ │ ├── ParkingFloor.cs │ │ │ ├── ParkingSpot.cs │ │ │ ├── ParkingTicket.cs │ │ │ └── Vehicle.cs │ │ ├── ParkingLot.cs │ │ ├── ParkingLotDemo.cs │ │ ├── README.md │ │ ├── Strategies/ │ │ │ ├── Fee/ │ │ │ │ ├── FlatRateFeeStrategy.cs │ │ │ │ ├── IFeeStrategy.cs │ │ │ │ └── VehicleBasedFeeStrategy.cs │ │ │ └── Parking/ │ │ │ ├── BestFitStrategy.cs │ │ │ ├── FarthestFirstStrategy.cs │ │ │ ├── IParkingStrategy.cs │ │ │ └── NearestFirstStrategy.cs │ │ └── parkinglot.csproj │ ├── pubsubsystem/ │ │ ├── Models/ │ │ │ ├── Message.cs │ │ │ └── Topic.cs │ │ ├── PubSubDemo.cs │ │ ├── PubSubService.cs │ │ ├── README.md │ │ ├── Subscribers/ │ │ │ ├── AlertSubscriber.cs │ │ │ ├── ISubscriber.cs │ │ │ └── NewsSubscriber.cs │ │ └── pubsubsystem.csproj │ ├── restaurantmanagementsystem/ │ │ ├── Commands/ │ │ │ ├── ICommand.cs │ │ │ ├── PrepareOrderCommand.cs │ │ │ └── ServeOrderCommand.cs │ │ ├── Decorators/ │ │ │ ├── BillDecorator.cs │ │ │ ├── ServiceChargeDecorator.cs │ │ │ └── TaxDecorator.cs │ │ ├── Enum/ │ │ │ └── TableStatus.cs │ │ ├── Models/ │ │ │ ├── BaseBill.cs │ │ │ ├── Bill.cs │ │ │ ├── Chef.cs │ │ │ ├── IBillComponent.cs │ │ │ ├── Menu.cs │ │ │ ├── MenuItem.cs │ │ │ ├── Order.cs │ │ │ ├── OrderItem.cs │ │ │ ├── Restaurant.cs │ │ │ ├── Staff.cs │ │ │ ├── Table.cs │ │ │ └── Waiter.cs │ │ ├── Observer/ │ │ │ └── IOrderObserver.cs │ │ ├── README.md │ │ ├── RestaurantManagementSystemDemo.cs │ │ ├── RestaurantManagementSystemFacade.cs │ │ ├── States/ │ │ │ ├── IOrderItemState.cs │ │ │ ├── OrderedState.cs │ │ │ ├── PreparingState.cs │ │ │ ├── ReadyForPickupState.cs │ │ │ └── ServedState.cs │ │ └── restaurantmanagementsystem.csproj │ ├── ridesharingservice/ │ │ ├── Enums/ │ │ │ ├── DriverStatus.cs │ │ │ ├── RideType.cs │ │ │ └── TripStatus.cs │ │ ├── Models/ │ │ │ ├── Driver.cs │ │ │ ├── Location.cs │ │ │ ├── Rider.cs │ │ │ ├── Trip.cs │ │ │ ├── User.cs │ │ │ └── Vehicle.cs │ │ ├── Observer/ │ │ │ └── ITripObserver.cs │ │ ├── README.md │ │ ├── RideSharingService.cs │ │ ├── RideSharingServiceDemo.cs │ │ ├── States/ │ │ │ ├── AssignedState.cs │ │ │ ├── CompletedState.cs │ │ │ ├── ITripState.cs │ │ │ ├── InProgressState.cs │ │ │ └── RequestedState.cs │ │ ├── Strategies/ │ │ │ ├── Matching/ │ │ │ │ ├── IDriverMatchingStrategy.cs │ │ │ │ └── NearestDriverMatchingStrategy.cs │ │ │ └── Pricing/ │ │ │ ├── FlatRatePricingStrategy.cs │ │ │ ├── IPricingStrategy.cs │ │ │ └── VehicleBasedPricingStrategy.cs │ │ └── ridesharingservice.csproj │ ├── snakeandladdergame/ │ │ ├── Enums/ │ │ │ └── GameStatus.cs │ │ ├── Game.cs │ │ ├── Models/ │ │ │ ├── Board.cs │ │ │ ├── BoardEntity.cs │ │ │ ├── Dice.cs │ │ │ ├── Ladder.cs │ │ │ ├── Player.cs │ │ │ └── Snake.cs │ │ ├── README.md │ │ ├── SnakeAndLadderDemo.cs │ │ └── snakeandladdergame.csproj │ ├── socialnetworkingservice/ │ │ ├── Models/ │ │ │ ├── Comment.cs │ │ │ ├── CommentableEntity.cs │ │ │ ├── Post.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ ├── IPostObserver.cs │ │ │ └── UserNotifier.cs │ │ ├── README.md │ │ ├── Repositories/ │ │ │ ├── PostRepository.cs │ │ │ └── UserRepository.cs │ │ ├── Services/ │ │ │ ├── NewsFeedService.cs │ │ │ ├── PostService.cs │ │ │ └── UserService.cs │ │ ├── SocialNetworkFacade.cs │ │ ├── SocialNetworkingDemo.cs │ │ ├── Strategy/ │ │ │ ├── ChronologicalStrategy.cs │ │ │ └── INewsFeedGenerationStrategy.cs │ │ └── socialnetworkingservice.csproj │ ├── splitwise/ │ │ ├── Models/ │ │ │ ├── BalanceSheet.cs │ │ │ ├── Expense.cs │ │ │ ├── Group.cs │ │ │ ├── Split.cs │ │ │ ├── Transaction.cs │ │ │ └── User.cs │ │ ├── README.md │ │ ├── SplitwiseDemo.cs │ │ ├── SplitwiseService.cs │ │ ├── Strategy/ │ │ │ ├── EqualSplitStrategy.cs │ │ │ ├── ExactSplitStrategy.cs │ │ │ ├── PercentageSplitStrategy.cs │ │ │ └── SplitStrategy.cs │ │ └── splitwise.csproj │ ├── stackoverflow/ │ │ ├── Enums/ │ │ │ ├── EventType.cs │ │ │ └── VoteType.cs │ │ ├── Models/ │ │ │ ├── Answer.cs │ │ │ ├── Comment.cs │ │ │ ├── Content.cs │ │ │ ├── Post.cs │ │ │ ├── Question.cs │ │ │ ├── Tag.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ ├── Event.cs │ │ │ ├── IPostObserver.cs │ │ │ └── ReputationManager.cs │ │ ├── README.md │ │ ├── StackOverflowDemo.cs │ │ ├── StackOverflowService.cs │ │ ├── Strategy/ │ │ │ ├── ISearchStrategy.cs │ │ │ ├── KeywordSearchStrategy.cs │ │ │ ├── TagSearchStrategy.cs │ │ │ └── UserSearchStrategy.cs │ │ └── stackoverflow.csproj │ ├── taskmanagementsystem/ │ │ ├── Enums/ │ │ │ ├── TaskPriority.cs │ │ │ └── TaskStatus.cs │ │ ├── Models/ │ │ │ ├── ActivityLog.cs │ │ │ ├── Comment.cs │ │ │ ├── Tag.cs │ │ │ ├── Task.cs │ │ │ ├── TaskList.cs │ │ │ └── User.cs │ │ ├── Observer/ │ │ │ ├── ActivityLogger.cs │ │ │ └── ITaskObserver.cs │ │ ├── README.md │ │ ├── State/ │ │ │ ├── DoneState.cs │ │ │ ├── InProgressState.cs │ │ │ ├── TaskState.cs │ │ │ └── TodoState.cs │ │ ├── Strategy/ │ │ │ ├── SortByDueDate.cs │ │ │ ├── SortByPriority.cs │ │ │ └── TaskSortStrategy.cs │ │ ├── TaskManagementSystem.cs │ │ ├── TaskManagementSystemDemo.cs │ │ └── taskmanagementsystem.csproj │ ├── tictactoe/ │ │ ├── Enums/ │ │ │ ├── GameStatus.cs │ │ │ └── Symbol.cs │ │ ├── Exceptions/ │ │ │ └── InvalidMoveException.cs │ │ ├── Models/ │ │ │ ├── Board.cs │ │ │ ├── Cell.cs │ │ │ ├── Game.cs │ │ │ └── Player.cs │ │ ├── Observer/ │ │ │ ├── GameSubject.cs │ │ │ ├── IGameObserver.cs │ │ │ └── Scoreboard.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── DrawState.cs │ │ │ ├── IGameState.cs │ │ │ ├── InProgressState.cs │ │ │ └── WinnerState.cs │ │ ├── Strategy/ │ │ │ ├── ColumnWinningStrategy.cs │ │ │ ├── DiagonalWinningStrategy.cs │ │ │ ├── IWinningStrategy.cs │ │ │ └── RowWinningStrategy.cs │ │ ├── TicTacToeDemo.cs │ │ ├── TicTacToeSystem.cs │ │ └── tictactoe.csproj │ ├── trafficsignalsystem/ │ │ ├── Enums/ │ │ │ ├── Direction.cs │ │ │ └── LightColor.cs │ │ ├── IntersectionController.cs │ │ ├── Observer/ │ │ │ ├── CentralMonitor.cs │ │ │ └── ITrafficObserver.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── Intersection/ │ │ │ │ ├── EastWestGreenState.cs │ │ │ │ ├── IIntersectionState.cs │ │ │ │ └── NorthSouthGreenState.cs │ │ │ └── Light/ │ │ │ ├── GreenState.cs │ │ │ ├── ISignalState.cs │ │ │ ├── RedState.cs │ │ │ └── YellowState.cs │ │ ├── TrafficControlSystem.cs │ │ ├── TrafficLight.cs │ │ ├── TrafficSystemDemo.cs │ │ └── trafficsignalsystem.csproj │ ├── vendingmachine/ │ │ ├── Enum/ │ │ │ └── Coin.cs │ │ ├── Models/ │ │ │ ├── Inventory.cs │ │ │ └── Item.cs │ │ ├── README.md │ │ ├── States/ │ │ │ ├── DispensingState.cs │ │ │ ├── HasMoneyState.cs │ │ │ ├── IdleState.cs │ │ │ ├── ItemSelectedState.cs │ │ │ └── VendingMachineState.cs │ │ ├── VendingMachine.cs │ │ ├── VendingMachineDemo.cs │ │ └── vendingmachine.csproj │ └── votingsystem/ │ └── README.md ├── golang/ │ ├── airlinemanagementsystem/ │ │ ├── README.md │ │ ├── aircraft.go │ │ ├── airline_management_system.go │ │ ├── airline_management_system_demo.go │ │ ├── booking.go │ │ ├── booking_manager.go │ │ ├── flight.go │ │ ├── flight_search.go │ │ ├── passenger.go │ │ ├── payment.go │ │ ├── payment_processor.go │ │ ├── seat.go │ │ └── types.go │ ├── app.log │ ├── atm/ │ │ ├── README.md │ │ ├── account.go │ │ ├── atm.go │ │ ├── atm_demo.go │ │ ├── banking_service.go │ │ ├── card.go │ │ ├── cash_dispenser.go │ │ ├── deposit_transaction.go │ │ ├── errors.go │ │ ├── transaction.go │ │ └── withdrawal_transaction.go │ ├── carrentalsystem/ │ │ ├── README.md │ │ ├── car.go │ │ ├── car_rental_system_demo.go │ │ ├── credit_card_processor.go │ │ ├── customer.go │ │ ├── payment_processor.go │ │ ├── paypal_processor.go │ │ ├── rental_system.go │ │ └── reservation.go │ ├── chessgame/ │ │ ├── README.md │ │ ├── board.go │ │ ├── chess_game.go │ │ ├── chess_game_demo.go │ │ ├── color.go │ │ ├── errors.go │ │ ├── move.go │ │ ├── piece.go │ │ ├── pieces.go │ │ └── player.go │ ├── coffeevendingmachine/ │ │ ├── README.md │ │ ├── coffee.go │ │ ├── coffee_machine.go │ │ ├── coffee_vending_machine_demo.go │ │ ├── ingredient.go │ │ └── payment.go │ ├── concertticketbookingsystem/ │ │ ├── README.md │ │ ├── booking.go │ │ ├── concert.go │ │ ├── concert_booking_system.go │ │ ├── concert_booking_system_demo.go │ │ ├── errors.go │ │ ├── seat.go │ │ ├── types.go │ │ ├── user.go │ │ └── utils.go │ ├── courseregistrationsystem/ │ │ ├── README.md │ │ ├── course.go │ │ ├── course_registration_system.go │ │ ├── course_registration_system_demo.go │ │ ├── registration.go │ │ └── student.go │ ├── cricinfo/ │ │ ├── README.md │ │ ├── ball.go │ │ ├── cricinfo.go │ │ ├── cricinfo_system.go │ │ ├── innings.go │ │ ├── match.go │ │ ├── match_service.go │ │ ├── over.go │ │ ├── player.go │ │ ├── scorecard.go │ │ ├── scorecard_service.go │ │ ├── team.go │ │ └── types.go │ ├── digitalwalletservice/ │ │ ├── README.md │ │ ├── account.go │ │ ├── bank_account.go │ │ ├── credit_card.go │ │ ├── currency_converter.go │ │ ├── digital_wallet.go │ │ ├── digital_wallet_demo.go │ │ ├── errors.go │ │ ├── payment_method.go │ │ ├── transaction.go │ │ ├── types.go │ │ └── user.go │ ├── elevatorsystem/ │ │ ├── README.md │ │ ├── direction.go │ │ ├── elevator.go │ │ ├── elevator_controller.go │ │ ├── elevator_controller_demo.go │ │ └── request.go │ ├── fooddeliveryservice/ │ │ ├── README.md │ │ ├── customer.go │ │ ├── delivery_agent.go │ │ ├── food_delivery_service.go │ │ ├── food_delivery_service_demo.go │ │ ├── menu_item.go │ │ ├── order.go │ │ ├── restaurant.go │ │ └── types.go │ ├── go.mod │ ├── hotelmanagementsystem/ │ │ ├── README.md │ │ ├── guest.go │ │ ├── hotel_management.go │ │ ├── hotel_management_demo.go │ │ ├── payment.go │ │ ├── reservation.go │ │ ├── room.go │ │ └── types.go │ ├── librarymanagementsystem/ │ │ ├── README.md │ │ ├── book.go │ │ ├── library_management_system_demo.go │ │ ├── library_manager.go │ │ └── member.go │ ├── linkedin/ │ │ ├── README.md │ │ ├── connection.go │ │ ├── education.go │ │ ├── experience.go │ │ ├── job_posting.go │ │ ├── linkedin_service.go │ │ ├── linkedin_service_demo.go │ │ ├── message.go │ │ ├── notification.go │ │ ├── profile.go │ │ ├── skill.go │ │ ├── types.go │ │ └── user.go │ ├── loggingframework/ │ │ ├── README.md │ │ ├── console_appender.go │ │ ├── database_appender.go │ │ ├── file_appender.go │ │ ├── log_appender.go │ │ ├── log_level.go │ │ ├── log_message.go │ │ ├── logger.go │ │ ├── logger_config.go │ │ └── logging_framework_demo.go │ ├── lrucache/ │ │ ├── README.md │ │ ├── lru_cache.go │ │ └── lru_cache_demo.go │ ├── main.go │ ├── movieticketbookingsystem/ │ │ ├── README.md │ │ ├── booking.go │ │ ├── movie.go │ │ ├── movie_ticket_booking_system.go │ │ ├── movie_ticket_booking_system_demo.go │ │ ├── seat.go │ │ ├── show.go │ │ ├── theater.go │ │ ├── types.go │ │ └── user.go │ ├── musicstreamingservice/ │ │ ├── README.md │ │ ├── album.go │ │ ├── artist.go │ │ ├── music_library.go │ │ ├── music_player.go │ │ ├── music_recommender.go │ │ ├── music_streaming_service.go │ │ ├── music_streaming_service_demo.go │ │ ├── playlist.go │ │ ├── song.go │ │ ├── user.go │ │ └── userManager.go │ ├── onlineauctionsystem/ │ │ ├── README.md │ │ ├── auction_listing.go │ │ ├── auction_status.go │ │ ├── auction_system.go │ │ ├── bid.go │ │ ├── main.go │ │ └── user.go │ ├── onlineshoppingservice/ │ │ ├── README.md │ │ ├── credit_card_payment.go │ │ ├── online_shopping_service.go │ │ ├── online_shopping_service_demo.go │ │ ├── order.go │ │ ├── order_item.go │ │ ├── order_status.go │ │ ├── payment.go │ │ ├── product.go │ │ ├── shopping_cart.go │ │ └── user.go │ ├── onlinestockbrokeragesystem/ │ │ ├── README.md │ │ ├── account.go │ │ ├── buy_order.go │ │ ├── exceptions.go │ │ ├── order.go │ │ ├── portfolio.go │ │ ├── sell_order.go │ │ ├── stock.go │ │ ├── stock_broker.go │ │ ├── stock_broker_demo.go │ │ ├── types.go │ │ └── user.go │ ├── parkinglot/ │ │ ├── README.md │ │ ├── car.go │ │ ├── level.go │ │ ├── motorcycle.go │ │ ├── parking_lot.go │ │ ├── parking_lot_demo.go │ │ ├── parking_spot.go │ │ ├── truck.go │ │ └── vehicle.go │ ├── pubsubsystem/ │ │ ├── README.md │ │ ├── message.go │ │ ├── print_subscriber.go │ │ ├── publisher.go │ │ ├── pubsub_system_demo.go │ │ ├── subscriber.go │ │ └── topic.go │ ├── restaurantmanagementsystem/ │ │ ├── README.md │ │ ├── menu_item.go │ │ ├── order.go │ │ ├── order_status.go │ │ ├── payment.go │ │ ├── payment_method.go │ │ ├── payment_status.go │ │ ├── reservation.go │ │ ├── restaurant.go │ │ ├── restaurant_management_demo.go │ │ └── staff.go │ ├── ridesharingservice/ │ │ ├── README.md │ │ ├── driver.go │ │ ├── driver_status.go │ │ ├── location.go │ │ ├── passenger.go │ │ ├── ride.go │ │ ├── ride_service.go │ │ ├── ride_sharing_service_demo.go │ │ └── ride_status.go │ ├── snakeandladdergame/ │ │ ├── README.md │ │ ├── board.go │ │ ├── dice.go │ │ ├── game_manager.go │ │ ├── ladder.go │ │ ├── player.go │ │ ├── snake.go │ │ ├── snake_and_ladder_demo.go │ │ └── snake_and_ladder_game.go │ ├── socialnetworkingservice/ │ │ ├── README.md │ │ ├── comment.go │ │ ├── notification.go │ │ ├── post.go │ │ ├── social_networking_service.go │ │ ├── social_networking_service_demo.go │ │ ├── types.go │ │ └── user.go │ ├── splitwise/ │ │ ├── README.md │ │ ├── equal_split.go │ │ ├── expense.go │ │ ├── group.go │ │ ├── percent_split.go │ │ ├── split.go │ │ ├── splitwise_demo.go │ │ ├── splitwise_service.go │ │ ├── transaction.go │ │ └── user.go │ ├── stackOverFlow/ │ │ ├── README.md │ │ ├── answer.go │ │ ├── stackoverflow.go │ │ ├── stackoverflow_demo.go │ │ └── types.go │ ├── taskmanagementsystem/ │ │ ├── README.md │ │ ├── task.go │ │ ├── task_management_system_demo.go │ │ ├── task_manager.go │ │ ├── task_status.go │ │ └── user.go │ ├── tictactoe/ │ │ ├── README.md │ │ ├── board.go │ │ ├── game.go │ │ ├── player.go │ │ └── tictactoe_demo.go │ ├── trafficsignalsystem/ │ │ ├── README.md │ │ ├── road.go │ │ ├── signal.go │ │ ├── traffic_controller.go │ │ ├── traffic_light.go │ │ └── traffic_signal_system_demo.go │ ├── vendingmachine/ │ │ ├── README.md │ │ ├── coin.go │ │ ├── inventory.go │ │ ├── note.go │ │ ├── product.go │ │ ├── state.go │ │ ├── vending_machine.go │ │ └── vending_machine_demo.go │ └── votingsystem/ │ └── README.md ├── java/ │ ├── .gitignore │ ├── pom.xml │ ├── src/ │ │ ├── LLDRunner.java │ │ ├── airlinemanagementsystem/ │ │ │ ├── Aircraft.java │ │ │ ├── AirlineManagementSystem.java │ │ │ ├── AirlineManagementSystemDemo.java │ │ │ ├── Passenger.java │ │ │ ├── README.md │ │ │ ├── booking/ │ │ │ │ ├── Booking.java │ │ │ │ ├── BookingManager.java │ │ │ │ └── BookingStatus.java │ │ │ ├── flight/ │ │ │ │ ├── Flight.java │ │ │ │ ├── FlightSearch.java │ │ │ │ └── FlightStatus.java │ │ │ ├── payment/ │ │ │ │ ├── Payment.java │ │ │ │ ├── PaymentProcessor.java │ │ │ │ └── PaymentStatus.java │ │ │ └── seat/ │ │ │ ├── Seat.java │ │ │ ├── SeatStatus.java │ │ │ └── SeatType.java │ │ ├── atm/ │ │ │ ├── ATMDemo.java │ │ │ ├── ATMSystem.java │ │ │ ├── README.md │ │ │ ├── chainofresponsibility/ │ │ │ │ ├── DispenseChain.java │ │ │ │ ├── NoteDispenser.java │ │ │ │ ├── NoteDispenser100.java │ │ │ │ ├── NoteDispenser20.java │ │ │ │ └── NoteDispenser50.java │ │ │ ├── entities/ │ │ │ │ ├── Account.java │ │ │ │ ├── BankService.java │ │ │ │ ├── Card.java │ │ │ │ └── CashDispenser.java │ │ │ ├── enums/ │ │ │ │ └── OperationType.java │ │ │ └── state/ │ │ │ ├── ATMState.java │ │ │ ├── AuthenticatedState.java │ │ │ ├── HasCardState.java │ │ │ └── IdleState.java │ │ ├── carrentalsystem/ │ │ │ ├── Car.java │ │ │ ├── CarRentalSystem.java │ │ │ ├── CarRentalSystemDemo.java │ │ │ ├── CarStatus.java │ │ │ ├── CarType.java │ │ │ ├── Customer.java │ │ │ ├── README.md │ │ │ ├── Reservation.java │ │ │ └── payment/ │ │ │ ├── CreditCardPaymentProcessor.java │ │ │ ├── PayPalPaymentProcessor.java │ │ │ └── PaymentProcessor.java │ │ ├── chessgame/ │ │ │ ├── Board.java │ │ │ ├── Cell.java │ │ │ ├── ChessGame.java │ │ │ ├── ChessGameDemo.java │ │ │ ├── Color.java │ │ │ ├── InvalidMoveException.java │ │ │ ├── Move.java │ │ │ ├── Player.java │ │ │ ├── README.md │ │ │ └── pieces/ │ │ │ ├── Bishop.java │ │ │ ├── King.java │ │ │ ├── Knight.java │ │ │ ├── Pawn.java │ │ │ ├── Piece.java │ │ │ ├── Queen.java │ │ │ └── Rook.java │ │ ├── coffeevendingmachine/ │ │ │ ├── CoffeeVendingMachine.java │ │ │ ├── CoffeeVendingMachineDemo.java │ │ │ ├── Inventory.java │ │ │ ├── README.md │ │ │ ├── decorator/ │ │ │ │ ├── CaramelSyrupDecorator.java │ │ │ │ ├── Coffee.java │ │ │ │ ├── CoffeeDecorator.java │ │ │ │ └── ExtraSugarDecorator.java │ │ │ ├── enums/ │ │ │ │ ├── CoffeeType.java │ │ │ │ ├── Ingredient.java │ │ │ │ └── ToppingType.java │ │ │ ├── factory/ │ │ │ │ └── CoffeeFactory.java │ │ │ ├── state/ │ │ │ │ ├── OutOfIngredientState.java │ │ │ │ ├── PaidState.java │ │ │ │ ├── ReadyState.java │ │ │ │ ├── SelectingState.java │ │ │ │ └── VendingMachineState.java │ │ │ └── templatemethod/ │ │ │ ├── Cappuccino.java │ │ │ ├── Espresso.java │ │ │ └── Latte.java │ │ ├── concertticketbookingsystem/ │ │ │ ├── Booking.java │ │ │ ├── BookingStatus.java │ │ │ ├── Concert.java │ │ │ ├── ConcertTicketBookingSystem.java │ │ │ ├── ConcertTicketBookingSystemDemo.java │ │ │ ├── README.md │ │ │ ├── Seat.java │ │ │ ├── SeatNotAvailableException.java │ │ │ ├── SeatStatus.java │ │ │ ├── SeatType.java │ │ │ └── User.java │ │ ├── courseregistrationsystem/ │ │ │ ├── CourseRegistrationDemo.java │ │ │ ├── CourseRegistrationService.java │ │ │ ├── CourseRegistrationSystemFacade.java │ │ │ ├── README.md │ │ │ ├── chain/ │ │ │ │ ├── CapacityRuleHandler.java │ │ │ │ ├── PrerequisiteRuleHandler.java │ │ │ │ ├── RegistrationRequest.java │ │ │ │ ├── RegistrationRuleHandler.java │ │ │ │ └── ScheduleConflictRuleHandler.java │ │ │ ├── exception/ │ │ │ │ └── RegistrationException.java │ │ │ ├── model/ │ │ │ │ ├── Course.java │ │ │ │ ├── CourseOffering.java │ │ │ │ ├── Professor.java │ │ │ │ ├── Student.java │ │ │ │ └── TimeSlot.java │ │ │ ├── observer/ │ │ │ │ ├── CourseOfferingObserver.java │ │ │ │ └── WaitlistManager.java │ │ │ └── repository/ │ │ │ ├── CourseRepository.java │ │ │ └── StudentRepository.java │ │ ├── cricinfo/ │ │ │ ├── CommentaryManager.java │ │ │ ├── CricInfoService.java │ │ │ ├── CricinfoDemo.java │ │ │ ├── README.md │ │ │ ├── entity/ │ │ │ │ ├── Ball.java │ │ │ │ ├── Innings.java │ │ │ │ ├── Match.java │ │ │ │ ├── Player.java │ │ │ │ ├── PlayerStats.java │ │ │ │ ├── Team.java │ │ │ │ └── Wicket.java │ │ │ ├── enums/ │ │ │ │ ├── ExtraType.java │ │ │ │ ├── MatchStatus.java │ │ │ │ ├── PlayerRole.java │ │ │ │ └── WicketType.java │ │ │ ├── observer/ │ │ │ │ ├── CommentaryDisplay.java │ │ │ │ ├── MatchObserver.java │ │ │ │ ├── ScorecardDisplay.java │ │ │ │ └── UserNotifier.java │ │ │ ├── repository/ │ │ │ │ ├── MatchRepository.java │ │ │ │ └── PlayerRepository.java │ │ │ ├── state/ │ │ │ │ ├── FinishedState.java │ │ │ │ ├── InBreakState.java │ │ │ │ ├── LiveState.java │ │ │ │ ├── MatchState.java │ │ │ │ └── ScheduledState.java │ │ │ └── strategy/ │ │ │ ├── MatchFormatStrategy.java │ │ │ ├── ODIFormatStrategy.java │ │ │ └── T20FormatStrategy.java │ │ ├── digitalwalletservice/ │ │ │ ├── Account.java │ │ │ ├── BankAccount.java │ │ │ ├── CreditCard.java │ │ │ ├── Currency.java │ │ │ ├── CurrencyConverter.java │ │ │ ├── DigitalWallet.java │ │ │ ├── DigitalWalletDemo.java │ │ │ ├── InsufficientFundsException.java │ │ │ ├── PaymentMethod.java │ │ │ └── README.md │ │ ├── elevatorsystem/ │ │ │ ├── Elevator.java │ │ │ ├── ElevatorSystem.java │ │ │ ├── ElevatorSystemDemo.java │ │ │ ├── README.md │ │ │ ├── enums/ │ │ │ │ ├── Direction.java │ │ │ │ └── RequestSource.java │ │ │ ├── models/ │ │ │ │ └── Request.java │ │ │ ├── observer/ │ │ │ │ ├── ElevatorDisplay.java │ │ │ │ └── ElevatorObserver.java │ │ │ ├── state/ │ │ │ │ ├── ElevatorState.java │ │ │ │ ├── IdleState.java │ │ │ │ ├── MovingDownState.java │ │ │ │ └── MovingUpState.java │ │ │ └── strategy/ │ │ │ ├── ElevatorSelectionStrategy.java │ │ │ └── NearestElevatorStrategy.java │ │ ├── filedirectory/ │ │ │ ├── AbstractNode.java │ │ │ ├── DirectoryNode.java │ │ │ ├── FileNode.java │ │ │ ├── FileSystem.java │ │ │ ├── FileSystemDemo.java │ │ │ ├── chainofresponsibility/ │ │ │ │ ├── FileSizeFilter.java │ │ │ │ ├── FilenameFilter.java │ │ │ │ ├── NodeFilter.java │ │ │ │ └── NodeFilterChain.java │ │ │ └── strategy/ │ │ │ ├── FilenameAndSizeSearchStrategy.java │ │ │ └── NodeSearchStrategy.java │ │ ├── fooddeliveryservice/ │ │ │ ├── FoodDeliveryService.java │ │ │ ├── FoodDeliveryServiceDemo.java │ │ │ ├── README.md │ │ │ ├── entity/ │ │ │ │ ├── Address.java │ │ │ │ ├── Customer.java │ │ │ │ ├── DeliveryAgent.java │ │ │ │ ├── Menu.java │ │ │ │ ├── MenuItem.java │ │ │ │ ├── Restaurant.java │ │ │ │ └── User.java │ │ │ ├── observer/ │ │ │ │ └── OrderObserver.java │ │ │ ├── order/ │ │ │ │ ├── Order.java │ │ │ │ ├── OrderItem.java │ │ │ │ └── OrderStatus.java │ │ │ ├── search/ │ │ │ │ ├── RestaurantSearchStrategy.java │ │ │ │ ├── SearchByCityStrategy.java │ │ │ │ ├── SearchByMenuKeywordStrategy.java │ │ │ │ └── SearchByProximityStrategy.java │ │ │ └── strategy/ │ │ │ ├── DeliveryAssignmentStrategy.java │ │ │ └── NearestAvailableAgentStrategy.java │ │ ├── hotelmanagementsystem/ │ │ │ ├── BookingService.java │ │ │ ├── HotelManagementDemo.java │ │ │ ├── HotelManagerFacade.java │ │ │ ├── PaymentService.java │ │ │ ├── README.md │ │ │ ├── RoomService.java │ │ │ ├── decorator/ │ │ │ │ ├── AmenityDecorator.java │ │ │ │ ├── Bookable.java │ │ │ │ ├── BreakfastDecorator.java │ │ │ │ ├── RoomBooking.java │ │ │ │ └── SpaDecorator.java │ │ │ ├── enums/ │ │ │ │ ├── BookingStatus.java │ │ │ │ ├── RoomStyle.java │ │ │ │ └── RoomType.java │ │ │ ├── factory/ │ │ │ │ └── RoomFactory.java │ │ │ ├── model/ │ │ │ │ ├── Booking.java │ │ │ │ ├── Guest.java │ │ │ │ └── Room.java │ │ │ ├── observer/ │ │ │ │ ├── BookingObserver.java │ │ │ │ ├── EmailNotifier.java │ │ │ │ └── SmsNotifier.java │ │ │ ├── payment/ │ │ │ │ ├── CashPayment.java │ │ │ │ ├── CreditCardPayment.java │ │ │ │ └── Payment.java │ │ │ ├── specification/ │ │ │ │ ├── AbstractSpecification.java │ │ │ │ ├── AndSpecification.java │ │ │ │ ├── RoomAvailableSpecification.java │ │ │ │ ├── RoomStyleSpecification.java │ │ │ │ ├── RoomTypeSpecification.java │ │ │ │ └── Specification.java │ │ │ └── state/ │ │ │ ├── AvailableState.java │ │ │ ├── MaintenanceState.java │ │ │ ├── OccupiedState.java │ │ │ └── RoomState.java │ │ ├── librarymanagementsystem/ │ │ │ ├── LibraryManagementDemo.java │ │ │ ├── LibraryManagementSystem.java │ │ │ ├── README.md │ │ │ ├── TransactionService.java │ │ │ ├── enums/ │ │ │ │ └── ItemType.java │ │ │ ├── factory/ │ │ │ │ └── ItemFactory.java │ │ │ ├── models/ │ │ │ │ ├── Book.java │ │ │ │ ├── BookCopy.java │ │ │ │ ├── LibraryItem.java │ │ │ │ ├── Loan.java │ │ │ │ ├── Magazine.java │ │ │ │ └── Member.java │ │ │ ├── state/ │ │ │ │ ├── AvailableState.java │ │ │ │ ├── CheckedOutState.java │ │ │ │ ├── ItemState.java │ │ │ │ └── OnHoldState.java │ │ │ └── strategy/ │ │ │ ├── SearchByAuthorStrategy.java │ │ │ ├── SearchByTitleStrategy.java │ │ │ └── SearchStrategy.java │ │ ├── linkedin/ │ │ │ ├── LinkedInDemo.java │ │ │ ├── LinkedInSystem.java │ │ │ ├── README.md │ │ │ ├── entities/ │ │ │ │ ├── Comment.java │ │ │ │ ├── Connection.java │ │ │ │ ├── Education.java │ │ │ │ ├── Experience.java │ │ │ │ ├── Like.java │ │ │ │ ├── Member.java │ │ │ │ ├── NewsFeed.java │ │ │ │ ├── Notification.java │ │ │ │ ├── Post.java │ │ │ │ └── Profile.java │ │ │ ├── enums/ │ │ │ │ ├── ConnectionStatus.java │ │ │ │ └── NotificationType.java │ │ │ ├── observer/ │ │ │ │ ├── NotificationObserver.java │ │ │ │ └── Subject.java │ │ │ ├── services/ │ │ │ │ ├── ConnectionService.java │ │ │ │ ├── NewsFeedService.java │ │ │ │ ├── NotificationService.java │ │ │ │ └── SearchService.java │ │ │ └── strategy/ │ │ │ ├── ChronologicalSortStrategy.java │ │ │ └── FeedSortingStrategy.java │ │ ├── loggingframework/ │ │ │ ├── AsyncLogProcessor.java │ │ │ ├── LogManager.java │ │ │ ├── Logger.java │ │ │ ├── LoggingFrameworkDemo.java │ │ │ ├── README.md │ │ │ ├── entities/ │ │ │ │ └── LogMessage.java │ │ │ ├── enums/ │ │ │ │ └── LogLevel.java │ │ │ └── strategies/ │ │ │ ├── appender/ │ │ │ │ ├── ConsoleAppender.java │ │ │ │ ├── FileAppender.java │ │ │ │ └── LogAppender.java │ │ │ └── formatter/ │ │ │ ├── LogFormatter.java │ │ │ └── SimpleTextFormatter.java │ │ ├── lrucache/ │ │ │ ├── DoublyLinkedList.java │ │ │ ├── LRUCache.java │ │ │ ├── LRUCacheDemo.java │ │ │ ├── Node.java │ │ │ └── README.md │ │ ├── movieticketbookingsystem/ │ │ │ ├── BookingManager.java │ │ │ ├── MovieBookingDemo.java │ │ │ ├── MovieBookingService.java │ │ │ ├── README.md │ │ │ ├── SeatLockManager.java │ │ │ ├── entities/ │ │ │ │ ├── Booking.java │ │ │ │ ├── Cinema.java │ │ │ │ ├── City.java │ │ │ │ ├── Movie.java │ │ │ │ ├── Payment.java │ │ │ │ ├── Screen.java │ │ │ │ ├── Seat.java │ │ │ │ ├── Show.java │ │ │ │ └── User.java │ │ │ ├── enums/ │ │ │ │ ├── PaymentStatus.java │ │ │ │ ├── SeatStatus.java │ │ │ │ └── SeatType.java │ │ │ ├── observer/ │ │ │ │ ├── MovieObserver.java │ │ │ │ ├── MovieSubject.java │ │ │ │ └── UserObserver.java │ │ │ └── strategy/ │ │ │ ├── payment/ │ │ │ │ ├── CreditCardPaymentStrategy.java │ │ │ │ └── PaymentStrategy.java │ │ │ └── pricing/ │ │ │ ├── PricingStrategy.java │ │ │ ├── WeekdayPricingStrategy.java │ │ │ └── WeekendPricingStrategy.java │ │ ├── musicstreamingservice/ │ │ │ ├── MusicStreamingDemo.java │ │ │ ├── MusicStreamingSystem.java │ │ │ ├── README.md │ │ │ ├── command/ │ │ │ │ ├── Command.java │ │ │ │ ├── NextTrackCommand.java │ │ │ │ ├── PauseCommand.java │ │ │ │ └── PlayCommand.java │ │ │ ├── entities/ │ │ │ │ ├── Album.java │ │ │ │ ├── Artist.java │ │ │ │ ├── Playable.java │ │ │ │ ├── Player.java │ │ │ │ ├── Playlist.java │ │ │ │ ├── Song.java │ │ │ │ └── User.java │ │ │ ├── enums/ │ │ │ │ ├── PlayerStatus.java │ │ │ │ └── SubscriptionTier.java │ │ │ ├── observer/ │ │ │ │ ├── ArtistObserver.java │ │ │ │ └── Subject.java │ │ │ ├── services/ │ │ │ │ ├── RecommendationService.java │ │ │ │ └── SearchService.java │ │ │ ├── state/ │ │ │ │ ├── PausedState.java │ │ │ │ ├── PlayerState.java │ │ │ │ ├── PlayingState.java │ │ │ │ └── StoppedState.java │ │ │ └── strategies/ │ │ │ ├── playback/ │ │ │ │ ├── FreePlaybackStrategy.java │ │ │ │ ├── PlaybackStrategy.java │ │ │ │ └── PremiumPlaybackStrategy.java │ │ │ └── recommendation/ │ │ │ ├── GenreBasedRecommendationStrategy.java │ │ │ └── RecommendationStrategy.java │ │ ├── onlineauctionsystem/ │ │ │ ├── AuctionService.java │ │ │ ├── AuctionSystemDemo.java │ │ │ ├── README.md │ │ │ ├── entities/ │ │ │ │ ├── Auction.java │ │ │ │ ├── Bid.java │ │ │ │ └── User.java │ │ │ ├── enums/ │ │ │ │ └── AuctionStatus.java │ │ │ └── observer/ │ │ │ └── AuctionObserver.java │ │ ├── onlinelearningplatform/ │ │ │ └── README.md │ │ ├── onlineshoppingservice/ │ │ │ ├── OnlineShoppingDemo.java │ │ │ ├── OnlineShoppingSystem.java │ │ │ ├── README.md │ │ │ ├── decorator/ │ │ │ │ ├── GiftWrapDecorator.java │ │ │ │ └── ProductDecorator.java │ │ │ ├── enums/ │ │ │ │ ├── OrderStatus.java │ │ │ │ └── ProductCategory.java │ │ │ ├── exceptions/ │ │ │ │ └── OutOfStockException.java │ │ │ ├── models/ │ │ │ │ ├── Account.java │ │ │ │ ├── Address.java │ │ │ │ ├── CartItem.java │ │ │ │ ├── Customer.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderLineItem.java │ │ │ │ ├── Product.java │ │ │ │ └── ShoppingCart.java │ │ │ ├── observer/ │ │ │ │ ├── OrderObserver.java │ │ │ │ └── Subject.java │ │ │ ├── services/ │ │ │ │ ├── InventoryService.java │ │ │ │ ├── OrderService.java │ │ │ │ ├── PaymentService.java │ │ │ │ └── SearchService.java │ │ │ ├── state/ │ │ │ │ ├── CancelledState.java │ │ │ │ ├── DeliveredState.java │ │ │ │ ├── OrderState.java │ │ │ │ ├── PlacedState.java │ │ │ │ └── ShippedState.java │ │ │ └── strategy/ │ │ │ ├── CreditCardPaymentStrategy.java │ │ │ ├── PaymentStrategy.java │ │ │ └── UPIPaymentStrategy.java │ │ ├── onlinestockbrokeragesystem/ │ │ │ ├── BuyOrder.java │ │ │ ├── README.md │ │ │ ├── SellOrder.java │ │ │ ├── StockBrokerageSystem.java │ │ │ ├── StockBrokerageSystemDemo.java │ │ │ ├── StockExchange.java │ │ │ ├── command/ │ │ │ │ ├── BuyStockCommand.java │ │ │ │ ├── OrderCommand.java │ │ │ │ └── SellStockCommand.java │ │ │ ├── entities/ │ │ │ │ ├── Account.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderBuilder.java │ │ │ │ ├── Stock.java │ │ │ │ └── User.java │ │ │ ├── enums/ │ │ │ │ ├── OrderStatus.java │ │ │ │ ├── OrderType.java │ │ │ │ └── TransactionType.java │ │ │ ├── exceptions/ │ │ │ │ ├── InsufficientFundsException.java │ │ │ │ └── InsufficientStockException.java │ │ │ ├── observer/ │ │ │ │ └── StockObserver.java │ │ │ ├── state/ │ │ │ │ ├── CancelledState.java │ │ │ │ ├── FilledState.java │ │ │ │ ├── OpenState.java │ │ │ │ └── OrderState.java │ │ │ └── strategy/ │ │ │ ├── ExecutionStrategy.java │ │ │ ├── LimitOrderStrategy.java │ │ │ └── MarketOrderStrategy.java │ │ ├── parkinglot/ │ │ │ ├── ParkingLot.java │ │ │ ├── ParkingLotDemo.java │ │ │ ├── README.md │ │ │ ├── entities/ │ │ │ │ ├── ParkingFloor.java │ │ │ │ ├── ParkingSpot.java │ │ │ │ └── ParkingTicket.java │ │ │ ├── strategy/ │ │ │ │ ├── fee/ │ │ │ │ │ ├── FeeStrategy.java │ │ │ │ │ ├── FlatRateFeeStrategy.java │ │ │ │ │ └── VehicleBasedFeeStrategy.java │ │ │ │ └── parking/ │ │ │ │ ├── BestFitStrategy.java │ │ │ │ ├── FarthestFirstStrategy.java │ │ │ │ ├── NearestFirstStrategy.java │ │ │ │ └── ParkingStrategy.java │ │ │ └── vehicle/ │ │ │ ├── Bike.java │ │ │ ├── Car.java │ │ │ ├── Truck.java │ │ │ ├── Vehicle.java │ │ │ └── VehicleSize.java │ │ ├── pubsubsystem/ │ │ │ ├── PubSubDemo.java │ │ │ ├── PubSubService.java │ │ │ ├── README.md │ │ │ ├── entities/ │ │ │ │ ├── Message.java │ │ │ │ └── Topic.java │ │ │ └── subscriber/ │ │ │ ├── AlertSubscriber.java │ │ │ ├── NewsSubscriber.java │ │ │ └── Subscriber.java │ │ ├── restaurantmanagementsystem/ │ │ │ ├── README.md │ │ │ ├── RestaurantManagementSystem.java │ │ │ ├── RestaurantManagementSystemDemo.java │ │ │ ├── RestaurantManagementSystemFacade.java │ │ │ ├── command/ │ │ │ │ ├── Command.java │ │ │ │ ├── PrepareOrderCommand.java │ │ │ │ └── ServeOrderCommand.java │ │ │ ├── decorator/ │ │ │ │ ├── BaseBill.java │ │ │ │ ├── Bill.java │ │ │ │ ├── BillComponent.java │ │ │ │ ├── BillDecorator.java │ │ │ │ ├── ServiceChargeDecorator.java │ │ │ │ └── TaxDecorator.java │ │ │ ├── enums/ │ │ │ │ └── TableStatus.java │ │ │ ├── model/ │ │ │ │ ├── Chef.java │ │ │ │ ├── Menu.java │ │ │ │ ├── MenuItem.java │ │ │ │ ├── Order.java │ │ │ │ ├── OrderItem.java │ │ │ │ ├── Restaurant.java │ │ │ │ ├── Staff.java │ │ │ │ ├── Table.java │ │ │ │ └── Waiter.java │ │ │ ├── observer/ │ │ │ │ └── OrderObserver.java │ │ │ └── state/ │ │ │ ├── OrderItemState.java │ │ │ ├── OrderedState.java │ │ │ ├── PreparingState.java │ │ │ ├── ReadyForPickupState.java │ │ │ └── ServedState.java │ │ ├── ridesharingservice/ │ │ │ ├── README.md │ │ │ ├── RideSharingService.java │ │ │ ├── RideSharingServiceDemo.java │ │ │ ├── entities/ │ │ │ │ ├── Driver.java │ │ │ │ ├── Location.java │ │ │ │ ├── Trip.java │ │ │ │ ├── User.java │ │ │ │ └── Vehicle.java │ │ │ ├── enums/ │ │ │ │ ├── DriverStatus.java │ │ │ │ ├── RideType.java │ │ │ │ └── TripStatus.java │ │ │ ├── observer/ │ │ │ │ ├── Rider.java │ │ │ │ └── TripObserver.java │ │ │ ├── state/ │ │ │ │ ├── AssignedState.java │ │ │ │ ├── CompletedState.java │ │ │ │ ├── InProgressState.java │ │ │ │ ├── RequestedState.java │ │ │ │ └── TripState.java │ │ │ └── strategy/ │ │ │ ├── matching/ │ │ │ │ ├── DriverMatchingStrategy.java │ │ │ │ └── NearestDriverMatchingStrategy.java │ │ │ └── pricing/ │ │ │ ├── FlatRatePricingStrategy.java │ │ │ ├── PricingStrategy.java │ │ │ └── VehicleBasedPricingStrategy.java │ │ ├── snakeandladdergame/ │ │ │ ├── Game.java │ │ │ ├── README.md │ │ │ ├── SnakeAndLadderDemo.java │ │ │ ├── enums/ │ │ │ │ └── GameStatus.java │ │ │ └── models/ │ │ │ ├── Board.java │ │ │ ├── BoardEntity.java │ │ │ ├── Dice.java │ │ │ ├── Ladder.java │ │ │ ├── Player.java │ │ │ └── Snake.java │ │ ├── socialnetworkingservice/ │ │ │ ├── README.md │ │ │ ├── SocialNetworkDemo.java │ │ │ ├── SocialNetworkFacade.java │ │ │ ├── model/ │ │ │ │ ├── Comment.java │ │ │ │ ├── CommentableEntity.java │ │ │ │ ├── Post.java │ │ │ │ └── User.java │ │ │ ├── observer/ │ │ │ │ ├── PostObserver.java │ │ │ │ └── UserNotifier.java │ │ │ ├── repository/ │ │ │ │ ├── PostRepository.java │ │ │ │ └── UserRepository.java │ │ │ ├── service/ │ │ │ │ ├── NewsFeedService.java │ │ │ │ ├── PostService.java │ │ │ │ └── UserService.java │ │ │ └── strategy/ │ │ │ ├── ChronologicalStrategy.java │ │ │ └── NewsFeedGenerationStrategy.java │ │ ├── splitwise/ │ │ │ ├── README.md │ │ │ ├── SplitwiseDemo.java │ │ │ ├── SplitwiseService.java │ │ │ ├── entities/ │ │ │ │ ├── BalanceSheet.java │ │ │ │ ├── Expense.java │ │ │ │ ├── Group.java │ │ │ │ ├── Split.java │ │ │ │ ├── Transaction.java │ │ │ │ └── User.java │ │ │ └── strategy/ │ │ │ ├── EqualSplitStrategy.java │ │ │ ├── ExactSplitStrategy.java │ │ │ ├── PercentageSplitStrategy.java │ │ │ └── SplitStrategy.java │ │ ├── stackoverflow/ │ │ │ ├── README.md │ │ │ ├── StackOverflowDemo.java │ │ │ ├── StackOverflowService.java │ │ │ ├── entities/ │ │ │ │ ├── Answer.java │ │ │ │ ├── Comment.java │ │ │ │ ├── Content.java │ │ │ │ ├── Event.java │ │ │ │ ├── Post.java │ │ │ │ ├── Question.java │ │ │ │ ├── Tag.java │ │ │ │ └── User.java │ │ │ ├── enums/ │ │ │ │ ├── EventType.java │ │ │ │ └── VoteType.java │ │ │ ├── observer/ │ │ │ │ ├── PostObserver.java │ │ │ │ └── ReputationManager.java │ │ │ └── strategy/ │ │ │ ├── KeywordSearchStrategy.java │ │ │ ├── SearchStrategy.java │ │ │ ├── TagSearchStrategy.java │ │ │ └── UserSearchStrategy.java │ │ ├── taskmanagementsystem/ │ │ │ ├── README.md │ │ │ ├── TaskManagementSystem.java │ │ │ ├── TaskManagementSystemDemo.java │ │ │ ├── enums/ │ │ │ │ ├── TaskPriority.java │ │ │ │ └── TaskStatus.java │ │ │ ├── models/ │ │ │ │ ├── ActivityLog.java │ │ │ │ ├── Comment.java │ │ │ │ ├── Tag.java │ │ │ │ ├── Task.java │ │ │ │ ├── TaskList.java │ │ │ │ └── User.java │ │ │ ├── observer/ │ │ │ │ ├── ActivityLogger.java │ │ │ │ └── TaskObserver.java │ │ │ ├── state/ │ │ │ │ ├── DoneState.java │ │ │ │ ├── InProgressState.java │ │ │ │ ├── TaskState.java │ │ │ │ └── TodoState.java │ │ │ └── strategy/ │ │ │ ├── SortByDueDate.java │ │ │ ├── SortByPriority.java │ │ │ └── TaskSortStrategy.java │ │ ├── tictactoe/ │ │ │ ├── Game.java │ │ │ ├── README.md │ │ │ ├── TicTacToeDemo.java │ │ │ ├── TicTacToeSystem.java │ │ │ ├── enums/ │ │ │ │ ├── GameStatus.java │ │ │ │ └── Symbol.java │ │ │ ├── exceptions/ │ │ │ │ └── InvalidMoveException.java │ │ │ ├── models/ │ │ │ │ ├── Board.java │ │ │ │ ├── Cell.java │ │ │ │ └── Player.java │ │ │ ├── observer/ │ │ │ │ ├── GameObserver.java │ │ │ │ ├── GameSubject.java │ │ │ │ └── Scoreboard.java │ │ │ ├── state/ │ │ │ │ ├── DrawState.java │ │ │ │ ├── GameState.java │ │ │ │ ├── InProgressState.java │ │ │ │ └── WinnerState.java │ │ │ └── strategy/ │ │ │ ├── ColumnWinningStrategy.java │ │ │ ├── DiagonalWinningStrategy.java │ │ │ ├── RowWinningStrategy.java │ │ │ └── WinningStrategy.java │ │ ├── trafficsignalcontrolsystem/ │ │ │ ├── IntersectionController.java │ │ │ ├── README.md │ │ │ ├── TrafficControlSystem.java │ │ │ ├── TrafficLight.java │ │ │ ├── TrafficSystemDemo.java │ │ │ ├── enums/ │ │ │ │ ├── Direction.java │ │ │ │ └── LightColor.java │ │ │ ├── observer/ │ │ │ │ ├── CentralMonitor.java │ │ │ │ └── TrafficObserver.java │ │ │ └── states/ │ │ │ ├── intersection/ │ │ │ │ ├── EastWestGreenState.java │ │ │ │ ├── IntersectionState.java │ │ │ │ └── NorthSouthGreenState.java │ │ │ └── light/ │ │ │ ├── GreenState.java │ │ │ ├── RedState.java │ │ │ ├── SignalState.java │ │ │ └── YellowState.java │ │ ├── vendingmachine/ │ │ │ ├── README.md │ │ │ ├── VendingMachine.java │ │ │ ├── VendingMachineDemo.java │ │ │ ├── entity/ │ │ │ │ ├── Inventory.java │ │ │ │ └── Item.java │ │ │ ├── enums/ │ │ │ │ └── Coin.java │ │ │ └── state/ │ │ │ ├── DispensingState.java │ │ │ ├── HasMoneyState.java │ │ │ ├── IdleState.java │ │ │ ├── ItemSelectedState.java │ │ │ └── VendingMachineState.java │ │ └── votingsystem/ │ │ ├── Candidate.java │ │ ├── README.md │ │ ├── VoteRecord.java │ │ ├── Voter.java │ │ ├── VotingSystem.java │ │ └── VotingSystemDemo.java │ └── test/ │ └── coffeevendingmachine/ │ └── CoffeeVendingMachineTest.java ├── python/ │ ├── .gitignore │ ├── airlinemanagementsystem/ │ │ └── README.md │ ├── atm/ │ │ └── README.md │ ├── carrentalsystem/ │ │ └── README.md │ ├── chessgame/ │ │ └── README.md │ ├── coffeevendingmachine/ │ │ └── README.md │ ├── concertticketbookingsystem/ │ │ └── README.md │ ├── courseregistrationsystem/ │ │ └── README.md │ ├── cricinfo/ │ │ └── README.md │ ├── digitalwalletservice/ │ │ └── README.md │ ├── elevatorsystem/ │ │ └── README.md │ ├── fooddeliveryservice/ │ │ └── README.md │ ├── hotelmanagementsystem/ │ │ └── README.md │ ├── librarymanagementsystem/ │ │ └── README.md │ ├── linkedin/ │ │ └── README.md │ ├── loggingframework/ │ │ └── README.md │ ├── lrucache/ │ │ └── README.md │ ├── movieticketbookingsystem/ │ │ └── README.md │ ├── musicstreamingservice/ │ │ └── README.md │ ├── onlineauctionsystem/ │ │ └── README.md │ ├── onlinestockbrokeragesystem/ │ │ └── README.md │ ├── parkinglot/ │ │ └── README.md │ ├── pubsubsystem/ │ │ └── README.md │ ├── restaurantmanagementsystem/ │ │ └── README.md │ ├── ridesharingservice/ │ │ └── README.md │ ├── snakeandladdergame/ │ │ └── README.md │ ├── socialnetworkingservice/ │ │ └── README.md │ ├── splitwise/ │ │ └── README.md │ ├── stackoverflow/ │ │ └── README.md │ ├── taskmanagementsystem/ │ │ └── README.md │ ├── tictactoe/ │ │ └── README.md │ ├── trafficsignalsystem/ │ │ └── README.md │ ├── vendingmachine/ │ │ └── README.md │ └── votingsystem/ │ └── README.md └── typescript/ ├── .gitignore ├── README.md ├── package.json ├── src/ │ ├── CoffeeVendingMachine/ │ │ ├── CoffeeRecipe.ts │ │ ├── CoffeeVendingMachine.ts │ │ ├── CoffeeVendingMachineDemo.ts │ │ ├── Dispenser.ts │ │ ├── IngredientStore.ts │ │ ├── Payment.ts │ │ ├── PaymentProcessor.ts │ │ └── README.md │ ├── LoggingFramework/ │ │ ├── Appender/ │ │ │ ├── ConsoleLogAppender.ts │ │ │ ├── FileLogAppender.ts │ │ │ └── LogAppender.ts │ │ ├── LogFormatter/ │ │ │ ├── LogFormatter.ts │ │ │ └── SimpleLogFormatter.ts │ │ ├── LogLevel.ts │ │ ├── LogManager.ts │ │ ├── LogMessage.ts │ │ ├── Logger.ts │ │ ├── LoggingFrameworkDemo.ts │ │ └── README.md │ ├── ParkingLot/ │ │ ├── Floor.ts │ │ ├── Main.ts │ │ ├── ParkingLot.ts │ │ ├── Spot.ts │ │ ├── Vehicle.ts │ │ ├── readme.md │ │ └── types.ts │ ├── StackOverflow/ │ │ ├── Answer.ts │ │ ├── Comment.ts │ │ ├── Commentable.ts │ │ ├── Question.ts │ │ ├── README.md │ │ ├── ReputationType.ts │ │ ├── StackOverflow.ts │ │ ├── StackOverflowDemo.ts │ │ ├── Tag.ts │ │ ├── User.ts │ │ ├── Votable.ts │ │ ├── Vote.ts │ │ └── VoteTypeEnum.ts │ ├── TaskManagement/ │ │ ├── ActivityLog.ts │ │ ├── Comment.ts │ │ ├── README.md │ │ ├── SortingStrategy/ │ │ │ ├── SortByDueDate.ts │ │ │ ├── SortByPriority.ts │ │ │ └── TaskSortingStrategy.ts │ │ ├── Task.ts │ │ ├── TaskList.ts │ │ ├── TaskManagementSystem.ts │ │ ├── TaskManagementSystemDemo.ts │ │ ├── TaskPriorityEnum.ts │ │ ├── TaskStatusEnum.ts │ │ └── User.ts │ ├── TrafficSignalSystem/ │ │ ├── Direction.ts │ │ ├── Intersection.ts │ │ ├── README.md │ │ ├── SignalState/ │ │ │ ├── GreenState.ts │ │ │ ├── RedState.ts │ │ │ ├── SignalState.ts │ │ │ └── YellowState.ts │ │ ├── TrafficLight.ts │ │ ├── TrafficSignalController.ts │ │ └── TrafficSignalSystemDemo.ts │ ├── VendingMachine/ │ │ ├── Coin.ts │ │ ├── Inventory.ts │ │ ├── Item.ts │ │ ├── README.md │ │ ├── VendingMachine.ts │ │ ├── VendingMachineDemo.ts │ │ └── VendingMachineState/ │ │ ├── DispensingState.ts │ │ ├── HasMoneyState.ts │ │ ├── IdleState.ts │ │ ├── ItemSelectedState.ts │ │ └── VendingMachineState.ts │ └── lldrunner.ts └── tsconfig.json