Files
task-manager/docs/ARCHITECTURE.md
T
NotiBot 4f6aff32ab
continuous-integration/drone/push Build is passing
feat: API Key Auth + erweiterte MCP Tools + Dokumentation
- 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
2026-02-03 10:23:18 +01:00

159 lines
4.3 KiB
Markdown

# 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)
```bash
cd /opt/task-manager
npm run dev # Vite + Express auf Port 5001
```
### Docker (Production)
```bash
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*