4f6aff32ab
continuous-integration/drone/push Build is passing
- API Key Middleware für alle /api/ Endpoints (X-API-Key, Bearer, Query) - API Key Management Routes (generate, revoke, status) - MCP Tools erweitert: 12 Tools (war 3) inkl. bulk ops, dashboard, search - Audit Logging für alle API/MCP Aktionen - docs/API-REFERENCE.md - vollständige API Dokumentation - docs/ARCHITECTURE.md - Architektur-Übersicht - Vorbereitung für NotiBot-Integration
4.3 KiB
4.3 KiB
TaskFlow Architektur
Stand: 2026-02-03
Stack
| Schicht | Technologie |
|---|---|
| Frontend | React 18, TypeScript, Tailwind CSS, shadcn/ui, Vite |
| Backend | Express.js, TypeScript, Node.js |
| Datenbank | PostgreSQL 15, Drizzle ORM |
| State | TanStack Query (Client), Express Session (Server) |
| Auth | Passport.js (Local Strategy), API Key, 2FA (Email OTP) |
| Build | Vite (Frontend), ESBuild (Server Bundle) |
| Deployment | Docker, Docker Compose |
Verzeichnisstruktur
/opt/task-manager/
├── client/ # React Frontend
│ └── src/
│ ├── components/ # UI-Komponenten
│ │ ├── adhd/ # ADHD-Mode Features
│ │ ├── admin/ # Admin-Panel
│ │ └── gamification/ # Gamification UI
│ ├── pages/ # Seitenkomponenten
│ ├── hooks/ # Custom React Hooks
│ └── lib/ # Utilities, API Client
├── server/ # Express Backend
│ ├── index.ts # Server Entry Point
│ ├── routes.ts # API Routes (~2400 Zeilen)
│ ├── storage.ts # Storage Interface + Implementierungen
│ ├── auth.ts # Passport Auth + Session
│ ├── api-key-auth.ts # API Key Middleware [NEU]
│ ├── mcp.ts # MCP Server (JSON-RPC)
│ ├── ai.ts # AI Service (Chat, Scheduling)
│ ├── gamification.ts # XP, Levels, Streaks
│ ├── email.ts # SMTP Email Service
│ ├── push.ts # Web Push Notifications
│ ├── db.ts # Database Connection
│ └── services/
│ └── recurrence.ts # Recurring Tasks
├── shared/ # Shared Types
│ ├── schema.ts # Drizzle DB Schema + Zod
│ └── gamification.ts # XP/Level Constants
├── docs/ # Dokumentation
│ ├── ARCHITECTURE.md # Diese Datei
│ ├── API-REFERENCE.md # API Dokumentation
│ └── REFACTORING-REVIEW.md # Code Review
├── docker-compose.yml
├── Dockerfile
└── package.json
Features
Core
- Task CRUD mit Labels, Prioritäten, Due-Dates
- Kalender-Ansicht (Drag & Drop)
- Kanban Board (Traditional, Weekly, Monthly)
- Subtasks / Parent-Child Beziehungen
- Time Tracking mit Timer
- Task Sharing (User-to-User, Label Sharing)
Gamification
- XP-System mit Levels
- Tägliche Streaks
- Rewards Shop
- Leaderboard
- Daily Challenges
ADHD Mode
- Quick Win List (kurze Tasks zuerst)
- Single Task View (Fokus-Modus)
- Energy Check-In (Low/Medium/High)
- Break Reminders
- Hyperfocus Guard
- Visual Timer
- Body Doubling Sessions
AI Integration
- Chat mit Kontext (Tasks, User-Profil)
- Auto-Scheduling (AI plant Task-Termine)
- Task Completion Analysis
- Task Breakdown (AI teilt große Tasks auf)
- Configurable Provider (OpenAI, Ollama, etc.)
Communication
- Email (Passwort-Reset, 2FA, Routinen)
- Web Push Notifications
- MCP Server (für AI-Tools)
Admin
- User Management (erstellen, deaktivieren, löschen)
- System Settings (SMTP, AI, Registration)
- Audit Logs
- XP Reset
Datenmodell (Wichtigste Tabellen)
users ──┬── tasks ──── labels
│ └── sharedTasks
├── conversations ── messages
├── xpEvents
├── userRewards ── rewards
├── focusSessions
├── dailyChallenges
├── breakLogs
├── energyLogs
└── auditLogs
Auth-Flow
Browser Request
│
├── Hat Session Cookie? → Passport Session Auth → req.user
│
├── Hat X-API-Key / Bearer? → API Key Middleware → req.user
│
└── Keins von beiden → 401 Unauthorized
Deployment
Lokal (Development)
cd /opt/task-manager
npm run dev # Vite + Express auf Port 5001
Docker (Production)
docker-compose up -d # PostgreSQL + App auf Port 5000
Live
- URL: https://task.nothaft.cloud
- Reverse Proxy davor (vermutlich Caddy/Nginx)
Letzte Aktualisierung: 2026-02-03