Files
SDSStundenerfassung/doc/DSGVO-Dokumentation.md

20 KiB

DSGVO-Dokumentation

Stundenerfassungssystem


1. Verantwortlicher und Kontaktdaten

Verantwortlicher für die Datenverarbeitung:

SDS Systemtechnik
Rudolf-Diesel-Str. 7
75365 Calw
info@sds-systemtechnik.de
+497051931540

Datenschutzbeauftragter (falls vorhanden):
Matthias Herrlinger
connexo GmbH
Jägerstraße 4F
71296 Heimsheim

Kontakt für Datenschutzanfragen: Carsten Graf
Mechatronik-Ingenieur / IT-Infrastruktur
SDS Systemtechnik
carsten.graf@sds-systemtechnik.de
+4970519315416


2. Zweck der Datenverarbeitung

Das Stundenerfassungssystem dient der Erfassung, Verwaltung und Dokumentation von Arbeitszeiten der Mitarbeiter. Die Verarbeitung personenbezogener Daten erfolgt zu folgenden Zwecken:

  • Zeiterfassung: Erfassung von Arbeitsbeginn, Arbeitsende, Pausen und Gesamtarbeitszeit
  • Arbeitszeitverwaltung: Berechnung von Überstunden, Urlaubstagen und Fehlzeiten
  • Lohnabrechnung: Bereitstellung von Daten für die Lohn- und Gehaltsabrechnung
  • Projektabrechnung: Zuordnung von Arbeitszeiten zu Projekten und Projektnummern
  • Compliance: Einhaltung arbeitsrechtlicher Vorschriften (z.B. Arbeitszeitgesetz)
  • Authentifizierung: Sicherstellung des Zugriffs nur für berechtigte Personen
  • Automatische Zeiterfassung: IP-basierte automatische Erfassung von Arbeitsbeginn und -ende (optional)

3. Rechtsgrundlage

Die Verarbeitung personenbezogener Daten erfolgt auf Grundlage der folgenden Rechtsgrundlagen nach der DSGVO:

  • Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung): Erfüllung des Arbeitsvertrags, insbesondere Erfassung der Arbeitszeit zur Lohnabrechnung
  • Art. 6 Abs. 1 lit. c DSGVO (Rechtliche Verpflichtung): Erfüllung gesetzlicher Verpflichtungen (z.B. Arbeitszeitgesetz, Aufbewahrungspflichten nach HGB/GoBD)
  • Art. 6 Abs. 1 lit. f DSGVO (Berechtigtes Interesse): Betriebswirtschaftliche Interessen (Projektabrechnung, Arbeitszeitoptimierung)

Besondere Kategorien personenbezogener Daten:

  • Krankheitsdaten (sick_status): Art. 9 Abs. 2 lit. b DSGVO (Arbeitsrechtliche Verpflichtungen)

4. Erfasste Datenkategorien

4.1 Benutzerdaten (Tabelle: users)

Datenfeld Beschreibung Kategorie
id Eindeutige Benutzer-ID (automatisch generiert) Identifikationsdaten
username Benutzername für Login Authentifizierung
password Passwort (gehasht mit bcrypt) Authentifizierung
firstname Vorname Identifikationsdaten
lastname Nachname Identifikationsdaten
personalnummer Personalnummer des Mitarbeiters Identifikationsdaten
role Benutzerrolle(n) als JSON-Array (z.B. "mitarbeiter", "verwaltung", "admin") Berechtigungsdaten
wochenstunden Soll-Arbeitsstunden pro Woche Arbeitszeitdaten
urlaubstage Anzahl der Urlaubstage pro Jahr Arbeitszeitdaten
overtime_offset_hours Manuelle Korrektur der Überstunden durch Verwaltung Arbeitszeitdaten
vacation_offset_days Manuelle Korrektur der Urlaubstage durch Verwaltung Arbeitszeitdaten
ping_ip IP-Adresse für automatische Zeiterfassung (optional) Technische Daten
last_week_start Letzte bearbeitete Woche (für UI-Navigation) Systemdaten
created_at Zeitstempel der Benutzererstellung Metadaten

