Skip to content

Commit 89423c4

Browse files
authored
Merge pull request #63 from Ph4ntomic/master
BP1/BP2 SQL procedures and process-based structure
2 parents f3e936c + fb71d45 commit 89423c4

92 files changed

Lines changed: 1106 additions & 145 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ Um Anfragen zu autorisieren, muss jeder Request einen gültigen CSRF-Token entha
101101
| `get_dashboard_stats` | Liefert aggregierte Daten (Bürger, Städte, Fahrzeuge, Energie). | - |
102102
| `get_active_vehicles_count` | Gibt die Anzahl der aktuell aktiven Fahrzeuge zurück. | - |
103103
| `get_citizens_count` | Gibt die Gesamtzahl der Bürger zurück. | - |
104-
| `get_sql_result` | Führt eine spezifische SQL-Datei aus dem `/sql` Ordner aus. | `file` (Dateiname) |
104+
| `get_sql_result` | Führt eine spezifische SQL-Datei nach bestehender API-Logik aus. | `file` (Dateiname, z.B. `getCitizensCount.sql`) |
105105
| `get_all_tables` | Gibt alle SQL-Abfrageergebnisse inkl. des SQL-Quellcodes zurück. | - |
106106
| `get_sql_files` | Listet den Inhalt aller verfügbaren SQL-Dateien auf. | - |
107107

documentation/APs/AP10-Revision-Use-Cases.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Für AP10 bedeutet das: Die Use Cases werden nicht mehr aus allen vorhandenen Pr
3838
| Use Case | Konkrete Handlung eines Nutzers mit dem System innerhalb eines Businessprozesses. |
3939
| SQL-Query / Stored Procedure | Technische Unterstützung, um Daten für einen Use Case bereitzustellen. |
4040

41-
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.
41+
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.
4242

4343
Beispiel:
4444

documentation/APs/AP11-BPMN-Modellierung-BP1-Kritische RessourcenÜberwachenUndNachschubAuslösen.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ Relevante Datenbankaufgaben:
6666
| interne Verfügbarkeit prüfen | Lager oder Produktion auswerten |
6767
| Bestand aktualisieren | neue Werte speichern |
6868

69+
Konkret umgesetzte Stored Procedures für BP1:
70+
71+
| Stored Procedure | Prozessschritt | Ergebnis |
72+
|---|---|---|
73+
| `sql/storedProcedure/bp1/getRessourcesBelowMin.sql` | Mindestbestand vergleichen | zeigt kritische Ressourcen inklusive Fehlmenge und Handlungspriorität |
74+
| `sql/storedProcedure/bp1/getRessourcesAtRisk.sql` | Ablaufdatum prüfen | zeigt abgelaufene oder bald ablaufende Ressourcen mit empfohlener Maßnahme |
75+
| `sql/storedProcedure/bp1/getNachschubanforderungen.sql` | Bedarf berechnen und interne Verfügbarkeit prüfen | erstellt eine fachliche Nachschubliste mit Anforderungsmenge, Grund und Maßnahme |
76+
6977
---
7078

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

97105
| Punkt | Status |
98106
|---|---|
99-
| Feedback von Prof. Dr. Becking einarbeiten | in Bearbeitung |
100-
| SQL-Abfragen konkret zuordnen | offen |
101-
| Stored Procedures planen | offen |
107+
| Feedback von Prof. Dr. Becking einarbeiten | erledigt |
108+
| SQL-Abfragen konkret zuordnen | erledigt |
109+
| Stored Procedures planen | erledigt |
102110
| BPMN-Modell final prüfen | offen |
103111
| BPMN-Grafik in Projektdokumentation einfügen | vorbereitet |
104112

documentation/APs/AP11-BPMN-Modellierung-BP2-Ueberschuessige-Ressourcen-an-externe-Unternehmen-verkaufen.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ Relevante Datenbankaufgaben:
6767
| Sicherheitsreserve berücksichtigen | interne Versorgung nicht gefährden |
6868
| Verkaufspotenzial vorbereiten | wirtschaftliche Entscheidung fachlich unterstützen |
6969

70+
Konkret umgesetzte Stored Procedures für BP2:
71+
72+
| Stored Procedure | Prozessschritt | Ergebnis |
73+
|---|---|---|
74+
| `sql/storedProcedure/bp2/getRessourcenUeberschuss.sql` | Überschuss erkennen und Sicherheitsreserve prüfen | zeigt verkaufbare Mengen mit 7-Sol-Sicherheitspuffer und Überschuss-Status |
75+
| `sql/storedProcedure/bp2/getVerkaufspotenzial.sql` | Verkaufspotenzial bewerten | verbindet berechnete Überschüsse mit vorhandenen Überschussbewertungen und empfohlener Maßnahme |
76+
| `sql/storedProcedure/bp2/getExterneAbgabeVorbereitung.sql` | externe Abgabe vorbereiten | zeigt vorbereitete Verkäufe mit Unternehmen, Positionen, Werten und Abgabe-Status |
77+
7078
---
7179

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

106114
---
107115

documentation/APs/AP4-Auswahl-Case-Study.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ Damit ist die Case Study fachlich passend für ein Datenbankanwendungsprojekt, w
1212

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

2525
## Geschäftsmodell
2626

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

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

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

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

@@ -184,7 +184,7 @@ Transporte werden nachvollziehbar. Städte ohne Verbindung werden erkannt. Dadur
184184
|---|---|
185185
| Primärer Akteur | Kolonieverwaltung |
186186
| Ziel | Städte, Bewohnerzahlen und Adressdaten verwalten |
187-
| Repo-Bezug | `getCitiesWithStats.sql`, `getCitiesWithKoords.sql`, `getCitizensCount.sql`, `getAllCitizens.sql`, `getBewohnerAtAddress.sql`, `getResidentCountByAddress.sql` |
187+
| 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` |
188188
| WebApp-Bezug | `Cities`, `Citizens`, `city/:name` |
189189
| Wirtschaftlicher Nutzen | bessere Ressourcenverteilung pro Stadt und Bevölkerungsgruppe |
190190

@@ -212,7 +212,7 @@ Die Kolonie erkennt, wo viele Bewohner leben und welche Städte besondere Versor
212212
|---|---|
213213
| Primärer Akteur | Personalverwaltung |
214214
| Ziel | Mitarbeiter, Rollen, Berufe und Abteilungen auswerten |
215-
| Repo-Bezug | `getAllEmployees.sql`, `getEmployeeProfile.sql`, `getMitarbeiterRolle.sql`, `getMitarbeiterByBeruf.sql`, `getAvgWorkTimeByBeruf.sql`, `getDepartmentsWithLeaders.sql`, `getEmployeeCountByDepartment.sql` |
215+
| 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` |
216216
| WebApp-Bezug | `Employees` |
217217
| Wirtschaftlicher Nutzen | effizientere Personalplanung und geringere Fehlbesetzung |
218218

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

documentation/APs/AP8-Auswahl-DBMS-Infrastruktur-Prototyp.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Diese Datei ist eine vorläufige Zuarbeit für Tom Coombs / CyZeTLC. Sie fasst z
2020
| 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. |
2121
| 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. |
2222
| 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. |
23-
| 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. |
24-
| 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. |
23+
| 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. |
24+
| 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. |
2525
| 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. |
2626
| 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. |
2727
| 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. |

documentation/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ Generiert einen neuen CSRF-Token.
9494
```
9595

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

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

102102
**Antwort:**
103103
```json

0 commit comments

Comments
 (0)