Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Um Anfragen zu autorisieren, muss jeder Request einen gültigen CSRF-Token entha
| `get_dashboard_stats` | Liefert aggregierte Daten (Bürger, Städte, Fahrzeuge, Energie). | - |
| `get_active_vehicles_count` | Gibt die Anzahl der aktuell aktiven Fahrzeuge zurück. | - |
| `get_citizens_count` | Gibt die Gesamtzahl der Bürger zurück. | - |
| `get_sql_result` | Führt eine spezifische SQL-Datei aus dem `/sql` Ordner aus. | `file` (Dateiname) |
| `get_sql_result` | Führt eine spezifische SQL-Datei nach bestehender API-Logik aus. | `file` (Dateiname, z.B. `getCitizensCount.sql`) |
| `get_all_tables` | Gibt alle SQL-Abfrageergebnisse inkl. des SQL-Quellcodes zurück. | - |
| `get_sql_files` | Listet den Inhalt aller verfügbaren SQL-Dateien auf. | - |

Expand Down
2 changes: 1 addition & 1 deletion documentation/APs/AP10-Revision-Use-Cases.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Für AP10 bedeutet das: Die Use Cases werden nicht mehr aus allen vorhandenen Pr
| Use Case | Konkrete Handlung eines Nutzers mit dem System innerhalb eines Businessprozesses. |
| SQL-Query / Stored Procedure | Technische Unterstützung, um Daten für einen Use Case bereitzustellen. |

Wichtig: SQL-Queries sind keine eigenen Use Cases. Eine SQL-Datei wie `getRessourcesBelowMin.sql` ist also nicht der Use Case selbst, sondern unterstützt den Use Case „Kritische Ressourcen anzeigen“ technisch.
Wichtig: SQL-Queries sind keine eigenen Use Cases. Eine SQL-Datei wie `sql/queries/bp1/getRessourcesBelowMin.sql` ist also nicht der Use Case selbst, sondern unterstützt den Use Case „Kritische Ressourcen anzeigen“ technisch.

Beispiel:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ Relevante Datenbankaufgaben:
| interne Verfügbarkeit prüfen | Lager oder Produktion auswerten |
| Bestand aktualisieren | neue Werte speichern |

Konkret umgesetzte Stored Procedures für BP1:

| Stored Procedure | Prozessschritt | Ergebnis |
|---|---|---|
| `sql/storedProcedure/bp1/getRessourcesBelowMin.sql` | Mindestbestand vergleichen | zeigt kritische Ressourcen inklusive Fehlmenge und Handlungspriorität |
| `sql/storedProcedure/bp1/getRessourcesAtRisk.sql` | Ablaufdatum prüfen | zeigt abgelaufene oder bald ablaufende Ressourcen mit empfohlener Maßnahme |
| `sql/storedProcedure/bp1/getNachschubanforderungen.sql` | Bedarf berechnen und interne Verfügbarkeit prüfen | erstellt eine fachliche Nachschubliste mit Anforderungsmenge, Grund und Maßnahme |

---

## Bezug zur Webanwendung
Expand Down Expand Up @@ -96,9 +104,9 @@ Der Prozess ist fachlich sinnvoll, wirtschaftlich relevant und gut für eine dat

| Punkt | Status |
|---|---|
| Feedback von Prof. Dr. Becking einarbeiten | in Bearbeitung |
| SQL-Abfragen konkret zuordnen | offen |
| Stored Procedures planen | offen |
| Feedback von Prof. Dr. Becking einarbeiten | erledigt |
| SQL-Abfragen konkret zuordnen | erledigt |
| Stored Procedures planen | erledigt |
| BPMN-Modell final prüfen | offen |
| BPMN-Grafik in Projektdokumentation einfügen | vorbereitet |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,14 @@ Relevante Datenbankaufgaben:
| Sicherheitsreserve berücksichtigen | interne Versorgung nicht gefährden |
| Verkaufspotenzial vorbereiten | wirtschaftliche Entscheidung fachlich unterstützen |

Konkret umgesetzte Stored Procedures für BP2:

| Stored Procedure | Prozessschritt | Ergebnis |
|---|---|---|
| `sql/storedProcedure/bp2/getRessourcenUeberschuss.sql` | Überschuss erkennen und Sicherheitsreserve prüfen | zeigt verkaufbare Mengen mit 7-Sol-Sicherheitspuffer und Überschuss-Status |
| `sql/storedProcedure/bp2/getVerkaufspotenzial.sql` | Verkaufspotenzial bewerten | verbindet berechnete Überschüsse mit vorhandenen Überschussbewertungen und empfohlener Maßnahme |
| `sql/storedProcedure/bp2/getExterneAbgabeVorbereitung.sql` | externe Abgabe vorbereiten | zeigt vorbereitete Verkäufe mit Unternehmen, Positionen, Werten und Abgabe-Status |

