3.0 KiB
3.0 KiB
TaskMate - Projektanweisungen
Infrastruktur/Server
- Docker-Container:
taskmate(hauptsächlich Backend), läuft auf Port 3001 intern → 3000 im Container - Frontend-Domain: https://taskmate.aegis-sight.de
- Gitea-Repository: https://gitea-undso.aegis-sight.de/AegisSight/TaskMate
- Gitea-Token:
7c62fea51bfe0506a25131bd50ac710ac5aa7e3a9dca37a962e7822bdc7db840 - Projektverzeichnis auf Server:
/home/claude-dev/TaskMate
Allgemein
- Sprache: Deutsch für Benutzer-Kommunikation
- Änderungen immer in CHANGELOG.txt dokumentieren nach bisher bekanntem Schema in der Datei
- Beim Start ANWENDUNGSBESCHREIBUNG.txt lesen
- Cache-Version in frontend/sw.js erhöhen nach Änderungen
- 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änderungenstore.subscribe('columns', callback)- für Spaltenänderungenstore.subscribe('labels', callback)- für Label-Änderungenstore.subscribe('users', callback)- für Benutzeränderungenwindow.addEventListener('app:refresh', callback)- für allgemeine Aktualisierungenwindow.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
- Erreichbarkeit der Anwendung über https://taskmate.aegis-sight.de (keine automatische Browser-Öffnung)