Skip to content

Antani46/PortobelloProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Portobello Manager - OOP Final Project

Project Overview

Portobello Manager is a Java console application for managing a second-hand store inventory. Items are organized in a hierarchical catalog (categories and products), with total price calculation and export to a text file.

Features

  • Hierarchical Organization: Products and nested categories (Composite Pattern).
  • Total Calculation: Recursive price sum for any category.
  • Input Validation: Custom checked exceptions for invalid data (e.g. negative prices).
  • Pricing Strategies: Full price or percentage discount on products (Strategy Pattern).
  • Data Export: Catalog export via Singleton DataService to export_catalogo.txt.

Design Patterns

  1. CompositeCatalogItem, Product, Category
  2. FactoryCatalogFactory
  3. IteratorStoreIterator (DFS on the catalog tree)
  4. SingletonDataService
  5. StrategyPricingStrategy, RegularPrice, PercentageDiscount

Technologies

  • Java SE 17
  • Maven
  • SLF4J / Logback
  • JUnit 5

Setup and Execution

Requires JDK 17 and Maven.

mvn clean install
mvn test

Run Main from the IDE or:

mvn exec:java -Dexec.mainClass="it.portobello.Main"

UML Diagrams

Class Diagram Architecture Diagram

About

A Java SE application for managing a hierarchical store inventory using Composite, Factory, and Iterator patterns. Final Project for OOP Exam

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages