148 lines
3.9 KiB
Markdown
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
|
|
|
|
|