Technische Dokumentation

Entwicklerdokumentation

public ist das Webroot; src enthält den Code und storage die private SQLite-Datenbank.

Entwicklerdokumentation

Produkt und verbindliche Entscheidungen

That's My Dash 0.8.1 ist eine persönliche webbasierte Startseite für mehrere Benutzer. Erforderlich sind PHP 8.2+, SQLite und HTTPS. MySQL, Kommandozeileninstallation und manueller Datenbankimport dürfen keine Voraussetzung werden. Vorhandene Datenbanken werden additiv aktualisiert; config.php und das vollständige storage-Verzeichnis bleiben erhalten.

Die Oberfläche unterstützt Dänisch, Englisch, Deutsch, Französisch, Spanisch, Polnisch, Russisch und vereinfachtes Chinesisch. Englisch ist die technische Rückfallsprache.

Architektur

  • public ist das vorgesehene Webroot.
  • src enthält Request-Verarbeitung, Datenbankzugriff, Sicherheit und externe HTTP-Aufrufe.
  • views enthält Vorlagen und ändert keine Daten.
  • storage enthält SQLite, Cache und lokale Sprachdateien und darf nicht öffentlich zugänglich sein.
  • public/index.php lädt Aktionen, Seitenkontext und Ansicht in dieser Reihenfolge.

Code- und Datenregeln

  • Strikte Typen, vorbereitete PDO-Abfragen und Benutzer-ID bei persönlichen Daten verwenden.
  • Benutzerdaten für HTML escapen; kein benutzerdefiniertes HTML zulassen.
  • Schreibvorgänge verwenden POST, CSRF, Validierung und Eigentumskontrolle.
  • Migrationen sind additiv, idempotent und abwärtskompatibel.
  • Zentrale Bearbeitung funktioniert ohne JavaScript.

Sicherheit und externe Dienste

Nur validierte öffentliche HTTPS-Adressen dürfen serverseitig abgerufen werden. Private Netze werden blockiert; Weiterleitungen, Größe und Zeit werden begrenzt. Google Kalender ist optional. Geheimnisse und Tokens werden mit dem Installationsschlüssel verschlüsselt.

Barrierefreiheit und Sprachen

WCAG 2.2 AA ist das technische Ziel. Semantisches HTML, Tastaturbedienung, sichtbarer Fokus, ausreichende Zielgrößen, reduzierte Bewegung und hoher Kontrast sind zu bewahren. Sprachdateien liegen in languages; lokale Anpassungen in storage/languages. Platzhalter wie :place und {query} bleiben unverändert.

Freigabekontrolle

PHP-, JavaScript-, JSON- und Sprachprüfungen ausführen. Neuinstallation und Upgrade einer Datenbankkopie testen. Mobile und Desktop, helles und dunkles Design, Benutzertrennung, Rollen, Tastatur, Screenreader und Zoom prüfen. VERSION, README, CHANGELOG, PROJECT_STATUS und Audit aktualisieren.