---

## Bezug zur Webanwendung
Expand Down Expand Up @@ -99,9 +107,9 @@ Der Prozess ist fachlich sinnvoll, weil er den wirtschaftlichen Nutzen der Marsk
|---|---|
| BPMN-Modell erstellen | offen |
| BPMN-Grafik in Projektdokumentation einfügen | offen |
| SQL-Abfragen konkret zuordnen | offen |
| Prüfen, ob spätere Verkaufstabellen benötigt werden | offen |
| Feedback von Prof. Dr. Becking einarbeiten | offen |
| SQL-Abfragen konkret zuordnen | erledigt |
| Prüfen, ob spätere Verkaufstabellen benötigt werden | erledigt |
| Feedback von Prof. Dr. Becking einarbeiten | erledigt |

---

Expand Down
32 changes: 16 additions & 16 deletions documentation/APs/AP4-Auswahl-Case-Study.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Damit ist die Case Study fachlich passend für ein Datenbankanwendungsprojekt, w

| Geschäftsbereich | Bedeutung in der Marskolonie | Bezug zur aktuellen Repo |
|---|---|---|
| Ressourcenmanagement | Kontrolle von Sauerstoff, Wasser, Treibstoff, Nahrung, Ersatzteilen und Baumaterialien | `getRessourcenWithLager.sql`, `getRessourcesBelowMin.sql`, `getRessourcesAtRisk.sql`, `getRessourceLog.sql` |
| Lagerverwaltung | Überwachung von Lagerorten, Kapazitäten und kritischen Beständen | `getAllLager.sql`, `getStorageResourceSummary.sql`, `getLagerVersorgungAtRisk.sql` |
| Transportlogistik | Planung und Kontrolle von Transportwegen zwischen Städten/Sektoren | `getMissionsBericht.sql`, `getCitiesWithoutTransportConnection.sql` |
| Flottenmanagement | Kontrolle aktiver/inaktiver Fahrzeuge und Raumfahrzeuge | `getActiveVehicles.sql`, `getFlotte.sql`, `getVehiclesByStatus.sql`, `getLowTreibstoff.sql` |
| Energieversorgung | Überwachung aktueller Energieerzeugung und Versorgungslücken | `getCurrentEnergieLeistung.sql`, `getEnergySourcesByCity.sql`, `getCitiesWithoutEnergySource.sql` |
| Stadtverwaltung | Verwaltung von Städten, Koordinaten, Einwohnerzahlen und Infrastruktur | `getCitiesWithStats.sql`, `getCitiesWithKoords.sql`, `getCitiesCount.sql` |
| Bewohnerverwaltung | Verwaltung der Koloniebewohner und ihrer Zuordnung zu Städten/Adressen | `getAllCitizens.sql`, `getAllCitizensByName.sql`, `getBewohnerAtAddress.sql`, `getResidentCountByAddress.sql` |
| Personalverwaltung | Verwaltung von Mitarbeitern, Rollen, Berufen, Abteilungen und Gehältern | `getAllEmployees.sql`, `getEmployeeProfile.sql`, `getMitarbeiterRolle.sql`, `getMitarbeiterByBeruf.sql`, `getAvgWorkTimeByBeruf.sql` |
| Abteilungs- und Ressourcenabhängigkeit | Analyse, welche Abteilungen von welchen Ressourcen abhängig sind | `getDepartmentResourceDependencies.sql`, `getDepartmentsWithLeaders.sql`, `getEmployeeCountByDepartment.sql` |
| Ressourcenmanagement | Kontrolle von Sauerstoff, Wasser, Treibstoff, Nahrung, Ersatzteilen und Baumaterialien | `sql/queries/shared/getRessourcenWithLager.sql`, `sql/queries/bp1/getRessourcesBelowMin.sql`, `sql/queries/bp1/getRessourcesAtRisk.sql`, `sql/queries/general/getRessourceLog.sql` |
| Lagerverwaltung | Überwachung von Lagerorten, Kapazitäten und kritischen Beständen | `sql/queries/general/getAllLager.sql`, `sql/queries/shared/getStorageResourceSummary.sql`, `sql/queries/general/getLagerVersorgungAtRisk.sql` |
| Transportlogistik | Planung und Kontrolle von Transportwegen zwischen Städten/Sektoren | `sql/queries/general/getMissionsBericht.sql`, `sql/queries/general/getCitiesWithoutTransportConnection.sql` |
| Flottenmanagement | Kontrolle aktiver/inaktiver Fahrzeuge und Raumfahrzeuge | `sql/queries/general/getActiveVehicles.sql`, `sql/queries/general/getFlotte.sql`, `sql/queries/general/getVehiclesByStatus.sql`, `sql/queries/general/getLowTreibstoff.sql` |
| Energieversorgung | Überwachung aktueller Energieerzeugung und Versorgungslücken | `sql/queries/general/getCurrentEnergieLeistung.sql`, `sql/queries/general/getEnergySourcesByCity.sql`, `sql/queries/general/getCitiesWithoutEnergySource.sql` |
| Stadtverwaltung | Verwaltung von Städten, Koordinaten, Einwohnerzahlen und Infrastruktur | `sql/queries/general/getCitiesWithStats.sql`, `sql/queries/general/getCitiesWithKoords.sql`, `sql/queries/general/getCitiesCount.sql` |
| Bewohnerverwaltung | Verwaltung der Koloniebewohner und ihrer Zuordnung zu Städten/Adressen | `sql/queries/general/getAllCitizens.sql`, `sql/queries/general/getAllCitizensByName.sql`, `sql/queries/general/getBewohnerAtAddress.sql`, `sql/queries/general/getResidentCountByAddress.sql` |
| Personalverwaltung | Verwaltung von Mitarbeitern, Rollen, Berufen, Abteilungen und Gehältern | `sql/queries/general/getAllEmployees.sql`, `sql/queries/general/getEmployeeProfile.sql`, `sql/queries/general/getMitarbeiterRolle.sql`, `sql/queries/general/getMitarbeiterByBeruf.sql`, `sql/queries/general/getAvgWorkTimeByBeruf.sql` |
| Abteilungs- und Ressourcenabhängigkeit | Analyse, welche Abteilungen von welchen Ressourcen abhängig sind | `sql/queries/general/getDepartmentResourceDependencies.sql`, `sql/queries/general/getDepartmentsWithLeaders.sql`, `sql/queries/general/getEmployeeCountByDepartment.sql` |

