daf4f9b77c12143f3844721b3ebea9a66c24cfa0
Stundenerfassungs-System
Eine webbasierte Anwendung zur Erfassung von Arbeitszeiten mit Admin-Bereich und PDF-Export.
Features
Für Mitarbeiter
- ✅ Login mit Benutzername und Passwort
- ✅ Wöchentliche Stundenerfassung (Montag - Sonntag)
- ✅ Automatisches Speichern der Einträge
- ✅ Eingabe von Start-/Endzeit, Pausen und Notizen
- ✅ Automatische Berechnung der Gesamtstunden
- ✅ Wöchentliches Abschicken des Stundenzettels
Für Administratoren
- ✅ Benutzerverwaltung (Anlegen, Löschen)
- ✅ Rollenvergabe (Mitarbeiter, Verwaltung, Admin)
- ✅ Übersicht aller Benutzer
Für Verwaltung
- ✅ Postfach mit eingereichten Stundenzetteln
- ✅ PDF-Generierung und Download
- ✅ Übersichtliche Darstellung aller Einreichungen
Installation
Voraussetzungen
- Node.js (Version 14 oder höher)
- npm (wird mit Node.js installiert)
Schritt 1: Dependencies installieren
npm install
Schritt 2: Server starten
npm start
Der Server läuft nun auf http://localhost:3333
Für Entwicklung mit automatischem Neustart:
npm run dev
Standard-Zugangsdaten
Nach der Installation sind folgende Benutzer verfügbar:
Administrator
- Benutzername: admin
- Passwort: admin123
- Funktion: Kann Benutzer anlegen und verwalten
Verwaltung
- Benutzername: verwaltung
- Passwort: verwaltung123
- Funktion: Kann eingereichte Stundenzettel einsehen und PDFs erstellen
WICHTIG: Bitte ändern Sie diese Passwörter nach der ersten Anmeldung!
Verwendung
Für Mitarbeiter
- Melden Sie sich mit Ihren Zugangsdaten an
- Wählen Sie die gewünschte Woche aus (Pfeiltasten)
- Tragen Sie Ihre Arbeitszeiten ein:
- Start: Arbeitsbeginn
- Ende: Arbeitsende
- Pause: Pausenzeit in Minuten
- Notizen: Optional, z.B. Projekt oder Tätigkeit
- Die Einträge werden automatisch gespeichert
- Am Ende der Woche: Klicken Sie auf "Woche abschicken"
- Nach dem Abschicken können keine Änderungen mehr vorgenommen werden
Für Administratoren
- Melden Sie sich als Admin an
- Sie gelangen automatisch zur Benutzerverwaltung
- Neuen Benutzer anlegen:
- Füllen Sie das Formular aus
- Wählen Sie die passende Rolle
- Klicken Sie auf "Benutzer anlegen"
- Benutzer löschen:
- Klicken Sie auf "Löschen" neben dem gewünschten Benutzer
- System-Benutzer (Admin, Verwaltung) können nicht gelöscht werden
Für Verwaltung
- Melden Sie sich als Verwaltungs-Benutzer an
- Sie sehen alle eingereichten Stundenzettel im Postfach
- PDF erstellen:
- Klicken Sie auf "PDF herunterladen" neben dem gewünschten Stundenzettel
- Die PDF wird automatisch generiert und heruntergeladen
- Die PDF enthält:
- Mitarbeitername
- Zeitraum
- Alle Tageseinträge mit Start, Ende, Pause, Stunden und Notizen
- Gesamtstundensumme
Technologie-Stack
- Backend: Node.js + Express
- Datenbank: SQLite3
- Template Engine: EJS
- PDF-Generierung: PDFKit
- Authentifizierung: bcryptjs + express-session
Datenbankstruktur
Tabelle: users
- Speichert Benutzerinformationen und Zugangsdaten
- Passwörter werden verschlüsselt gespeichert
Tabelle: timesheet_entries
- Speichert einzelne Tageseinträge
- Automatische Berechnung der Gesamtstunden
Tabelle: weekly_timesheets
- Speichert eingereichte Wochenstundenzettel
- Verknüpfung mit Benutzer und Status
Sicherheit
- ✅ Passwörter werden mit bcrypt verschlüsselt
- ✅ Session-basierte Authentifizierung
- ✅ Rollenbasierte Zugriffskontrolle
- ✅ CSRF-Schutz durch Sessions
Anpassungen
Port ändern
Bearbeiten Sie in server.js die Zeile:
const PORT = 3333; // Ändern Sie hier den Port
Datenbank-Speicherort
Die Datenbank wird standardmäßig als stundenerfassung.db im Projektverzeichnis gespeichert.
Lizenz
Proprietär - Für interne Firmennutzung
Support
Bei Fragen oder Problemen wenden Sie sich bitte an Ihre IT-Abteilung.
Description
Languages
JavaScript
71%
EJS
23.4%
CSS
5.5%