====== LU20.A04 - Eventmanager ====== Erstellen Sie die verschiedenen Module (Funktionen, Klassen) für eine kleine Applikation "events", die Ereignisse (Events) mit Start- und Enddatum verwalten kann. Nutzen Sie in den Modulen ''event.py'' und ''management.py'' die entsprechenden Stubs und Tests, um Ihre Lösung zu überprüfen. ===== Allgemeine Infos ===== Die Applikation soll über ein Terminal-Menü verfügen, über das man: * Neue Events erfassen (Titel, Startdatum, Enddatum). * Alle vorhandenen Events anzeigen. * Das Programm beenden kann. ==== Vorlage ==== Im Vorlage-Repository sind alle benötigten Funktionen und Klassen als rudimentäre Stubs realisiert. Diese Stubs liefern – soweit nötig – einen statischen Return-Wert oder lediglich Platzhalter, um das Skript lauffähig zu machen. ==== Vorgehen ==== Implementieren Sie Schritt für Schritt die geforderten Funktionen / Methoden. Testen Sie Ihren Code jeweils mithilfe der beiliegenden Tests. Verwenden Sie dazu den Befehl: pytest -vv Immer wenn neue Testfälle erfolgreich laufen, committen & pushen Sie Ihren Code. ===== Module ===== ==== Modul: event.py ==== === Dataclass - Rental === * Titel (String) * Startdatum (datetime) * Enddatum (datetime) === @property duration() === | Argumente | self | | Rückgabewerte | Die Dauer (in Tagen oder Stunden) (timedelta) | **Logik** Die Dauer des Events verfügbar machen. ==== Modul: management.py ==== === read_date === | Argumente | prompt | | Rückgabewerte | ''datetime''-Objekt | **Logik** Zeigt dem User den ''prompt'' an. Liest ein Datum im Format "dd.mm.yyyy hh:mm" ein. Bei falschem Format wird eine Fehlermeldung ausgegeben und erneut abgefragt. === create_event === | Argumente | keine | | Rückgabewerte | ''Event''-Objekt | **Logik** Fragt den Benutzer nach dem Event-Titel, Startdatum und Enddatum. Erstelt ein ''Event''-Objekt und gibt dieses zurück. === show_events === | Argumente | ''Event''-Objekt-Liste | | Rückgabewerte | keine | **Logik** Gibt eine Liste von Events im Terminal aus (Titel, Startdatum, Enddatum, Dauer). === main === | Argumente | keine | | Rückgabewerte | keine | **Logik** Steuert das Terminal-Menü mit den Optionen "Neuen Event erstellen", "Alle Events anzeigen", "Beenden". Speichert erstellte Events in einer Liste **Userdialog** 1) Create Event 2) Show Events 3) Exit Enter your choice: 1 Enter event title: Semester End Party Enter start date/time (dd.mm.yyyy hh:mm): 12.07.2025 17.00 Invalid date/time format. Please try again. Enter start date/time (dd.mm.yyyy hh:mm): 12.07.2025 17:00 Enter end date/time (dd.mm.yyyy hh:mm): 13.07.2025 01:00 Event "Semester End Party" has been created. 1) Create Event 2) Show Events 3) Exit Enter your choice: 2 List of Events: -------------------------------------------------- Title: Semester End Party Start: 12.07.2025 17:00 End: 13.07.2025 01:00 Duration: 8:00:00 -------------------------------------------------- 1) Create Event 2) Show Events 3) Exit Enter your choice: 3 Exiting the program. Goodbye! ----
//=> GitHub Repo für externe Besucher// GitHub Repository https://github.com/templates-python/m319-lu20-a04-eventmanager //Lernende am BZZ **müssen** den Link zum GitHub Classroom Assignment verwenden//
{{tag>m310-LU20}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Kevin Maurizi