4.2 Zeiterfassungsdaten (Tabelle: timesheet_entries)

Datenfeld Beschreibung Kategorie
id Eindeutige Eintrags-ID Identifikationsdaten
user_id Verknüpfung zum Benutzer Identifikationsdaten
date Datum des Arbeitstages (Format: YYYY-MM-DD) Zeitstempel
start_time Arbeitsbeginn (Format: HH:MM) Zeitstempel
end_time Arbeitsende (Format: HH:MM) Zeitstempel
pause_start_time Pausenbeginn (Format: HH:MM, optional) Zeitstempel
pause_end_time Pausenende (Format: HH:MM, optional) Zeitstempel
break_minutes Pausenzeit in Minuten Arbeitszeitdaten
total_hours Berechnete Gesamtarbeitszeit in Stunden Arbeitszeitdaten
activity1_desc bis activity5_desc Beschreibung der Tätigkeit (bis zu 5 pro Tag) Tätigkeitsdaten
activity1_hours bis activity5_hours Stunden für die jeweilige Tätigkeit Tätigkeitsdaten
activity1_project_number bis activity5_project_number Projektnummer für die jeweilige Tätigkeit Projektbezogene Daten
notes Freitext-Notizen zum Arbeitstag Tätigkeitsdaten
overtime_taken_hours Verbrauchte Überstunden an diesem Tag Arbeitszeitdaten
vacation_type Urlaubstyp ("full" = ganzer Tag, "half" = halber Tag, null = kein Urlaub) Arbeitszeitdaten
sick_status Krankheitsstatus (0 = nicht krank, 1 = krank) Gesundheitsdaten
weekend_travel Wochenend-Reise (0 = nein, 1 = ja) Arbeitszeitdaten
applied_weekend_percentage Angewendeter Wochenend-Prozentsatz für Berechnung Arbeitszeitdaten
status Status des Eintrags ("offen", "eingereicht") Metadaten
created_at Zeitstempel der Erstellung Metadaten
updated_at Zeitstempel der letzten Änderung Metadaten

4.3 Wochenstundenzettel (Tabelle: weekly_timesheets)

Datenfeld Beschreibung Kategorie
id Eindeutige Stundenzettel-ID Identifikationsdaten
user_id Verknüpfung zum Benutzer Identifikationsdaten
week_start Startdatum der Woche (Format: YYYY-MM-DD) Zeitstempel
week_end Enddatum der Woche (Format: YYYY-MM-DD) Zeitstempel
version Versionsnummer des Stundenzettels (bei Änderungen) Metadaten
version_reason Grund für die neue Version (Freitext) Metadaten
status Status ("eingereicht", "bearbeitet") Metadaten
submitted_at Zeitstempel der Einreichung Metadaten
reviewed_by ID des prüfenden Verwaltungsmitarbeiters Identifikationsdaten
reviewed_at Zeitstempel der Prüfung Metadaten
pdf_downloaded_at Zeitstempel des PDF-Downloads Metadaten
pdf_downloaded_by ID des Benutzers, der das PDF heruntergeladen hat Identifikationsdaten
admin_comment Kommentar der Verwaltung zum Stundenzettel Metadaten

4.4 IP-basierte Zeiterfassung (Tabelle: ping_status)

Datenfeld Beschreibung Kategorie
user_id Verknüpfung zum Benutzer Identifikationsdaten
date Datum (Format: YYYY-MM-DD) Zeitstempel
last_successful_ping Zeitstempel des letzten erfolgreichen Pings Technische Daten
failed_ping_count Anzahl fehlgeschlagener Pings Technische Daten
start_time_set Flag, ob Start-Zeit bereits gesetzt wurde (0/1) Technische Daten
first_failed_ping_time Zeitstempel des ersten fehlgeschlagenen Pings Technische Daten

4.5 LDAP-Synchronisation (Tabelle: ldap_sync_log)

