3.9 KiB
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