2.8 KiB
2.8 KiB
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.