Datenfeld Beschreibung Kategorie
id Eindeutige Log-ID Identifikationsdaten
sync_type Typ der Synchronisation ("manual" oder "automatic") Metadaten
status Status ("success", "error") Metadaten
users_synced Anzahl synchronisierter Benutzer Metadaten
error_message Fehlermeldung bei Fehlern (optional) Metadaten
sync_started_at Zeitstempel des Synchronisationsbeginns Metadaten
sync_completed_at Zeitstempel des Synchronisationsendes Metadaten

LDAP-Konfiguration (Tabelle: ldap_config): Diese Tabelle enthält keine personenbezogenen Daten, sondern nur technische Konfigurationsdaten für die LDAP-Verbindung.

LDAP-Synchronisierte Daten: Bei aktivierter LDAP-Integration werden folgende Daten aus dem Active Directory synchronisiert:

  • username (sAMAccountName)
  • firstname (givenName)
  • lastname (sn)

4.6 Session-Daten (Express-Session)

Datenfeld Beschreibung Speicherdauer
userId ID des angemeldeten Benutzers 24 Stunden (Standard) oder 30 Tage (bei "Angemeldet bleiben")
roles Array der Benutzerrollen 24 Stunden (Standard) oder 30 Tage (bei "Angemeldet bleiben")
currentRole Aktuell ausgewählte Rolle 24 Stunden (Standard) oder 30 Tage (bei "Angemeldet bleiben")

Cookie-Informationen:

  • Cookie-Name: connect.sid
  • Speicherort: Client-Browser
  • Verschlüsselung: Session-Daten werden serverseitig gespeichert, Cookie enthält nur Session-ID

4.7 Systemdaten (keine personenbezogenen Daten)

Tabelle: public_holidays

  • date: Feiertagsdatum
  • name: Name des Feiertags

Tabelle: system_options

  • saturday_percentage: Prozentsatz für Samstagsarbeit
  • sunday_percentage: Prozentsatz für Sonntagsarbeit
  • checkin_root_url: Basis-URL für Check-in/Check-out Links

5. Datenquellen

Die personenbezogenen Daten stammen aus folgenden Quellen:

  1. Direkte Eingabe durch Mitarbeiter: Zeiterfassungsdaten, Tätigkeitsbeschreibungen, Projektnummern, Notizen
  2. Automatische Erfassung: IP-basierte Zeiterfassung (optional, wenn ping_ip konfiguriert ist)
  3. LDAP/Active Directory: Bei aktivierter LDAP-Integration werden Benutzername, Vorname und Nachname aus dem Active Directory synchronisiert
  4. Administrative Eingabe: Personalnummer, Wochenstunden, Urlaubstage, Überstunden-Offset, Urlaubstage-Offset durch Verwaltung/Admin
  5. Automatische Berechnung: Gesamtstunden, Überstunden werden automatisch aus den eingegebenen Daten berechnet
  6. Systemgeneriert: IDs, Zeitstempel (created_at, updated_at), Session-Daten

6. Empfänger der Daten

Die personenbezogenen Daten werden folgenden Empfängern zugänglich gemacht:

6.1 Interne Empfänger

  • Mitarbeiter: Zugriff auf eigene Zeiterfassungsdaten über das Dashboard
  • Verwaltungsmitarbeiter: Zugriff auf alle eingereichten Stundenzettel zur Prüfung und PDF-Generierung
  • Administratoren: Vollzugriff auf alle Daten zur Systemverwaltung und Benutzerverwaltung
  • IT-Administration: Technischer Zugriff für Wartung und Support (nur bei Bedarf)

6.2 Externe Empfänger

  • Lohnbuchhaltung: PDF-Stundenzettel werden für die Lohnabrechnung verwendet (manueller Export)
  • Steuerberater/Wirtschaftsprüfer: Bei Prüfungen können Daten eingesehen werden (gemäß gesetzlichen Aufbewahrungspflichten)

6.3 Keine Weitergabe an Dritte

Die Daten werden nicht an Dritte (außerhalb der oben genannten Empfänger) weitergegeben. Es erfolgt keine Datenweitergabe an:

  • Externe Dienstleister (außer bei expliziter Auftragsverarbeitung)
  • Marketing-Unternehmen
  • Soziale Netzwerke
  • Andere Unternehmen

