Files
desktop/docs/CONTENT.md
Lars Gebhardt-Kusche f9e41380b5
All checks were successful
Deploy / deploy-staging (push) Successful in 24s
Deploy / deploy-production (push) Has been skipped
Next
adas
2026-06-22 01:44:06 +02:00

150 lines
6.1 KiB
Markdown

# 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 Modulpfad fuer klassische Module mit Modul-Discovery aus `modules/<modul>/`
- `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
- `modules/` bleibt Zielort fuer klassische Module
- `temp/nexus-module-import/` ist Rohbasis fuer importierte Nexus-Module
- Keycloak bleibt das Auth-System
### Module
Aus [modules/README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/modules/README.md):
- klassische Module bleiben unter `modules/<modul>/`
- 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 das erste Modul, das als echte Desktop-App aus `modules/mining-checker/` angebunden wird
- `Waehrungs-Checker` ist das zweite Modul, das als echte Desktop-App aus `modules/fx-rates/` angebunden wird
- 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/<skin>/profile.php` enthaelt Skin-Metadaten
- `skins/<skin>/vendor/` enthaelt Rohquellen und Quellpacks
- `public/assets/desktop/skins/<skin>/` enthaelt auslieferbare CSS/JS-Dateien
- `public/assets/desktop/skin-icons/<skin>/` 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.