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

148 lines
3.9 KiB
Markdown

# 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