Skip to content

TinCin/CoffeeMachine-JavaProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☕ Projekt Ekspresu do Kawy / Coffee Machine Project

📚 Opis (PL)

Projekt polega na stworzeniu aplikacji symulującej działanie ekspresu do kawy. Został napisany w języku Java i zawiera różne klasy, metody oraz logikę biznesową umożliwiającą:

  • wybór rodzaju i wielkości kawy,
  • zarządzanie poziomem wody i mleka,
  • obsługę wielu modeli ekspresów,
  • prowadzenie historii przygotowanych napojów,
  • analizę zużycia zasobów i preferencji użytkownika.

✅ Funkcjonalności:

  • 5 rodzajów kawy: espresso, cappuccino, latte, americano, flatWhite
  • 3 rozmiary kawy: small, medium, large
  • Obsługa poziomu wody (litry) i mleka (mililitry)
  • Walidacja wprowadzanych danych (np. brak zasobów, przekroczenie zakresu)
  • Funkcja makeCoffee() – symulacja parzenia kawy z zasobami
  • Funkcja showStatus() – aktualny stan ekspresu
  • Historia 30 ostatnich przygotowanych kaw (getRecentCoffeeHistory())
  • Analiza danych (analyse()) – np. ulubiona kawa, zużycie zasobów
  • Klasy ekspresów:
    • DeliciousCoffee
    • QuickBrew – zmiana jednostek (litry/ml ↔ pinty), dodatkowy typ kawy
    • EliteEspresso – większy zbiornik, podgrzewanie kubka, ziarenka kawy

📁 Struktura projektu

  • CoffeeMachine.java – klasa bazowa
  • DeliciousCoffee.java, CoffeeHistoryEntry, QuickBrew.java, EliteEspresso.java – klasy dziedziczące
  • Main.java – testy funkcjonalności

🧪 Jak uruchomić

  1. Sklonuj repozytorium: git clone https://github.com/TinCin/coffee-machine.git
  2. cd coffee-machine-java
  3. Otwórz projekt w dowolnym IDE (np. IntelliJ IDEA)
  4. Uruchom Main.java, aby przetestować działanie programu

🌍 Description (EN)

The goal of this project is to simulate a coffee machine using Java. The application includes various classes, methods, and business logic that allow:

  • selection of coffee type and size,
  • management of water and milk levels,
  • support for multiple coffee machine models,
  • tracking of previously made coffees,
  • usage analysis and user preferences.

✅ Features:

  • 5 coffee types: espresso, cappuccino, latte, americano, flatWhite
  • 3 sizes: small, medium, large
  • Water and milk tank management (liters and milliliters)
  • Input validation (e.g., resource limits, empty tanks)
  • makeCoffee() – simulates brewing based on available resources
  • showStatus() – displays current machine status
  • Tracks last 30 coffees (getRecentCoffeeHistory())
  • analyse() – analyzes coffee usage (favorite coffee, resource usage, etc.)
  • Coffee machine subclasses:
    • DeliciousCoffee
    • QuickBrew – switches units (liters/ml ↔ pints), adds extra coffee type
    • EliteEspresso – extended water tank, cup preheating, bean tracking

📁 Project structure

  • CoffeeMachine.java – base class
  • DeliciousCoffee.java, CoffeeHistoryEntry, QuickBrew.java, EliteEspresso.java – subclasses
  • Main.java – test examples and demonstration

🧪 How to run

  1. Clone the repository:
git clone https://github.com/TinCin/coffee-machine.git
  2. cd coffee-machine-java
  3. Open the project in your preferred IDE (e.g. IntelliJ IDEA)
  4. Run Main.java to test the program

About

Projekt Ekspresu do Kawy / Java project simulating a Coffee Machine (lab assignment)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages