docs: Erstellung des Projekt-Logbuchs
This commit is contained in:
parent
125bea954c
commit
cebda0838b
71
docs/logbuch.md
Normal file
71
docs/logbuch.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Logbuch: Baseball Organisator
|
||||||
|
|
||||||
|
Dieses Logbuch dient dazu, den Entwicklungsfortschritt und die getroffenen Entscheidungen während der Erstellung der "Baseball Organisator"-App festzuhalten.
|
||||||
|
|
||||||
|
## Phase 1: Projektvorbereitung und Basiskonfiguration
|
||||||
|
|
||||||
|
**Ziel:** Schaffung einer sauberen Arbeitsumgebung und Initialisierung des Django-Projekts.
|
||||||
|
|
||||||
|
- **Projektverzeichnis:** Das Projekt wurde im Verzeichnis `baseball_organisator` initialisiert.
|
||||||
|
- **Virtuelle Umgebung:** Eine virtuelle Python-Umgebung wurde im Verzeichnis `venv` erstellt, um die Projektabhängigkeiten zu isolieren.
|
||||||
|
- **Django-Installation:** Django und `mysqlclient` wurden als Abhängigkeiten installiert.
|
||||||
|
- **Django-Projekt:** Ein neues Django-Projekt namens `baseball_organisator` wurde erstellt.
|
||||||
|
- **Django-Apps:** Die grundlegenden Apps `accounts`, `clubs`, `calendars` und `dashboard` wurden erstellt.
|
||||||
|
- **URL-Konfiguration:** Die URLs der neuen Apps wurden in der Haupt-`urls.py` des Projekts registriert.
|
||||||
|
- **Datenbank:** Die Datenbank wurde für die Entwicklung auf `sqlite3` konfiguriert.
|
||||||
|
- **Git-Initialisierung:** Ein Git-Repository wurde initialisiert und der initiale Stand des Projekts wurde committed.
|
||||||
|
|
||||||
|
## Phase 2: Benutzer- und Rollenmodell
|
||||||
|
|
||||||
|
**Ziel:** Erstellung der Benutzerprofile und Definition der verschiedenen Rollen.
|
||||||
|
|
||||||
|
- **Benutzerdefiniertes User-Modell:** Ein `CustomUser`-Modell wurde in der `accounts`-App erstellt, das von `AbstractUser` erbt. Es wurden Felder für `birth_date` und `player_number` hinzugefügt.
|
||||||
|
- **Einladungscode-Modell:** Ein `InvitationCode`-Modell wurde erstellt, um die Registrierung neuer Benutzer über Einladungscodes zu steuern.
|
||||||
|
- **Registrierungslogik:** Die Logik für die Registrierung mittels Einladungscode wurde implementiert, einschließlich der entsprechenden Formulare, Ansichten und Vorlagen.
|
||||||
|
- **Datumsformat:** Das Format für das Geburtsdatumsfeld wurde auf `dd.mm.YYYY` angepasst.
|
||||||
|
|
||||||
|
## Phase 3: Organisationsstruktur
|
||||||
|
|
||||||
|
**Ziel:** Erstellung der Modelle für Clubs, Mannschaften und Teams.
|
||||||
|
|
||||||
|
- **Club- und Team-Modelle:** Die Modelle `Club` und `Team` wurden in der `clubs`-App erstellt.
|
||||||
|
- **Beziehungen:** Beziehungen zwischen `User`, `Club` und `Team` wurden definiert, um Administratoren, Trainer und Spieler zuzuordnen.
|
||||||
|
- **Admin-Interface:** Die neuen Modelle wurden im Django-Admin-Bereich registriert, um die Verwaltung zu erleichtern.
|
||||||
|
- **Profilbearbeitung:** Eine Ansicht zum Bearbeiten des eigenen Benutzerprofils wurde hinzugefügt.
|
||||||
|
|
||||||
|
## Phase 4: Terminverwaltung und Google Maps API
|
||||||
|
|
||||||
|
**Ziel:** Implementierung der Kalenderfunktionalität.
|
||||||
|
|
||||||
|
- **Termin-Modelle:** Ein Basis-`Event`-Modell wurde erstellt, von dem die Modelle `Training` und `Game` erben (Multi-Table-Inheritance).
|
||||||
|
- **Spiel-Logik:** Das `Game`-Modell wurde um Felder wie `opponent`, `meeting_minutes_before_game` und `season` erweitert. Ein `GameResult`-Modell wurde zur Speicherung von Ergebnissen erstellt.
|
||||||
|
- **Google Maps Integration:** Eine einfache Logik zur Erstellung von Google Maps-Links aus Adressen wurde implementiert.
|
||||||
|
- **Dashboard-Ansicht:** Die Dashboard-Ansicht wurde entwickelt, um Termine basierend auf der Benutzerrolle anzuzeigen.
|
||||||
|
- **Zugriffsrechte für Trainer:** Ansichten zum Erstellen, Bearbeiten und Löschen von Terminen wurden für Trainer implementiert.
|
||||||
|
|
||||||
|
## Phase 5: Fortgeschrittene Funktionen und Backend
|
||||||
|
|
||||||
|
**Ziel:** Implementierung komplexerer Features.
|
||||||
|
|
||||||
|
- **Spielererstellung durch Headcoaches:** Ein Workflow wurde implementiert, der es Headcoaches ermöglicht, neue Spieler anzulegen und Einladungscodes für sie und ihre Eltern zu generieren.
|
||||||
|
- **Abwesenheitsfunktion:** Ein `AbsencePeriod`-Modell wurde erstellt. Eine Signal-basierte Logik sorgt dafür, dass die Teilnahme an Terminen während dieser Periode automatisch auf "abgelehnt" gesetzt wird.
|
||||||
|
- **Admin-Zugriffsbeschränkung:** Der Zugriff auf den Django-Admin-Bereich wurde auf Superuser und Club-Admins beschränkt.
|
||||||
|
- **Eltern-Kind-Beziehung:** Das `CustomUser`-Modell wurde um eine `parents`-Beziehung erweitert, um Eltern mit ihren Kindern zu verknüpfen.
|
||||||
|
|
||||||
|
## Phase 6: Frontend und finale Anpassungen
|
||||||
|
|
||||||
|
**Ziel:** Optimierung des Layouts und der Leistung.
|
||||||
|
|
||||||
|
- **Bootstrap-Integration:** Das Frontend wurde mit dem Bootstrap-Framework neu gestaltet, um ein modernes und responsives Layout zu gewährleisten.
|
||||||
|
- **Statische Dateien:** Die Verwaltung von statischen Dateien (CSS, JS) wurde konfiguriert.
|
||||||
|
- **Performance-Optimierung:** Der Signal-Handler für Abwesenheitsperioden wurde optimiert, um die Anzahl der Datenbankabfragen zu reduzieren.
|
||||||
|
- **MySQL-Vorbereitung:** Die `settings.py` wurde um eine auskommentierte MySQL-Konfiguration für die spätere Bereitstellung erweitert.
|
||||||
|
|
||||||
|
## Zusätzliche Anpassungen
|
||||||
|
|
||||||
|
- **Eltern-Funktionalität:** Eltern können jetzt auf dem Dashboard die Termine ihrer Kinder sehen und für diese zu- oder absagen.
|
||||||
|
- **Anzeige der Spieler-Teilnahme:** Trainer sehen auf dem Dashboard, welche Spieler für einen Termin zu- oder abgesagt haben. Die Namen werden farblich markiert.
|
||||||
|
- **"Spiel öffnen"-Funktionalität:** Headcoaches können Spiele, bei denen nicht genügend Spieler zugesagt haben, für andere Teams des Clubs öffnen. Diese "Unterstützer-Spiele" werden auf dem Dashboard entsprechend hervorgehoben.
|
||||||
|
- **Verbesserte Benutzersuche:** Bei der Erstellung eines Spielers wurde die Auswahl von Elternteilen durch ein Autocomplete-Suchfeld verbessert.
|
||||||
|
- **Lokalisierung:** Das Datumsformat auf dem Dashboard wurde auf das deutsche Format umgestellt.
|
||||||
|
- **Fehlerbehebungen:** Diverse Fehler im Zusammenhang mit Importen, Template-Syntax und Datenbank-Inkonsistenzen wurden behoben.
|
||||||
Loading…
x
Reference in New Issue
Block a user