## Geschäftsmodell

Expand Down Expand Up @@ -71,7 +71,7 @@ Die folgenden Use Cases leiten sich aus der Case Study und den vorhandenen SQL-A
|---|---|
| Primärer Akteur | Logistikoffizier |
| Ziel | Kritische Ressourcen frühzeitig erkennen |
| Repo-Bezug | `getRessourcesBelowMin.sql`, `getRessourcenWithLager.sql`, `getStorageResourceSummary.sql` |
| Repo-Bezug | `sql/queries/bp1/getRessourcesBelowMin.sql`, `sql/queries/shared/getRessourcenWithLager.sql`, `sql/queries/shared/getStorageResourceSummary.sql` |
| WebApp-Bezug | `Ressources` |
| Wirtschaftlicher Nutzen | Vermeidung von Notfalllieferungen und Produktionsausfällen |

Expand Down Expand Up @@ -99,7 +99,7 @@ Das System zeigt alle Ressourcen an, deren Bestand kritisch ist. Dadurch kann di
|---|---|
| Primärer Akteur | Infrastrukturmanager |
| Ziel | Lager und Energiequellen auf Risiko prüfen |
| Repo-Bezug | `getLagerVersorgungAtRisk.sql`, `getCurrentEnergieLeistung.sql`, `getEnergySourcesByCity.sql`, `getCitiesWithoutEnergySource.sql` |
| Repo-Bezug | `sql/queries/general/getLagerVersorgungAtRisk.sql`, `sql/queries/general/getCurrentEnergieLeistung.sql`, `sql/queries/general/getEnergySourcesByCity.sql`, `sql/queries/general/getCitiesWithoutEnergySource.sql` |
| WebApp-Bezug | `Overview`, `Cities`, `Ressources` |
| Wirtschaftlicher Nutzen | Schutz kritischer Infrastruktur und Vermeidung teurer Ausfälle |

Expand Down Expand Up @@ -127,7 +127,7 @@ Kritische Infrastruktur wird sichtbar. Das reduziert das Risiko, dass Lager, St
|---|---|
| Primärer Akteur | Flottenmanager |
| Ziel | Einsatzbereitschaft von Fahrzeugen und Raumfahrzeugen prüfen |
| Repo-Bezug | `getActiveVehicles.sql`, `getFlotte.sql`, `getVehiclesByStatus.sql`, `getLowTreibstoff.sql` |
| Repo-Bezug | `sql/queries/general/getActiveVehicles.sql`, `sql/queries/general/getFlotte.sql`, `sql/queries/general/getVehiclesByStatus.sql`, `sql/queries/general/getLowTreibstoff.sql` |
| WebApp-Bezug | `Vehicles` |
| Wirtschaftlicher Nutzen | bessere Fahrzeugauslastung, weniger Leerlauf, geringere Missionskosten |

