Zurück zur Projektübersicht

Internes Projekt / Eigenentwicklung (YourSolutions)

Timetracking: Maßgeschneiderte Webanwendung für moderne Zeiterfassung

Projektübersicht

Dieses Timetracking-Tool ersetzt ineffiziente, manuelle Zeiterfassungsprozesse durch eine intuitive Webanwendung. Sie ermöglicht präzise Projektzeiterfassung, vereinfacht das Abwesenheitsmanagement und schafft eine transparente Datengrundlage für Controlling und Abrechnung, wodurch administrative Reibungsverluste minimiert und die Projektsteuerung verbessert werden.

Visuelle Einblicke

Screenshot des Timetracking Dashboards

Zentrales Dashboard mit Übersicht über gebuchte Zeiten und laufende Projekte.

Screenshot des Foto-Uploads

Über den Foto-Upload können Zeiten per OpenAi Vision erfasst werden.

Screenshot der Übersichtseite

In der Übersichtseite werden alle Zeiten und Urlaubsansprüche angezeigt.

Screenshot der Detaillansicht

In der Detaillansicht werden alle Einträge angezeigt und bearbeitet.

Timetracking in Aktion

Kurze Videodemonstration der Kernfunktionalitäten.

Projekt im Detail (Case Study)

Problemstellung / Herausforderung

Die bisherige Zeiterfassung mittels Excel-Listen und E-Mail-basierten Urlaubsanträgen war nicht nur extrem zeitaufwändig, sondern führte auch zu häufigen Fehlern, Inkonsistenzen und Frustration. Eine zentrale, verlässliche Übersicht über Projektzeiten, Urlaub, Krankheitstage und andere Abwesenheiten fehlte gänzlich, was die Projektplanung und -abrechnung erheblich erschwerte und Potential für Optimierungen ungenutzt ließ.

Meine Rolle & Beitrag

Als verantwortlicher Full-Stack Entwickler trieb ich das Projekt von der Konzeption bis zur finalen Implementierung. Meine Aufgaben umfassten die Definition der Anwendungsarchitektur, die Auswahl des Tech-Stacks, die Entwicklung zentraler Backend-Services (API-Routen, Datenbankinteraktion mit Prisma) und die Umsetzung des gesamten Frontends mit React/Next.js. Ein wesentlicher Beitrag war die Gestaltung der Kernlogik für Zeiterfassung und Validierung sowie die Implementierung der Benutzerauthentifizierung und des Rollenmanagements.

Lösungsansatz & Architektur

Um eine moderne, performante und wartbare Lösung zu schaffen, wurde eine SaaS-Anwendung mit mehreren Seiten auf Basis von Next.js entwickelt. Dies ermöglichte sowohl serverseitiges Rendering für schnelle initiale Ladezeiten als auch optimierte Navigation zwischen den verschiedenen Funktionsbereichen für eine flüssige User Experience. TypeScript garantierte Typsicherheit und verbesserte die Developer Experience im Team. Tailwind CSS bot die nötige Flexibilität für ein schnelles, konsistentes und responsives UI-Design. Prisma als ORM vereinfachte die Datenbankinteraktionen mit PostgreSQL erheblich und bot Migrationsmanagement. NextAuth.js lieferte eine robuste und erweiterbare Lösung für Authentifizierung und Sitzungsmanagement. Der Fokus lag auf einer klaren Trennung von Frontend und Backend (API-Routen) innerhalb des Next.js-Frameworks.

Systemarchitektur des Timetracking-Tools

Frontend
Backend
Datenbank
Sicherheit
🌐

Browser (Client)

Benutzeroberfläche

Der Browser rendert die React-Anwendung und ermöglicht die Interaktion mit dem Benutzer. Alle Benutzeraktionen werden hier initiiert und visualisiert.

⚛️

Frontend Services

React/Next.js

Client-seitige Logik wie API-Anfragen, Datenvalidierung und Zustandsverwaltung. Implementiert mit React und erweitert durch Next.js.

🔌

API Layer

Next.js API Routes

