2026-01-22 01:13:28 +01:00
2026-01-23 10:32:20 +01:00
2026-01-22 01:13:28 +01:00
2026-01-22 01:13:28 +01:00
2026-01-23 10:32:20 +01:00
2026-01-22 01:13:28 +01:00
2026-01-22 01:13:28 +01:00
2026-01-22 21:06:39 +01:00
2026-01-22 01:13:28 +01:00
2026-01-22 01:13:28 +01:00
2026-01-23 10:32:20 +01:00

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

  1. Melden Sie sich mit Ihren Zugangsdaten an
  2. Wählen Sie die gewünschte Woche aus (Pfeiltasten)
  3. Tragen Sie Ihre Arbeitszeiten ein:
    • Start: Arbeitsbeginn
    • Ende: Arbeitsende
    • Pause: Pausenzeit in Minuten
    • Notizen: Optional, z.B. Projekt oder Tätigkeit
  4. Die Einträge werden automatisch gespeichert
  5. Am Ende der Woche: Klicken Sie auf "Woche abschicken"
  6. Nach dem Abschicken können keine Änderungen mehr vorgenommen werden

Für Administratoren

  1. Melden Sie sich als Admin an
  2. Sie gelangen automatisch zur Benutzerverwaltung
  3. Neuen Benutzer anlegen:
    • Füllen Sie das Formular aus
    • Wählen Sie die passende Rolle
    • Klicken Sie auf "Benutzer anlegen"
  4. 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

  1. Melden Sie sich als Verwaltungs-Benutzer an
  2. Sie sehen alle eingereichten Stundenzettel im Postfach
  3. PDF erstellen:
    • Klicken Sie auf "PDF herunterladen" neben dem gewünschten Stundenzettel
    • Die PDF wird automatisch generiert und heruntergeladen
  4. 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
No description provided
Readme 570 KiB
Languages
JavaScript 71%
EJS 23.4%
CSS 5.5%