diff --git a/doc/architecture.mmd b/doc/architecture.mmd new file mode 100644 index 0000000..295f6c9 --- /dev/null +++ b/doc/architecture.mmd @@ -0,0 +1,20 @@ +graph TD + subgraph Backend FastAPI + API[FastAPI Server
fastAPI.py] + COMP[Endpoint Compare
endpoint_compare.py] + end + + subgraph Core Logic & Scraping + CRON((Scheduler / Cronjob)) + SCRAPE[WhatsNew Fetcher
fetchWhatsNew.py] + EDGE[Edge WebDriver
msedgedriver.exe] + end + + C[Client / Developer] -->|HTTP Requests| API + API --> COMP + + CRON -->|Einmal im Monat| SCRAPE + SCRAPE -->|Automates| EDGE + EDGE -.->|Scrapes| SAP[Whats new for SAP Digital Manufacturing] + + SCRAPE -.->|Speichert Daten für| COMP \ No newline at end of file diff --git a/doc/sequence_phase_1.mmd b/doc/sequence_phase_1.mmd new file mode 100644 index 0000000..b185819 --- /dev/null +++ b/doc/sequence_phase_1.mmd @@ -0,0 +1,28 @@ +sequenceDiagram + autonumber + participant Scraper as WhatsNew Scraper
(Core/fetchWhatsNew.py) + participant Edge as Edge WebDriver
(msedgedriver.exe) + participant SAP as SAP DM Webseiten
(Extern) + participant Compare as Datenverarbeitung / Speicher
(z.B. endpoint_compare.py) + + Note over Scraper: Rufe aktuelle 'What's New' Daten ab + activate Scraper + + Scraper->>Edge: Initialisiere Browser-Instanz + activate Edge + Note right of Edge: Nutzt lokale msedgedriver.exe + + Scraper->>Edge: Navigiere zu SAP DM Deprecation Pages + Edge->>SAP: HTTP Request (Lade Seite) + activate SAP + SAP-->>Edge: HTML Content + deactivate SAP + + Scraper->>Edge: Extrahiere relevante API-Daten (DOM Scraping) + Edge-->>Scraper: Rohdaten (Deprecated APIs List) + + Scraper->>Edge: Schließe Browser-Instanz + deactivate Edge + + Scraper-->>Compare: Strukturierte Liste veralteter APIs + deactivate Scraper \ No newline at end of file diff --git a/doc/sequence_phase_2.mmd b/doc/sequence_phase_2.mmd new file mode 100644 index 0000000..9d8ba3b --- /dev/null +++ b/doc/sequence_phase_2.mmd @@ -0,0 +1,28 @@ +sequenceDiagram + autonumber + actor Dev as Entwickler / Client + participant API as FastAPI Server
(API/fastAPI.py) + participant Compare as Endpoint Compare
(API/endpoint_compare.py) + participant Data as Datenablage
(Ergebnis aus Phase 1) + + Note over Dev, API: Phase 2: API Request & Vergleich + + Dev->>API: API-Anfrage (z.B. Liste der genutzten Endpunkte) + activate API + + API->>Compare: Aufruf compare_string(genutzte_endpunkte) + activate Compare + + Compare->>Data: Lade aktualisierte Deprecation-Liste + activate Data + Note right of Data: Greift auf die Daten zu,
die der Scraper
zuvor gespeichert hat. + Data-->>Compare: Strukturierte Liste veralteter APIs + deactivate Data + + Note right of Compare: Logischer Abgleich:
Welche genutzten APIs
stehen auf der Deprecation-Liste? + + Compare-->>API: Vergleichsergebnis (Matches, Warnungen etc.) + deactivate Compare + + API-->>Dev: HTTP 200 OK (JSON Response) + deactivate API \ No newline at end of file