Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⏱️ Timeslot

Moderne, schlanke und selbst gehostete Zeiterfassung für Teams und Einzelpersonen.

Timeslot ist eine webbasierte Zeiterfassungssoftware für die einfache Verwaltung von Arbeitszeiten, Urlaub, Krankheit, Feiertagen und Homeoffice.

Die Anwendung lässt sich unkompliziert self-hosted mit Docker betreiben und benötigt standardmäßig keine externe Datenbank. Für größere Installationen kann alternativ MySQL verwendet werden.


✨ Features

👤 Benutzer & Rollen

  • 🔐 Login mit Standard-Administrator admin / admin
  • 🔑 Passwortänderung beim ersten Login wird erzwungen
  • 👥 Benutzerverwaltung für Administratoren
  • ➕ Benutzer anlegen
  • 🔑 Automatische Generierung eines vorgeschlagenen Passworts
  • 🛡️ Rollenverwaltung: Administrator / Benutzer
  • 🗑️ Benutzer löschen
  • 🔄 Passwörter zurücksetzen
  • ✏️ Benutzer können ihr eigenes Passwort jederzeit ändern

⚙️ Persönliche Einstellungen

Jeder Benutzer kann seine persönlichen Arbeitsbedingungen konfigurieren:

  • 🏖️ Jährliche Urlaubstage
  • ⏰ Tägliche Soll-Arbeitszeit
  • 📅 Samstag als Arbeitstag aktivieren/deaktivieren
  • 📅 Sonntag als Arbeitstag aktivieren/deaktivieren
  • 📧 Eigene E-Mail-Adresse hinterlegen oder entfernen

Die E-Mail-Adresse kann unabhängig von einer eventuellen Einstellungs-Sperre jederzeit vom Benutzer geändert werden.


📅 Kalender & Abwesenheiten

Der Kalender bildet die zentrale Startseite von Timeslot.

  • Monats- und Wochenansicht
  • Navigation in die Vergangenheit und Zukunft
  • Tagesdetails über ein übersichtliches Modal
  • Urlaub buchen und stornieren
  • Feiertage verwalten
  • Gleittage verwalten
  • Krankmeldungen verwalten
  • Zeiträume über Von / Bis erfassen
  • Bereits vorhandene Einträge werden nicht überschrieben
  • Nicht als Arbeitstage konfigurierte Wochenenden werden automatisch übersprungen

🕐 Stempelungen

Direkt im Tagesdialog werden alle Stempelungen des jeweiligen Tages angezeigt.

Stempelungen können:

  • ➕ hinzugefügt
  • ✏️ bearbeitet
  • 🗑️ gelöscht

werden.

Damit lassen sich beispielsweise vergessene Ausstempelungen problemlos nachtragen.

Unterstützt werden:

  • 🏢 Büro Beginn
  • 🏢 Büro Ende
  • 🏠 Homeoffice Beginn
  • 🏠 Homeoffice Ende

Ungültige Kombinationen werden serverseitig verhindert. Beispielsweise kann Homeoffice nicht beendet werden, während gleichzeitig eine aktive Büro-Stempelung besteht.


📊 Arbeitszeit & Urlaub

Timeslot berechnet automatisch die wichtigsten Kennzahlen:

  • Gesamt-Saldo
  • Soll-Arbeitszeit
  • Ist-Arbeitszeit
  • Verfügbarer Urlaub
  • Voraussichtlich am 31.12. verfügbarer Urlaub

Die Berechnung von Sollzeit, Istzeit und Saldo beginnt erst ab dem Erstellungsdatum des jeweiligen Benutzerkontos.


🎨 Übersichtlicher Kalender

Der Kalender stellt verschiedene Buchungen übersichtlich dar.

Stempelungen werden zusätzlich mit Punkten gekennzeichnet:

  • 🔵 Blauer Punkt → Büro
  • 🟠 Oranger Punkt → Homeoffice