7. Speicherdauer und Löschung

7.1 Speicherdauer

Die personenbezogenen Daten werden für folgende Zeiträume gespeichert:

  • Zeiterfassungsdaten: Mindestens 10 Jahre gemäß § 257 HGB (Aufbewahrungspflicht für Handelsbücher und Belege)
  • Lohnabrechnungsrelevante Daten: 10 Jahre gemäß § 147 AO (Abgabenordnung)
  • Benutzerdaten: Solange der Mitarbeiter im Unternehmen beschäftigt ist, danach gemäß Aufbewahrungspflichten
  • Session-Daten: Werden automatisch nach Ablauf der Cookie-Laufzeit gelöscht (24 Stunden oder 30 Tage)
  • LDAP-Sync-Logs: 1 Jahr (technische Logs)

7.2 Löschung

Die Löschung erfolgt:

  • Automatisch: Session-Daten nach Ablauf der Cookie-Laufzeit
  • Manuell: Bei Beendigung des Arbeitsverhältnisses, jedoch unter Beachtung der gesetzlichen Aufbewahrungspflichten
  • Auf Anfrage: Gemäß den Betroffenenrechten (siehe Abschnitt 8), soweit keine gesetzlichen Aufbewahrungspflichten entgegenstehen

Hinweis: Auch nach Beendigung des Arbeitsverhältnisses können Daten aufgrund gesetzlicher Aufbewahrungspflichten (HGB, AO) nicht sofort gelöscht werden. Nach Ablauf der Aufbewahrungsfristen erfolgt die Löschung.


8. Betroffenenrechte

Jede betroffene Person hat folgende Rechte nach der DSGVO:

8.1 Auskunftsrecht (Art. 15 DSGVO)

Sie haben das Recht, Auskunft über die zu Ihrer Person gespeicherten Daten zu erhalten. Dies umfasst:

  • Kategorien der verarbeiteten Daten
  • Zweck der Verarbeitung
  • Empfänger der Daten
  • Geplante Speicherdauer
  • Herkunft der Daten

8.2 Recht auf Berichtigung (Art. 16 DSGVO)

Sie haben das Recht, die Berichtigung unrichtiger oder die Vervollständigung unvollständiger Daten zu verlangen.

8.3 Recht auf Löschung (Art. 17 DSGVO)

Sie haben das Recht, die Löschung Ihrer Daten zu verlangen, sofern:

  • Die Daten für den ursprünglichen Zweck nicht mehr benötigt werden
  • Sie Ihre Einwilligung widerrufen haben
  • Die Daten unrechtmäßig verarbeitet wurden
  • Keine gesetzlichen Aufbewahrungspflichten entgegenstehen

Wichtig: Aufgrund gesetzlicher Aufbewahrungspflichten (HGB, AO) können Zeiterfassungsdaten für 10 Jahre nicht gelöscht werden.

8.4 Recht auf Einschränkung der Verarbeitung (Art. 18 DSGVO)

Sie haben das Recht, die Einschränkung der Verarbeitung zu verlangen, wenn:

  • Die Richtigkeit der Daten bestritten wird
  • Die Verarbeitung unrechtmäßig ist
  • Die Daten nicht mehr benötigt werden, aber für Rechtsansprüche erforderlich sind

8.5 Recht auf Datenübertragbarkeit (Art. 20 DSGVO)

Sie haben das Recht, Ihre Daten in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten und an einen anderen Verantwortlichen zu übermitteln.

8.6 Widerspruchsrecht (Art. 21 DSGVO)

Sie haben das Recht, der Verarbeitung Ihrer Daten zu widersprechen, wenn die Verarbeitung auf Art. 6 Abs. 1 lit. f DSGVO (Berechtigtes Interesse) beruht.

Hinweis: Da die Zeiterfassung primär zur Erfüllung arbeitsvertraglicher und gesetzlicher Verpflichtungen erfolgt, ist ein Widerspruch in der Regel nicht möglich.

