Files
TaskMate/CLAUDE.md
Claude Project Manager ab1e5be9a9 Initial commit
2025-12-28 21:36:45 +00:00

2.8 KiB

TaskMate - Projektanweisungen

Allgemein

  • Sprache: Deutsch fuer Benutzer-Kommunikation
  • Aenderungen immer in CHANGELOG.txt dokumentieren nach bisher bekannten Schema in der Datei
  • Beim Start ANWENDUNGSBESCHREIBUNG.txt lesen
  • Cache-Version in frontend/sw.js erhoehen nach Aenderungen
  • Ich bin kein Mensch mit Fachwissen im Bereich Coding, daher musst du sämtliche Aufgaben in der Regel übernehmen.

Technologie

  • Frontend: Vanilla JavaScript (kein Framework)
  • Backend: Node.js mit Express
  • Datenbank: SQLite

Konventionen

  • CSS-Variablen in frontend/css/variables.css
  • Deutsche Umlaute (ä, ö, ü) in Texten verwenden

Datumsformatierung (WICHTIG)

  • NIEMALS toISOString() für Datumsvergleiche oder -anzeigen verwenden!
  • toISOString() konvertiert in UTC und verursacht Zeitzonenverschiebungen (z.B. 28.12. wird zu 27.12.)
  • Stattdessen lokale Formatierung verwenden:
    // Richtig: Lokale Formatierung
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const dateStr = `${year}-${month}-${day}`;
    
    // Falsch: UTC-Konvertierung
    const dateStr = date.toISOString().split('T')[0]; // NICHT VERWENDEN!
    

Echtzeit-Aktualisierung (KRITISCH)

  • ALLE Nutzeranpassungen müssen SOFORT und ÜBERALL in der Anwendung sichtbar sein
  • Der Nutzer darf NIEMALS den Browser aktualisieren müssen (F5), um Änderungen zu sehen
  • Beispiele für Änderungen, die sofort überall wirken müssen:
    • Spaltenfarbe ändern → Board, Kalender, Wochenstreifen sofort aktualisieren
    • Aufgabe erstellen/bearbeiten/löschen → alle Ansichten sofort aktualisieren
    • Labels, Benutzer, Projekte ändern → überall sofort sichtbar
  • Technische Umsetzung:
    • store.subscribe('tasks', callback) - für Aufgabenänderungen
    • store.subscribe('columns', callback) - für Spaltenänderungen
    • store.subscribe('labels', callback) - für Label-Änderungen
    • store.subscribe('users', callback) - für Benutzeränderungen
    • window.addEventListener('app:refresh', callback) - für allgemeine Aktualisierungen
    • window.addEventListener('modal:close', callback) - nach Modal-Schließung
  • Bei JEDER neuen Komponente diese Event-Listener einbauen
  • Bei JEDER Datenänderung prüfen: Welche UI-Bereiche müssen aktualisiert werden?

Berechtigungen/Aktionen

  • Du sollst den Dockercontainer eigenständig - sofern erforderlich - neu starten/neu bauen, dass Änderungen wirksam werden
  • Nach Änderungen immer nach dem Neubau des Dockercontainers oder allgemein ohne Neustart des Dockercontainers, den Browser im Inkognito-Modus starten mit localhost:3000, um die Änderungen sichtbar zu machen.