Cevi Schichtplan V2 🏕️📋
Moderne, mandantenfähige (Multi-Tenant) und multi-eventfähige Web-Plattform zur Organisation von Schichtplänen, Einsätzen und Helferteams für Cevi-Abteilungen in der Schweiz.
[!NOTE]
Du willst den Schichtplan für deine Abteilung oder deinen Anlass nutzen? Dafür brauchst du diesen Code nicht.
Die Plattform läuft bereits auf cevi-schichtplan.ch, Anleitungen findest du im Hilfe-Center.
Dieses Repository richtet sich an Entwickler:innen, die mithelfen oder den Aufbau verstehen möchten.
Screenshots mit Demo-Daten aus npm run db:seed.
✨ Hauptfunktionen
- 🏰 Mandantenfähig via Subdomains: Jede Cevi-Abteilung erhält eine eigene Web-Präsenz (z. B.
https://<abteilung>.cevi-schichtplan.ch) mit individueller Farbgebung, eigenem Logo und eigener Stufenstruktur.
- 🔑 Cevi.DB (Hitobito) Single Sign-On: Nahtlose OAuth-2.0-Integration mit der zentralen Verbandsdatenbank
db.cevi.ch. Synchronisation von Cevi-Namen, Geburtsdatum, Stufen und automatischer Vergabe von Leitungsrechten für Abteilungsleitungen.
- ⛺ Multi-Event-Architektur: Parallele Verwaltung beliebig vieler Anlässe pro Abteilung (z. B. Chilbi, Sommerlager, Pfingstlager, Suppentag, Sponsorenlauf).
- 🛠️ Mächtiger OK-Bereich (Verwaltung):
- Wiederverwendbarer Katalog an Aufgaben und Einsatzbereichen mit Jugendschutz-Regeln (Mindestalter, J+S-Leitungsanforderungen).
- Schichten-Seriengenerator für wiederkehrende Zeitblöcke.
- Helfer-Pool & Soll-Roster zur Überwachung der Abdeckung.
- Granulares Rollen- und Rechtesystem für OK-Mitglieder und Abteilungsleitungen.
- Integriertes Nachrichtensystem für gezielte Helfer-Kommunikation per Mail.
- PDF-Druckexport im professionellen Cevi-Design sowie CSV/Excel-Export.
- 🙋 Intuitive Helfer*innen-Experience:
- Schichtanmeldung mit 1-Klick oder Gast-Eintragung.
- «Ersatz gesucht»: Helfer*innen können Schichten bei Verhinderung ausschreiben und unkompliziert abgeben.
- PWA & Offline-Briefing: Schichtdetails, Standorte, Notfallkontakte und Check-in-QR-Code bleiben auch bei schlechtem Mobilfunknetz auf dem Festgelände offline verfügbar.
- Kalender-Integration: Webcal Live-Feed (Abonnement mit automatischer Aktualisierung) sowie 1-Klick-Export für Google Kalender und Apple iCal.
- QR-Check-in & Anwesenheit: Kontaktloses Einchecken vor Ort am Stand per QR-Code oder digitales Abhaken durch das OK.
- 🔔 Benachrichtigungen & Monitoring:
- E-Mail-Bestätigung, Passwort-Reset und konfigurierbare Schicht-Erinnerungen (z. B. 24h vor Schichtbeginn).
- Web Push Benachrichtigungen für kurzfristige Änderungen.
- Automatische Server-Alarme (DB-Pool, SMTP, 500er-Fehler) via Discord/Slack-Webhook.
- 🔒 Datenschutz & Schweizer Recht (nDSG):
- Konsequenter Verzicht auf unnötige Adresserfassung.
- Einstellbare automatische Löschfristen für anlassbezogene Zusatzfragen (z. B. T-Shirt-Grössen, Essenspräferenzen).
- Konfigurierbare «Nur für Mitglieder»-Absicherung für interne Anlässe.
- 📚 Integriertes Hilfe-Center: Umfangreiche Wissensdatenbank und Schritt-für-Schritt-Anleitungen auf
hilfe.cevi-schichtplan.ch.
🏗️ System-Architektur
Das Monorepo besteht aus fünf Next.js-/Fastify-Diensten, einer statischen Dokumentation und gemeinsamen Bibliotheken:
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