Files
SDSStundenerfassung/README.md
2026-01-22 21:06:39 +01:00

153 lines
4.0 KiB
Markdown

# 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
```bash
npm install
```
### Schritt 2: Server starten
```bash
npm start
```
Der Server läuft nun auf `http://localhost:3333`
Für Entwicklung mit automatischem Neustart:
```bash
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:
```javascript
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.