8.7 Widerruf der Einwilligung (Art. 7 Abs. 3 DSGVO)

Falls die Datenverarbeitung auf einer Einwilligung beruht, haben Sie das Recht, diese jederzeit zu widerrufen.

8.8 Beschwerderecht (Art. 77 DSGVO)

Sie haben das Recht, eine Beschwerde bei einer Aufsichtsbehörde einzulegen, insbesondere in dem Mitgliedstaat, in dem Sie sich aufhalten, arbeiten oder in dem der mutmaßliche Verstoß aufgetreten ist.

Zuständige Aufsichtsbehörde: Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg
[Adresse]
[E-Mail]
[Telefon]

8.9 Ausübung der Rechte

Um Ihre Rechte auszuüben, wenden Sie sich bitte an:

Carsten Graf
Mechatronik-Ingenieur / IT-Infrastruktur
SDS Systemtechnik
[E-Mail]
[Telefon]


9. Technische und organisatorische Maßnahmen (TOM)

Zur Gewährleistung der Datensicherheit wurden folgende technische und organisatorische Maßnahmen implementiert:

9.1 Zugriffskontrolle

  • Authentifizierung: Passwort-basierte Authentifizierung mit bcrypt-Hashing (10 Runden)
  • Autorisierung: Rollenbasierte Zugriffskontrolle (Mitarbeiter, Verwaltung, Admin)
  • Session-Management: Express-Session mit serverseitiger Speicherung, Session-IDs in verschlüsselten Cookies
  • Automatische Abmeldung: Session-Cookies laufen nach 24 Stunden (Standard) oder 30 Tagen (bei "Angemeldet bleiben") ab

9.2 Verschlüsselung

  • Passwörter: Bcrypt-Hashing mit Salt (10 Runden)
  • Datenübertragung: Empfohlen wird die Verwendung von HTTPS (TLS/SSL) über einen Reverse Proxy (z.B. nginx)
  • Datenbank: SQLite-Datenbankdatei sollte auf einem gesicherten Server gespeichert werden

9.3 Datensicherung

  • Backups: Regelmäßige Backups der SQLite-Datenbankdatei (stundenerfassung.db)
  • Backup-Speicherung: Backups sollten an einem separaten, gesicherten Ort gespeichert werden

9.4 Integrität

  • Datenbank-Constraints: Foreign Keys und Constraints zur Gewährleistung der Datenintegrität
  • Validierung: Eingabevalidierung auf Server- und Client-Seite
  • Versionierung: Versionsverwaltung bei Stundenzetteln zur Nachvollziehbarkeit von Änderungen

9.5 Verfügbarkeit

  • Server-Monitoring: Überwachung der Server-Verfügbarkeit
  • Fehlerbehandlung: Umfassende Fehlerbehandlung und Logging

9.6 Trennbarkeit

  • Datenbank-Isolation: Jeder Benutzer kann nur auf seine eigenen Daten zugreifen (außer Verwaltung/Admin)
  • Rollenbasierte Ansichten: Unterschiedliche Ansichten je nach Benutzerrolle

9.7 Pseudonymisierung

  • Benutzer-IDs: Interne Verwendung von numerischen IDs statt Namen für Datenbankverknüpfungen
  • Session-IDs: Verwendung von zufälligen Session-IDs statt direkter Benutzeridentifikation in Cookies

10. Besondere Verarbeitungssituationen

10.1 IP-basierte automatische Zeiterfassung

Funktionsweise:

  • Mitarbeiter können optional eine IP-Adresse (ping_ip) hinterlegen
  • Das System pingt diese IP-Adresse jede Minute
  • Bei erfolgreichem Ping wird automatisch die Start-Zeit gesetzt
  • Bei 3 fehlgeschlagenen Pings wird automatisch die End-Zeit gesetzt

Erfasste Daten:

  • IP-Adresse des Mitarbeiters (freiwillig hinterlegt)
  • Ping-Status (erfolgreich/fehlgeschlagen)
  • Zeitstempel der Pings
  • Automatisch generierte Start- und End-Zeiten

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) - Erfassung der Arbeitszeit

