time-tracker/docu/draft/claude.md
2025-03-09 08:16:30 +00:00

3.9 KiB

Zeiterfassungstool Spezifikation

1. Überblick

Dieses Dokument spezifiziert ein modernes Zeiterfassungstool mit Multi-Tenant-Architektur, implementiert mit Go (Backend) und NextJS (Frontend). Das System unterstützt die Erfassung von Arbeitszeiten, Projektmanagement und Reporting-Funktionen.

2. Technologie-Stack

Backend

  • Programmiersprache: Go
  • Architektur: Funktional-Programmierung (FPGO)
  • Datenbank: PostgreSQL mit ORM
  • API-Dokumentation: Swagger

Frontend

  • Framework: NextJS
  • Architektur: Funktional-Programmierung (FPTS - Functional Programming TypeScript)
  • UI-Komponenten: React mit Tailwind CSS

3. Multi-Tenant-Architektur

Das System unterstützt mehrere Unternehmen (Companies) mit eigenen Benutzern und Daten.

Rollen und Berechtigungen

  • Admin: Systemweiter Administrator mit vollständigem Zugriff
  • Company: Unternehmensadministrator
  • Manager: Projektmanager mit erweiterten Rechten
  • User: Standardbenutzer (Mitarbeiter)
  • Auditor: Nur-Lese-Zugriff für Berichte und Audits

4. Datenbankmodell

Hauptentitäten

Tenant-Struktur

  • Company: Unternehmen
  • User: Benutzer mit Rollen

Zeiterfassung

  • Kunde: Kunde einer Company
  • Projekt: Projekte für Kunden
  • Tätigkeit: Arbeitstätigkeiten
  • Buchung: Zeiterfassung
  • Stundensatz: Pro Mitarbeiter
  • Verrechnungspreis: Pro Tätigkeit

Projektmanagement (Version 2)

  • Sprint: Iterationen innerhalb eines Projekts
  • Task: Aufgaben innerhalb eines Sprints
  • KanbanBoard: Visualisierung von Tasks

5. Backend-Architektur

Modularisierung

Das Backend wird in kleine, funktionale Module aufgeteilt, um die Kontextgröße für LLM-basierte Implementierung zu optimieren.

Core-Module

  • auth: Authentifizierung und Autorisierung
  • tenant: Multi-Tenant-Verwaltung
  • user: Benutzerverwaltung
  • timetracking: Zeiterfassung
  • customer: Kundenverwaltung
  • project: Projektverwaltung
  • billing: Abrechnung und Verrechnungspreise
  • reporting: Report-Generierung

API-Design

  • RESTful API mit Swagger-Dokumentation
  • JWT-basierte Authentifizierung
  • Tenant-Isolation durch Middleware

6. Frontend-Architektur

Komponentenstruktur

  • Modulare React-Komponenten
  • State Management mit Context API oder Redux
  • Responsive Design

Hauptseiten

  • Dashboard (Übersicht)
  • Zeiterfassung mit Tracker
  • Kunden- und Projektverwaltung
  • Reporting und Auswertungen
  • Administrationsoberfläche

7. Funktionsumfang (Version 1)

Unternehmensverwaltung

  • Anlegen und Verwalten von Companies (Multi-Tenant)
  • Benutzerverwaltung mit Rollenzuweisung

Stammdatenverwaltung

  • Kunden anlegen und verwalten
  • Projekte anlegen und verwalten
  • Tätigkeiten definieren mit Verrechnungspreisen
  • Mitarbeiter-Stundensätze hinterlegen

Zeiterfassung

  • Zeiten buchen mit Angaben zu:
    • Zeitraum (Start/Ende oder Dauer)
    • Projekt (Wohin)
    • Tätigkeit (Wofür)
    • Benutzer (Wer)
    • Beschreibung (optional)
    • Verrechnungspreis
    • Abrechenbarkeit (0-100% Slider)
  • Zeittracker mit Start/Stop-Funktion
  • Übernahme der letzten Buchungsparameter

Reporting

  • Kumulation von Buchungen nach:
    • Projekten
    • Mitarbeitern
    • Kunden
    • Zeiträumen
  • PDF-Export von Reports
  • Dashboards mit Visualisierungen

8. Funktionsumfang (Version 2)

Projektmanagement

  • Sprints innerhalb von Projekten
  • Task-Items in Sprints
  • Kanban-Boards für visuelle Darstellung
  • Zuweisung von Tasks zu Benutzern
  • Direkte Verknüpfung von Tasks mit Zeitbuchungen

9. Implementierungsplan

Phase 1: Grundlegende Infrastruktur

  • Aufsetzen der Go-Backend-Struktur
  • Implementierung der Datenbank mit ORM
  • NextJS-Frontend-Grundgerüst
  • Authentifizierung und Autorisierung

Phase 2: Version 1 Features

  • Stammdatenverwaltung
  • Zeiterfassung
  • Reporting
  • Dashboard

Phase 3: Version 2 Features

  • Projektmanagement
  • Kanban-Boards
  • Task-Tracking