feat: API Key Auth + erweiterte MCP Tools + Dokumentation
continuous-integration/drone/push Build is passing
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
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user