Hinweis: Die IP-Adresse wird nur für die automatische Zeiterfassung verwendet und nicht an Dritte weitergegeben.

10.2 LDAP/Active Directory Integration

Funktionsweise:

  • Optional kann eine LDAP/Active Directory-Verbindung konfiguriert werden
  • Benutzer werden automatisch oder manuell aus dem Active Directory synchronisiert
  • Synchronisierte Daten: Benutzername, Vorname, Nachname

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) - Bereitstellung des Systems für Mitarbeiter

Hinweis: Die LDAP-Konfiguration (URL, Bind-DN, Passwort) wird verschlüsselt in der Datenbank gespeichert. Die Synchronisation erfolgt nur innerhalb des Unternehmensnetzwerks.

10.3 PDF-Generierung

Funktionsweise:

  • Verwaltungsmitarbeiter können PDF-Stundenzettel generieren
  • PDFs enthalten alle Zeiterfassungsdaten einer Woche
  • PDFs werden für die Lohnabrechnung verwendet

Enthaltene Daten:

  • Mitarbeitername und Personalnummer
  • Zeitraum (Woche)
  • Alle Tageseinträge mit Start, Ende, Pause, Stunden
  • Tätigkeiten mit Projektnummern
  • Überstunden, Urlaub, Feiertage
  • Gesamtstundensumme

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) - Lohnabrechnung

Hinweis: PDFs werden nur intern verwendet und nicht an Dritte weitergegeben (außer Lohnbuchhaltung).

10.4 QR-Code Check-in/Check-out

Funktionsweise:

  • Jeder Mitarbeiter erhält einen persönlichen QR-Code
  • QR-Code enthält die Benutzer-ID
  • Scan des QR-Codes führt zu Check-in oder Check-out

Erfasste Daten:

  • Benutzer-ID (aus QR-Code)
  • Zeitstempel des Scans
  • Automatisch gesetzte Start- oder End-Zeit

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) - Erfassung der Arbeitszeit


11. Datenübertragung in Drittländer

Aktuell erfolgt keine Datenübertragung in Drittländer.

Alle Daten werden auf Servern innerhalb der Europäischen Union (EU) oder des Europäischen Wirtschaftsraums (EWR) gespeichert und verarbeitet.

Falls in Zukunft eine Datenübertragung in Drittländer erforderlich sein sollte, wird dies nur unter Einhaltung der DSGVO-Anforderungen (z.B. Standardvertragsklauseln, Angemessenheitsbeschluss) erfolgen.


12. Automatisierte Entscheidungsfindung und Profiling

Es erfolgt keine automatisierte Entscheidungsfindung (Art. 22 DSGVO) oder Profiling.

Die automatische Berechnung von Arbeitszeiten und Überstunden dient lediglich der Unterstützung der manuellen Prüfung durch die Verwaltung und stellt keine automatisierte Entscheidung dar.


13. Änderungen dieser Dokumentation

Diese DSGVO-Dokumentation wird bei Änderungen der Datenverarbeitung aktualisiert. Die aktuelle Version ist immer im System verfügbar.

Letzte Aktualisierung: [Datum]

Version: 1.0


14. Anhang: Datenbank-Schema-Übersicht

Tabellen mit personenbezogenen Daten:

  1. users: Benutzerdaten, Authentifizierung, Arbeitszeitkonfiguration
  2. timesheet_entries: Tageseinträge mit Zeiten, Tätigkeiten, Projektnummern
  3. weekly_timesheets: Eingereichte Wochenstundenzettel
  4. ping_status: IP-basierte Zeiterfassungsdaten
  5. ldap_sync_log: Synchronisationsprotokolle (enthält Anzahl synchronisierter Benutzer)

Tabellen ohne personenbezogene Daten:

  1. public_holidays: Feiertage (Baden-Württemberg)
  2. system_options: Systemweite Einstellungen
  3. ldap_config: LDAP-Konfiguration (keine personenbezogenen Daten)

Ende der DSGVO-Dokumentation