Urlaub, Feiertage, Gleittage und Krankheit werden entsprechend ihrer jeweiligen Buchung im Kalender dargestellt.


📧 SMTP & automatische Monatsjournale

Administratoren können SMTP direkt über die Timeslot-Oberfläche konfigurieren.

Unter SMTP lassen sich unter anderem einstellen:

  • Mailserver
  • Port
  • Verschlüsselung
  • Authentifizierung
  • Unverschlüsselte SMTP-Verbindungen, z. B. Port 25 ohne Authentifizierung

Eine Test-Mail kann direkt aus der Anwendung an eine beliebige Adresse verschickt werden.

📬 Automatischer Monatsversand

Am 1. jedes Monats wird automatisch das Excel-Journal des Vormonats an alle Benutzer verschickt, die eine E-Mail-Adresse hinterlegt haben.

Betreff: Monatsjournal

Der Versand ist für größere Benutzerzahlen ausgelegt:

  • ♻️ Wiederverwendete SMTP-Verbindung
  • 📦 SMTP-Verbindung wird gepoolt
  • 🚦 Begrenzte Parallelität von maximal 3 Benutzern
  • 🛡️ Fehler bei einzelnen Empfängern stoppen nicht den gesamten Versand

📑 Excel-Export

Die Monatsübersicht kann als Excel-Datei exportiert werden.

Der Export enthält unter anderem:

  • Arbeitszeiten
  • Abwesenheiten
  • Salden
  • Monatsübersicht
  • Projekt-/Unternehmenslogo

Während der Erstellung wird eine Ladeanimation mit abgedunkeltem Hintergrund angezeigt.


🖼️ Screenshots

Kalender

Timeslot Kalender

Benutzerverwaltung

Timeslot Benutzerverwaltung

Einstellungen

Timeslot Einstellungen

🐳 Docker

Timeslot wurde für einen einfachen Self-Hosted-Betrieb mit Docker entwickelt.

Schnellstart

docker compose up --build

Anschließend ist Timeslot unter

http://localhost:3000

erreichbar.

Standard-Login:

Benutzer: admin
Passwort: admin

Beim ersten Login muss das Passwort geändert werden.

💾 Daten

Standardmäßig verwendet Timeslot SQLite.

Die Daten werden im Docker-Volume

timeslot_data

gespeichert.


🗄️ MySQL

Für Installationen mit MySQL kann die Datenbank über Umgebungsvariablen konfiguriert werden.

DB_TYPE=mysql
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DATABASE=timeslot
MYSQL_USER=timeslot
MYSQL_PASSWORD=timeslot

Ein Beispiel für einen MySQL-Service ist bereits in der docker-compose.yml enthalten und kann dort aktiviert werden.


🔨 Docker Image manuell bauen

docker build -t timeslot:latest .

Container starten:

docker run \
  -p 3000:3000 \
  -v timeslot_data:/app/data \
  timeslot:latest

💻 Lokale Entwicklung

Timeslot kann auch ohne Docker ausgeführt werden.

Voraussetzung: Node.js 18+

npm install
npm start

Ohne konfigurierte MySQL-Umgebungsvariablen wird automatisch SQLite verwendet.

Die Datenbank befindet sich anschließend unter:

./data/timeslot.sqlite

🔐 Sicherheit

Für den produktiven Betrieb sollten unbedingt eigene Secrets verwendet werden.

Setze insbesondere:

JWT_SECRET=<zufälliger-geheimer-wert>

Außerdem sollte das Standard-Administratorpasswort unmittelbar geändert werden.

Die Passwortänderung wird beim ersten Login automatisch erzwungen.

🐳 Docker Image

Das fertige Docker-Image findest du hier:

Docker Repository

Made with ❤️ by Raphael & Claude for simple, self-hosted time tracking.

About

Deutsche Zeiterfassung für Arbeitszeiten. Mandantenfähig

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages