How strusiatgonzalo/tp-integrador-ecommerce-poo2 works
This is a framework-free e-commerce domain model, not a deployed web application: the README explicitly says it has no persistence or GUI. Its core workflow is to compose/search catalog items, build and confirm an order, then progress it through fulfillment; payment, shipping, observer notifications, and sales reporting are supporting capabilities. The README documents catalog composition and order-state behavior; other subsystem links reflect sampled source only, so unsampled wiring is left out.
Main entry points: Order.java Order · Draft.java Draft state · CatalogItem.java Catalog item · ProductSalesReportGenerator.java Sales report generator
Components 25
Catalog
- Catalog item
src/ecommerce/catalog/CatalogItem.java - Product
src/ecommerce/catalog/Product.java - Bundle
src/ecommerce/catalog/Bundle.java - Dynamic attributes
src/ecommerce/catalog/Attribute.java - Catalog search
src/ecommerce/catalog/search/Catalog.java - Search criteria
src/ecommerce/catalog/search/SearchCriteria.java - Criteria combinators
src/ecommerce/catalog/search/AndCriteria.java
Order lifecycle
- Order
src/ecommerce/catalog/lifecycle/Order.java - Order item
src/ecommerce/catalog/lifecycle/OrderItem.java - Order states
src/ecommerce/catalog/lifecycle/State.java - Draft state
src/ecommerce/catalog/lifecycle/Draft.java
Payment and shipping
- Payment workflow
src/ecommerce/catalog/lifecycle/paymentmethods/PaymentMethod.java - Payment adapters
src/ecommerce/catalog/lifecycle/paymentmethods/VirtualWalletPayment.java - Payment APIs
src/ecommerce/catalog/lifecycle/paymentmethods/VirtualWalletAPI.java - Payment receipt
src/ecommerce/catalog/lifecycle/paymentmethods/PaymentReceipt.java - Shipping methods
src/ecommerce/catalog/lifecycle/shippingmethods/ShippingType.java - Shipping APIs
src/ecommerce/catalog/lifecycle/shippingmethods/ExpressShippingAPI.java
Notifications and reports
- Order observers
src/ecommerce/catalog/lifecycle/notifications/OrderObserver.java - Invoice generator
src/ecommerce/catalog/lifecycle/notifications/InvoiceGenerator.java - Invoice
src/ecommerce/catalog/lifecycle/notifications/Invoice.java - Sales report generator
src/ecommerce/catalog/reports/ProductSalesReportGenerator.java - Sales report
src/ecommerce/catalog/reports/ProductSalesReport.java - Report exporters
src/ecommerce/catalog/reports/CsvExporter.java - Report visitor
src/ecommerce/catalog/reports/ReportVisitor.java - Sales entries
src/ecommerce/catalog/reports/SalesEntry.java
Connections 21
- Product → Catalog item: implements
- Bundle → Catalog item: implements
- Product → Dynamic attributes: stores
- Bundle → Catalog item: contains items
- Criteria combinators → Search criteria: evaluates
- Order → Order states: delegates operations
- Order states → Draft state: specializes
- Draft state → Order: adds order items
- Order → Order item: stores items
- Order → Payment workflow: processes payment
- Draft state → Payment workflow: processes confirmation
- Draft state → Catalog item: checks and decrements stock
- Payment workflow → Payment receipt: creates
- Payment adapters → Payment APIs: calls
- Order → Shipping methods: calculates shipping
- Shipping APIs → Shipping methods
- Order → Order observers: dispatches notifications
- Invoice generator → Invoice: creates on final notice
- Sales report generator → Order: reads order items
- Sales report generator → Sales entries: creates entries
- Sales report generator → Sales report: returns report