🎓 Academic Project: Fundamental Object-Oriented Programming assignment developed for the 1st year of Web Application Development (DAW) at STUCOM Pelai (Barcelona).
A console-based inventory management and point-of-sale store application developed in Java. It demonstrates essential OOP principles including data encapsulation, collection processing with ArrayList, financial operations with an Amount value object, and product sales recording.
classDiagram
class Shop {
-Amount cash
-ArrayList~Product~ inventory
-ArrayList~Sale~ sales
+main(args) void
+loadInventory() void
+showCash() void
+addProduct() void
+addStock() void
+setExpired() void
+showInventory() void
+sale() void
+showSales() void
}
class Product {
-String name
-Amount publicPrice
-Amount wholesalerPrice
-boolean available
-int stock
+expire() void
}
class Sale {
-Client client
-ArrayList~Product~ products
-Amount amount
}
class Amount {
-double value
-String currency
+getValue() double
}
Shop "1" *-- "many" Product : manages
Shop "1" *-- "many" Sale : records
Sale "1" o-- "many" Product : contains
Product "1" *-- "2" Amount : prices
- 💰 Cash Register Balance: Real-time visibility of current cash liquidity.
- 📦 Add Product: Register new merchandise into the store inventory.
- 📈 Stock Replenishment: Increment units for existing stock items.
⚠️ Product Expiration: Mark perishable items as expired.- 📋 Inventory Audit: Full listing of catalog items, quantities, and prices.
- 💳 Sales Processing: Process customer purchases and record revenue.
- 🧾 Sales History: Comprehensive ledger of past sales and orders.
# Clone the repository
git clone https://github.com/Ignaciobrenas/SHOP.git
# Run via NetBeans IDE or compile directly with Java
javac -d bin src/main/*.java src/model/*.java
java -cp bin main.ShopIgnacio Breñas Muñoz — 1º DAW, STUCOM Pelai