Skip to content

jonasclick/gym-simulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gym Simulation

Dieses Projekt dient als praktisches Lerninstrument für die Java-Backend-Entwicklung mit Fokus auf Software-Architektur und objektorientierte Prinzipien.

Architektur & Konzepte

Das System nutzt moderne Best Practices zur Verwaltung eines Fitnessstudios:

  • Komposition: Gym und Person besitzen eigene BankAccount-Instanzen, was eine flexible Kontoverwaltung ermöglicht.
  • Finanzlogik: Konsequente Nutzung von BigDecimal in der Klasse BankAccount, um Rundungsfehler bei Transaktionen zu vermeiden.
  • Polymorphismus: Eine klare Hierarchie für Mitarbeiter (Trainer, Janitor) mit spezifischen Implementierungen der Arbeitslogik.

Geplante Features

  • Mitgliedermanagement: Verwaltung von Verträgen und automatisiertes Einziehen von Gebühren (chargeMemberships).
  • Personalverwaltung: Abwicklung von Gehaltszahlungen (paySalaries) und Rollenverteilung.
  • Fehlerbehandlung: Implementierung fachspezifischer Exceptions wie InsufficientFundsException.

Tech Stack

  • Sprache: Java.
  • Datenstrukturen: ArrayList zur Verwaltung von Mitgliedern und Mitarbeitern.
  • Design: UML-basiertes Klassendesign.

UML Klassendiagramm

Klassendiagramm

Roadmap

🧱 Core Domain (MUSS rein)

1️⃣ Members • Mitgliedschaftstyp • Eintritt / Austritt • Aktiv / inaktiv • Monatsbeitrag

👉 Basis fuer alles andere.

2️⃣ Gym Assets (realistisch, aber simpel)

Geraete • Name • Typ (Cardio, Kraft, etc.) • Wartungskosten • Kapazitaet (wie viele Personen gleichzeitig)

👉 Keine Detailmodelle, nur Management-Level.

3️⃣ Kurse (nicht Trainingsplaene!)

Warum Kurse? • Standard im Gym • Management-relevant • Einfach modellierbar

Kurs • Name • Uhrzeit • Kapazitaet • Trainer • Kosten

📊 Simulation & Analyse (das ist das USP)

4️⃣ Auslastung (nicht in Echtzeit!) • Peak Hours (z. B. 17–20 Uhr) • Durchschnittliche Auslastung • Kurse beeinflussen Peaks

👉 Simuliert, nicht gemessen.

5️⃣ Finanzielle Simulation • Einnahmen (Members) • Fixkosten (Miete, Personal) • Variable Kosten (Wartung, Kurse)

👉 Monatsweise.

6️⃣ Beantworte damit echte Management-Fragen

App muss diese Fragen beantworten: • Lohnt sich ein neuer Kurs? • Brauche ich mehr Geraete? • Ist mein Gym ueberfuellt zu Peak-Zeiten? • Was passiert, wenn ich Premium teurer mache? • Wann verliere ich Members?

Wenn ein Feature keine dieser Fragen beantwortet → raus.

7️⃣ End-Vision (1 Satz)

„Ich simuliere den Betrieb eines Fitnessstudios auf Management-Ebene und analysiere, wie Entscheidungen die Wirtschaftlichkeit und Auslastung beeinflussen.“

8️⃣ Konkrete Roadmap

Phase 1 – Minimal Vision (2–3 Wochen) • Members • Mitgliedschaften • Monatsabrechnung • GymStatus

Phase 2 – Betrieb • Geraete • Kurse • Kosten

Phase 3 – Simulation • Peak Hours • Auslastung • Szenarien („Was waere wenn?“)

About

Java project to simulate the daily business of a gym.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages