Files
Meeting-Mixer/README.md
T
ferdi2goandClaude Opus 4.8 189bcb6f38 test: add jsdom render + persistence integration tests (#13)
- render.test.mjs drives the real UI under jsdom: employees tab renders and
  add works, planning tab renders the calendar grid (makeDayCell), generate
  fills slots, a manual slot change updates history, and a beforeunload flush
  persists state to localStorage; data tab renders the history view.
- persistence.test.mjs seeds malformed persisted state (employee without
  constraints, out-of-range moderatorsPerDay) and asserts the startup load
  normalizes it without crashing.
- jsdom added as the single devDependency; node_modules gitignored; both
  suites wired into npm test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 14:03:00 +00:00

52 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://sheetjs.com/) (per CDN, mit SRI eingebunden)
- **Statisches Serving:** [`serve`](https://www.npmjs.com/package/serve) (Dev)
- **Tests:** Node-Assertions (`node:assert`); DOM-/Render-Tests via [jsdom](https://github.com/jsdom/jsdom) (einzige devDependency)
Voraussetzung: ein moderner Browser mit ES-Modul-Unterstützung.
## Starten
```bash
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
```bash
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.