Die Schnittstelle zwischen Frontend und Backend. Verwaltet Anfragen und Antworten und sorgt für die Datensicherheit.

⚙️

Business Logic

Server-seitige Verarbeitung

Implementierung der Geschäftsregeln, Datenverarbeitung und Validierungslogik auf dem Server.

🔄

Data Access Layer

Prisma ORM

Abstraktion der Datenbankzugriffe durch ein ORM. Bietet typsichere Abfragen und Modelle.

💾

Datenbank

PostgreSQL

Persistente Speicherung aller Anwendungsdaten in einer relationalen Datenbank, die Zuverlässigkeit und Transaktionssicherheit bietet.

🔐

Auth Provider

NextAuth.js

Verwaltet Authentifizierung und Autorisierung durch Integration mit Identitätsanbietern und Session-Management.

Klicken Sie auf eine Komponente für Details

Dieses Diagramm illustriert die moderne Webarchitektur des Timetracking-Tools. Es zeigt die klare Trennung zwischen dem interaktiven Frontend, das mit Next.js und React erstellt wurde, und dem serverseitigen Backend, das über API-Routen realisiert ist. Prisma dient als Schnittstelle zur robusten PostgreSQL-Datenbank, während NextAuth.js die sichere Benutzerauthentifizierung übernimmt. Diese Architektur gewährleistet Skalierbarkeit, Wartbarkeit und eine hervorragende User Experience.

Technische Details & Kernfunktionen

Intuitive Zeiterfassung & Validierung

Kernstück der Anwendung ist die einfache Erfassung von Arbeitszeiten (Kommen, Gehen, Pause) pro Tag oder Woche. React Hook Form und Zod werden für effizientes Formularhandling und robuste client- sowie serverseitige Validierung genutzt. Die Logik berücksichtigt Feiertage und individuelle Arbeitszeitmodelle (zukünftig). Zeiten werden Projekten zugeordnet, was eine granulare Auswertung ermöglicht.

Next.js Next.jsReact ReactTypeScript TypeScriptTailwind CSS Tailwind CSS

KI-gestützte Foto-Erkennung mit OpenAI Vision

Eine innovative Funktionalität ermöglicht es Nutzern, handschriftliche oder gedruckte Zeiterfassungsbelege einfach zu fotografieren und hochzuladen. Die Integration der OpenAI Vision API analysiert diese Bilder in Echtzeit, extrahiert automatisch relevante Zeitdaten wie Datum, Start- und Endzeit sowie Pausendauer und wandelt diese in strukturierte Daten um. Dies eliminiert die manuelle Dateneingabe komplett und reduziert Erfassungsfehler erheblich. Die erkannten Daten werden vor dem Speichern zur Überprüfung angezeigt und können bei Bedarf korrigiert werden.

OpenAI Vision API OpenAI Vision APINext.js API Routes Next.js API RoutesReact ReactTypeScript TypeScript

Flexibles Projekt- & Kundenmanagement

Ein dediziertes Modul erlaubt die Anlage und Verwaltung von Kunden und Projekten. Projekte können mit Details wie Budgets (Zeit/Geld) und Stundensätzen versehen werden. Dies bildet die Grundlage für spätere Rentabilitätsanalysen und Reportings. Die Datenstruktur in PostgreSQL ist auf Erweiterbarkeit ausgelegt.

Prisma PrismaPostgreSQL PostgreSQLNext.js API Routes Next.js API RoutesTypeScript TypeScript

Sichere Authentifizierung & Rollenbasiertes Rechtemanagement

Implementierung einer sicheren Authentifizierung mittels E-Mail/Passwort über NextAuth.js, vorbereitet für zukünftige OAuth-Integrationen. Ein einfaches, aber effektives Rollensystem (Admin, Mitarbeiter) steuert den Zugriff auf verschiedene Anwendungsbereiche und Funktionen über Middleware und API-Guards.

NextAuth.js NextAuth.jsNext.js API Routes Next.js API RoutesPrisma Prisma

Integriertes Abwesenheitsmanagement

