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

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.