Expand Down Expand Up @@ -156,7 +156,7 @@ Die Kolonie erkennt, welche Fahrzeuge einsatzbereit sind und welche nicht. Missi
|---|---|
| Primärer Akteur | Missionsplaner |
| Ziel | Laufende und abgeschlossene Transporte nachvollziehen |
| Repo-Bezug | `getMissionsBericht.sql`, `getCitiesWithoutTransportConnection.sql`, `getRessourceLog.sql` |
| Repo-Bezug | `sql/queries/general/getMissionsBericht.sql`, `sql/queries/general/getCitiesWithoutTransportConnection.sql`, `sql/queries/general/getRessourceLog.sql` |
| WebApp-Bezug | `Overview`, später mögliche Seite `Missions` |
| Wirtschaftlicher Nutzen | geringere Transportkosten und bessere Versorgungssicherheit |

Expand Down Expand Up @@ -184,7 +184,7 @@ Transporte werden nachvollziehbar. Städte ohne Verbindung werden erkannt. Dadur
|---|---|
| Primärer Akteur | Kolonieverwaltung |
| Ziel | Städte, Bewohnerzahlen und Adressdaten verwalten |
| Repo-Bezug | `getCitiesWithStats.sql`, `getCitiesWithKoords.sql`, `getCitizensCount.sql`, `getAllCitizens.sql`, `getBewohnerAtAddress.sql`, `getResidentCountByAddress.sql` |
| Repo-Bezug | `sql/queries/general/getCitiesWithStats.sql`, `sql/queries/general/getCitiesWithKoords.sql`, `sql/queries/general/getCitizensCount.sql`, `sql/queries/general/getAllCitizens.sql`, `sql/queries/general/getBewohnerAtAddress.sql`, `sql/queries/general/getResidentCountByAddress.sql` |
| WebApp-Bezug | `Cities`, `Citizens`, `city/:name` |
| Wirtschaftlicher Nutzen | bessere Ressourcenverteilung pro Stadt und Bevölkerungsgruppe |

Expand Down Expand Up @@ -212,7 +212,7 @@ Die Kolonie erkennt, wo viele Bewohner leben und welche Städte besondere Versor
|---|---|
| Primärer Akteur | Personalverwaltung |
| Ziel | Mitarbeiter, Rollen, Berufe und Abteilungen auswerten |
| Repo-Bezug | `getAllEmployees.sql`, `getEmployeeProfile.sql`, `getMitarbeiterRolle.sql`, `getMitarbeiterByBeruf.sql`, `getAvgWorkTimeByBeruf.sql`, `getDepartmentsWithLeaders.sql`, `getEmployeeCountByDepartment.sql` |
| Repo-Bezug | `sql/queries/general/getAllEmployees.sql`, `sql/queries/general/getEmployeeProfile.sql`, `sql/queries/general/getMitarbeiterRolle.sql`, `sql/queries/general/getMitarbeiterByBeruf.sql`, `sql/queries/general/getAvgWorkTimeByBeruf.sql`, `sql/queries/general/getDepartmentsWithLeaders.sql`, `sql/queries/general/getEmployeeCountByDepartment.sql` |
| WebApp-Bezug | `Employees` |
| Wirtschaftlicher Nutzen | effizientere Personalplanung und geringere Fehlbesetzung |

Expand Down Expand Up @@ -240,7 +240,7 @@ Personal wird nicht isoliert betrachtet, sondern als Teil der Kolonie-Logistik.
|---|---|
| Primärer Akteur | Betriebsleitung |
| Ziel | Erkennen, welche Abteilungen von welchen Ressourcen abhängig sind |
| Repo-Bezug | `getDepartmentResourceDependencies.sql` |
| Repo-Bezug | `sql/queries/general/getDepartmentResourceDependencies.sql` |
| WebApp-Bezug | später `Departments` oder Dashboard-Erweiterung |
| Wirtschaftlicher Nutzen | bessere Priorisierung knapper Ressourcen |

