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

92 lines
2.8 KiB
Markdown

# Spezifikation Zeiterfassungs-Tool
## Technische Rahmenbedingungen
- **Backend:** Go mit fp-go
- **Frontend:** Next.js mit fp-ts
- **Datenbank:** PostgreSQL mit ORM (z.B. GORM oder Bun)
- **API-Dokumentation:** Swagger/OpenAPI
- **PDF-Generierung:** serverseitig
## Multi-Tenancy & Rollen
- **Mandantenfähig**: Separierung aller Daten nach Unternehmen (Company)
- **Rollen:**
- Admin (systemweit)
- Company (Unternehmensebene)
- Manager
- Auditor (Read-only Zugriff auf Reports)
- User (regulärer Mitarbeiter)
## Datenmodelle (DB Entities)
- **Company**
- Kunden (Clients)
- Projekte (Projects)
- Tätigkeiten (Activities)
- **User**
- Stundenrate
- Rolle
- **Projekt**
- Kundenreferenz
- Beschreibung
- **Tätigkeit**
- Name
- Verrechnungspreis
- **Buchung**
- Zeit (Start, Ende, Dauer)
- User
- Projekt
- Tätigkeit
- Beschreibung (optional)
- Abrechenbarkeit (0-100%)
- Verrechnungspreis (berechnet)
## Funktionale Anforderungen
### Version 1
- Verwaltung von Kunden, Projekten, Tätigkeiten
- Mitarbeiterverwaltung mit Stundensatz
- Erstellung von Zeitbuchungen mit optionaler Beschreibung und wählbarer Abrechenbarkeit
- Automatische Übernahme der Parameter (Projekt, Tätigkeit, Beschreibung) der letzten Buchung
- Live-Tracker mit Start-/Stopp-Funktion auf Dashboard
- Reporting-Funktion
- Aggregation der Buchungen nach Zeitraum, Projekt, Kunde, Mitarbeiter
- Export als PDF
- Grafische Dashboards (Kreis-/Balkendiagramme, Zeitverläufe)
- Persönliches Dashboard
- Liste vergangener Buchungen
- Schnellstart-Tracker
### Version 2 (Ausblick)
- Projektverwaltung mit Sprints und Task-Items
- Kanban-Board zur Verwaltung von Tasks
- Zuordnung von Tasks direkt bei Buchungsauswahl
## API-Endpunkte
- Authentifizierung & Autorisierung (JWT o.ä.)
- CRUD-Operationen für alle Entities
- Endpunkte für Zeiterfassung, Buchungen starten/stoppen
- Reporting-Endpoints mit Filterparametern (Zeitraum, Kunde, Projekt, Mitarbeiter)
## Frontend-Komponenten
- **Dashboard**
- Tracker-Komponente
- Liste letzter Buchungen
- Schnelleinstieg für häufige Aktionen
- **Buchungs-Management**
- Buchungsformular
- Historie
- **Verwaltungsseiten**
- Kunden, Projekte, Tätigkeiten, User
- **Reporting-Ansicht**
- Interaktive Filtermöglichkeiten
- Grafische Darstellung (Charts)
- PDF-Export
## Technische Umsetzung
- Modularer Aufbau (separate Pakete für Entities, Services, Controllers)
- DDD-Prinzipien für saubere Trennung von Geschäftslogik
- APIs sauber nach Verantwortlichkeiten getrennt (RESTful Design)
- Swagger zur API-Dokumentation (generiert aus Annotationen)
- Strukturierter und übersichtlicher Code (kleine Dateien, Single Responsibility)
Diese Struktur ermöglicht eine überschaubare Implementierung mit optimaler Unterstützung durch LLMs.