92 lines
2.8 KiB
Markdown
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.
|
|
|