# Content Zentrale Inhaltsbasis fuer `desktop.kusche.berlin`. Diese Datei dient als gemeinsame Quelle fuer: - Begriffe und offizielle Benennungen im System - Funktionsbeschreibung des aktuellen Systems - spaetere Inhalte fuer einen Hilfe-Bereich - zentrale Zusammenfassung der dezentralen `README.md`-Dateien ## Zweck `CONTENT.md` beschreibt das System fachlich und sprachlich. Nicht hier hinein gehoeren: - technische Detailanweisungen fuer Entwickler - Go- und NoGo-Regeln fuer Umsetzung - nur ordnerspezifische Detailerklaerungen ohne Relevanz fuer das Gesamtsystem Diese Inhalte liegen in: - [ANLEITUNG.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/docs/ANLEITUNG.md) - [WEITERENTWICKLUNG.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/docs/WEITERENTWICKLUNG.md) ## Offizielle Begriffe Diese Benennungen gelten projektweit und sollen in UI, Doku und Weiterentwicklung konsistent verwendet werden. ### Oberflaechenbereiche - `Desktop` Die eigentliche Arbeitsflaeche mit Icons, Fenstern, Taskbar und Infobereich. - `Infobereich` Der rechte Bereich auf dem Desktop mit eingeblendeten Informationskarten oder kleinen Bereichsmodulen. - `Widget-Bereich` Der Bereich bei der Uhr bzw. Systemleiste fuer kleine Widgets oder Mini-Apps. - `Setup-Bereich` Der zentrale Einstellungsbereich fuer Benutzer, Desktop-Typ, Apps und Bereichsauswahl. Aktuell umgesetzt ueber `User Self Management`. ### Menue-Bereiche - `User Setting Bereich` Linke Menuespalte mit User-Icon, Benutzername, Einstieg in Einstellungen und Session-Aktion. - `Funktion-Bereich` Mittlere Menuespalte mit Funktionsgruppen wie `Programme`. - `Auswahlbereich` Rechte Menuespalte mit den Inhalten der aktuell gewaehlten Funktionsgruppe. ### Systemobjekte - `App` Ein bereitgestelltes System-Tool oder Modul. Eine App kann als Desktop-App, Menue-App, Systembar-Eintrag oder Quelle fuer Widgets/Funktionen auftreten. - `API` Die serverseitige Programmschnittstelle der Desktop-Anwendung. Sie wird im aktuellen Projekt auf demselben Host wie die Desktop-Shell unter `/api/v1/...` bereitgestellt. - `Widget` Eine kleine Funktion oder Mini-Anzeige. Widgets sind nicht automatisch identisch mit Apps. Eine App kann Widgets bereitstellen, muss es aber nicht. - `Desktop Type` Benutzerseitige Auswahl des Desktop-/Skin-Typs. Aktuell vorgesehen: `Apple`, `Windows`, `Linux`. - `Skin` Technische und visuelle Auspraegung eines Desktop-Typs, inklusive Layout, Interaktionsdetails und Asset-Zuordnung. ## Aktueller Systemumfang Stand dieser Datei: - gemeinsame Desktop-Shell mit den Skins `Apple`, `Windows` und `Linux` - frei verschiebbare Desktop-Icons - Icon-Positionen lokal gespeichert, pro Benutzer und pro Skin - automatische Schriftfarbanpassung fuer Desktop-Icons anhand des Hintergrunds - Fensterverwaltung mit Oeffnen, Fokussieren, Minimieren, Maximieren und Verschieben - konsistentes Standard-Design fuer Fensterinhalte, sofern eine App kein eigenes UI mitbringt - Startmenue mit `User Setting Bereich`, `Funktion-Bereich` und `Auswahlbereich` - rechter `Infobereich` mit benutzerbezogener Sichtbarkeit - `User Self Management` als Setup-App - erster echter App-Pfad fuer installierbare Fach-Apps mit Discovery aus `custom/apps//` - `Mining-Checker` als erstes angebundenes klassisches Modul - `Waehrungs-Checker` als zweites angebundenes klassisches Modul mit Desktop-Widget fuer Kursaktualisierung - versionierte API auf demselben Host unter `(staging.)desktop.kusche.berlin/api/v1/...` - Benutzereinstellungen fuer Desktop-Skin, App-Auswahl, Infobereich und Profildaten in einer eigenen Datenbanktabelle mit `_user_data`-Suffix - vorhandene JSON-Dateien dienen nur noch als Fallback oder Uebergang fuer lokale Entwicklung und Altbestaende - LDAP-Synchronisierung fuer Standardfelder wie Name, E-Mail, Telefon, Titel und Ort - `Geburtsdatum` aktuell bewusst nur lokal gespeichert - Keycloak bleibt das Auth-System ## Zentrale Inhaltszusammenfassung aus bestehenden README-Dateien ### Globales Projekt Aus [README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/docs/README.md): - `public/` ist der Web-Root fuer die Desktop-Shell - `src/Desktop/` enthaelt zentrale Desktop-Mechaniken - die API bleibt auf demselben Host wie die Desktop-Shell und wird unter `/api/v1/...` versioniert - `partials/desktop/` enthaelt Shell-Templates - `custom/apps/` bleibt Zielort fuer installierbare Fach-Apps - `system/apps/` bleibt Zielort fuer System-Tools - `system/shell/` bleibt Zielort fuer globale Shell-Werkzeuge und shell-nahe Desktop-Helfer - `temp/nexus-module-import/` ist Rohbasis fuer importierte Nexus-Module - Keycloak bleibt das Auth-System - das globale Desktop-Debug ist als Shell-Werkzeug unter `system/shell/desktop-debug/` definiert ### Module Aus [custom/apps/README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/custom/apps/README.md): - installierbare Fach-Apps liegen unter `custom/apps//` - Businesslogik wird nicht in den Desktop-Core verschoben - ein Desktop-Modul kann eigene `desktop.php`, `pages/`, `api/` und `assets/` Strukturen mitbringen - Modul-Assets muessen nicht in den globalen Desktop-Asset-Baum kopiert werden ### Aktueller Modulstand - `Mining-Checker` ist eine Desktop-App aus `custom/apps/mining-checker/` - `Waehrungs-Checker` ist eine Desktop-App aus `custom/apps/fx-rates/` - die Desktop-Shell kann Moduldefinitionen zentral erkennen und als `App` bereitstellen - wiederverwendbare Modul-Helfer liegen im globalen Kern, die Fachlogik bleibt im Modul ### Skins Aus [skins/README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/skins/README.md): - `skins//profile.php` enthaelt Skin-Metadaten - `skins//vendor/` enthaelt Rohquellen und Quellpacks - `public/assets/desktop/skins//` enthaelt auslieferbare CSS/JS-Dateien - `public/assets/desktop/skin-icons//` enthaelt verwendete Web-Icons ## Hilfe-Bereich Vorbereitung Fuer einen spaeteren Hilfebereich sollen Inhalte aus dieser Datei in Themenblcke uebernommen werden: - `Begriffe` - `Desktop bedienen` - `Menue verstehen` - `Fenster verwenden` - `Infobereich konfigurieren` - `Apps und Desktop Type verwalten` - `Module verstehen und starten` - `API-Pfade und Versionen verstehen` - `Benutzerdaten und Synchronisierung` Die Inhalte sollen spaeter moeglichst nicht neu erfunden, sondern aus den zentral gepflegten Dateien abgeleitet werden.