Files
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

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


Letzte Aktualisierung: 2026-02-03