Expand Down
4 changes: 2 additions & 2 deletions documentation/APs/AP8-Auswahl-DBMS-Infrastruktur-Prototyp.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ Diese Datei ist eine vorläufige Zuarbeit für Tom Coombs / CyZeTLC. Sie fasst z
| Server / Hosting | In der Spezifikation wird ein VPS als Serverbetrieb genannt. In der WebApp sind produktionsnahe API-URLs zu einer externen Domain sichtbar. | Der genaue Servertyp und Anbieter sind im Repository nicht vollständig dokumentiert. | Hosting-Anbieter, VPS-Konfiguration und Betriebsumgebung ergänzen. |
| API-Anbindung | Eine PHP-API im Ordner `api/` ist vorhanden. Sie liefert JSON-Antworten und nutzt CSRF-Schutz. | Die API lädt SQL-Dateien und führt sie über eine serverseitige Datenbankverbindung aus. | Finale Beschreibung der API-Struktur und produktiven Pfade bestätigen. |
| WebApp-Anbindung | Die WebApp ist als React/TypeScript/Vite-Anwendung aufgebaut. Sie ruft Daten über serverseitige API-Funktionen ab. | Seiten wie Dashboard, Ressourcen, Fahrzeuge, Mitarbeitende, Städte, Bewohner und SQL-Übersicht sind im Routing erkennbar. Im aktuellen Fokus sind vor allem Ressourcen- und Lagerdaten relevant. | Bestätigen, welche Seiten für AP8 als Infrastrukturbezug genannt werden sollen. |
| SQL-Dateien | Im Ordner `sql/` sind zahlreiche SQL-Abfragen vorhanden. Zusätzlich existieren Build-Skripte und ein Ordner für Stored Procedures. | Die SQL-Dateien unterstützen viele fachliche Auswertungen. Für die aktuelle Revision stehen Ressourcen-, Lager- und Bestandsabfragen im Vordergrund. | Prüfen, welche Abfragen in der finalen Abgabe tatsächlich verwendet werden. |
| Stored Procedures | Ein Ordner `sql/storedProcedure/` ist vorhanden und enthält viele gleichnamige SQL-Dateien zu den Abfragen. | Der genaue produktive Einsatz als Stored Procedures sollte noch bestätigt werden. | Stored-Procedures-Stand und Einbindung ergänzen. |
| SQL-Dateien | Im Ordner `sql/queries/` sind die normalen SQL-Abfragen nach `bp1/`, `bp2/`, `shared/` und `general/` gegliedert. Zusätzlich existieren Build-Skripte. | Die SQL-Dateien unterstützen viele fachliche Auswertungen. Für die aktuelle Revision stehen Ressourcen-, Lager- und Bestandsabfragen im Vordergrund. | Prüfen, welche Abfragen in der finalen Abgabe tatsächlich verwendet werden. |
| Stored Procedures | Der Ordner `sql/storedProcedure/` ist vorhanden und für den aktuellen Fokus in `bp1/`, `bp2/`, `shared/` und `general/` gegliedert. | Die prozessbezogenen Stored Procedures sind dadurch eindeutig den zwei Hauptprozessen zugeordnet. | Produktive Einbindung über API weiter prüfen. |
| Zugangsdaten / Konfiguration | Eine Konfigurationsdatei für die Datenbankanbindung ist vorhanden. | Aus Sicherheitsgründen werden keine Zugangsdaten, Passwörter, Tokens oder privaten Konfigurationswerte dokumentiert. | Tom ergänzt nur allgemeine, freigabefähige Angaben. |
| Deployment / Betrieb | Die Dokumentation beschreibt lokale Entwicklung mit Vite und PHP sowie eine vorhandene Serverumgebung. | Der konkrete Deployment-Prozess ist nicht vollständig aus den gelesenen Dateien ableitbar. | Deployment-, Backup- und Betriebskonzept ergänzen. |
| Dokumentation | README, Dokumentations-README und Spezifikation beschreiben WebApp, PHP-API, SQL-Dateien und Datenbankbezug. | Die Dokumentation enthält teils unterschiedliche Hinweise zu Oracle, MySQL und MariaDB. | Finale technische Linie vereinheitlichen. |
Expand Down
4 changes: 2 additions & 2 deletions documentation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,10 @@ Generiert einen neuen CSRF-Token.
```

#### 2. get_sql_result
Führt eine spezifische SQL-Datei aus und gibt das Ergebnis zurück.
Führt eine spezifische SQL-Datei nach bestehender API-Logik aus und gibt das Ergebnis zurück.

**Parameter:**
- `file`: Name der SQL-Datei (z.B. "getCitizensCount.sql")
- `file`: Dateiname der SQL-Datei, z.B. `getCitizensCount.sql`

**Antwort:**
```json
Expand Down
Loading