Mitarbeiter können Urlaub, Krankheitstage oder andere Abwesenheiten beantragen. Vorgesetzte werden benachrichtigt und können Anträge genehmigen oder ablehnen. Ein Teamkalender visualisiert Verfügbarkeiten und geplante Abwesenheiten.

React ReactPrisma PrismaNext.js API Routes Next.js API RoutesTypeScript TypeScript

Dynamisches Reporting & Datenexport

Interaktive Berichte (realisiert mit Chart.js) bieten Einblicke in gebuchte Zeiten pro Projekt, Kunde oder Mitarbeiter über wählbare Zeiträume. Wichtige Kennzahlen wie Budgetauslastung werden visualisiert. Daten können zur Weiterverarbeitung als CSV exportiert werden.

Prisma PrismaNext.js API Routes Next.js API RoutesReact React

Ergebnisse & Mehrwert

Die Implementierung von des Timetracking-Tools revolutionierte die internen Abläufe: Der administrative Aufwand für Zeiterfassung und Urlaubsverwaltung konnte um schätzungsweise 40-50% reduziert werden. Die Datenqualität der Projektzeiten stieg signifikant, was zu präziseren Nachkalkulationen und einer verbesserten Budgetkontrolle führte. Die Mitarbeiterzufriedenheit erhöhte sich durch die einfache Bedienung und die Transparenz über Arbeitszeiten und Urlaubsansprüche. Das Management profitiert von Echtzeit-Einblicken in die Projektprofitabilität und Ressourcenauslastung.

Quantifizierbare Verbesserungen durch das Timetracking-Tool

Administrativer Aufwand (Std./Woche)
1086420
8
4
Vorher
Nachher
-50%
Mitarbeiterzufriedenheit
Vorher
Nachher
Zeit für Monats-Reporting
4 Stunden
Vorher
unter 1 Stunde
Nachher
75% schneller

Diese Grafik visualisiert den messbaren Erfolg des Timetracking-Tools. Sie zeigt die signifikante Reduzierung des administrativen Aufwands, die drastische Verbesserung der Datengenauigkeit bei der Projektzeiterfassung sowie die Beschleunigung von Reporting-Prozessen. Die gestiegene Mitarbeiterzufriedenheit unterstreicht zudem die positive Auswirkung der benutzerfreundlichen und transparenten Lösung auf den Arbeitsalltag.

Gemeisterte Herausforderungen & Lernerfahrungen

Herausforderung: Umgang mit Zeitzonen und komplexen Zeitberechnungen

Die korrekte Handhabung von Zeitzonen und die präzise Berechnung von Arbeitsdauern unter Berücksichtigung verschiedener Rundungsregeln und Pausenmodelle war eine signifikante technische Hürde. Lösung: Einsatz von `date-fns` für Datumsmanipulationen, klare Definition der Server- vs. Client-Zeitlogik und umfangreiche Testfälle.

Lernerfahrung: Performance-Optimierung bei Reports

Initial waren komplexe Reports mit vielen Datenpunkten langsam. Lösung: Optimierung der Prisma-Queries (Selektion notwendiger Felder, effiziente Joins), Implementierung von Paginierung und serverseitiger Filterung sowie Caching-Strategien auf API-Ebene.

Lernerfahrung: Bedeutung eines robusten Datenbank-Schemas

Eine frühe Investition in ein durchdachtes, normalisiertes Datenbank-Schema mit geeigneten Indizes zahlte sich bei der Skalierung und Implementierung neuer Features aus. Prisma-Migrationen halfen, Änderungen strukturiert zu verwalten.

Lernerfahrung: Kontinuierliches User Feedback ist Gold wert

Regelmäßige, kurze Feedbackzyklen mit den tatsächlichen Endnutzern während der Entwicklung führten zu einer deutlich höheren Akzeptanz und Benutzerfreundlichkeit als ursprünglich angenommen. UI/UX-Anpassungen wurden frühzeitig vorgenommen.

Bereit für Ihre Lösung?

Haben Sie ein ähnliches Projekt oder möchten Sie erfahren, wie ich Ihre spezifischen Herausforderungen lösen kann? Lassen Sie uns sprechen!

Interesse an einer maßgeschneiderten Lösung?