836d0eeda5c154a8c9c7d3c377d1a73fb6be6e8a
- Canonical name "Meeting Mixer" everywhere: <title>, README, .vch-description (now non-technical per convention) and package.json (meeting-mixer). - README gains a Tech-Stack section and an accurate, non-misleading port note. - Magic numbers replaced by named constants: LOW_PRIORITY_PENALTY in algorithm.js; MIN/MAX_MODERATORS_PER_DAY in utils.js, used by data.js, calendar.js and app.js. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Meeting Mixer
Web-App zur Planung und Verwaltung von Meeting-Moderatoren.
Features
- Mitarbeiterverwaltung – Mitarbeiter anlegen, bearbeiten und deaktivieren
- Monatsplanung – Kalenderbasierte Zuweisung von Moderatoren pro Tag
- Algorithmus – Automatische, gleichmäßige Verteilung der Moderationen auf alle aktiven Mitarbeiter
- Excel-Export – Fertige Monatsplanung als XLSX-Datei exportieren
- JSON Import/Export – Kompletten Datenstand sichern und wiederherstellen
- Verlauf – Vergangene Monatspläne einsehen und wiederherstellen
- Persistenz – Automatische Speicherung im Browser (localStorage)
Tech-Stack
- Vanilla JavaScript (ES-Module) – kein Framework, kein Build-Schritt
- Persistenz: Browser-
localStorage(kein Backend, keine Datenbank) - Excel-Im-/Export: SheetJS (per CDN, mit SRI eingebunden)
- Statisches Serving:
serve(Dev) - Tests: Node-Assertions (
node:assert), ohne externe Abhängigkeiten
Voraussetzung: ein moderner Browser mit ES-Modul-Unterstützung.
Starten
npm start
Startet einen statischen Server. Der genutzte Port wird beim Start ausgegeben (Standard 3001; weicht automatisch aus, falls belegt). Öffne anschließend die angezeigte URL im Browser.
Tests
npm test
Datenschutz & Speicherung
Diese App ist ein lokales Single-User-Werkzeug: Alle Daten (Mitarbeiternamen,
Urlaube, Pläne, Verlauf) werden ausschließlich im Browser (localStorage)
gespeichert. Es gibt keinen Server und keine Übertragung an Dritte. Die Daten
liegen unverschlüsselt vor und sind für jeden zugänglich, der Zugriff auf
dasselbe Browser-Profil hat.
- App nicht auf geteilten/öffentlichen Geräten für sensible Daten nutzen.
- Datenstand regelmäßig über JSON-Export (Tab „Daten") sichern.
- Beim Leeren der Browserdaten gehen alle nicht exportierten Daten verloren.
Languages
JavaScript
78.8%
CSS
13.3%
HTML
7.9%