KI-gestütztes Noten- und Kalenderverwaltungssystem für Musikvereine
- Projektübersicht
- Projektziel
- Features
- Rollenmatrix
- Teststrategie für Custom Directives
- KI-Herkunft
- Quickstart
- Lizenz
- Mitwirken
BestNote vereinfacht die Organisation von Musikgruppen durch rollenbasierten Zugriff auf Noten, Kalender und Uploads. Es kombiniert moderne Webtechnologien mit KI-gestützter Entwicklung für maximale Wartbarkeit und Erweiterbarkeit.
BestNote vereinfacht die Organisation von Musikgruppen durch rollenbasierten Zugriff auf Noten, Kalender und Uploads. Es kombiniert moderne Webtechnologien mit KI-gestützter Entwicklung für Wartbarkeit und Erweiterbarkeit.
- Rollenmatrix mit granularer Berechtigung (Mitglied, Dirigent, Vorstand, Kassierer, Notenwart, Admin)
- Zugriff auf Noten nach Stimme und Rolle
- Kalenderintegration (CalDAV-kompatibel)
- Upload-Logik mit
v-can-uploadDirective - Reaktive Berechtigungsprüfung via Pinia
- Vollständige Testabdeckung mit Vitest
- CI-Workflow mit GitHub Actions
- Zweisprachige Dokumentation (DE/EN)
| Rolle | Notenzugriff | Upload | Kalender | Admin |
|---|---|---|---|---|
| Mitglied | Eigene Stimme | ❌ | ✅ | ❌ |
| Dirigent | Alle Stimmen | ❌ | ✅ | ❌ |
| Notenwart | Alle Stimmen | ✅ | ✅ | ❌ |
| Vorstand | Alle Stimmen | ❌ | ✅ | ❌ |
| Kassierer | Eigene Stimme (wenn Musiker) | ❌ | ✅ | ❌ |
| Admin | Alle | ✅ | ✅ | ✅ |
Dieses Projekt verwendet eigene Vue-Directives wie v-can-upload, die auf Pinia-Store-Daten reagieren.
- Nutze
Vue Test Utils+Vitestmitjsdom - Stelle sicher, dass Directive und Test dieselbe Pinia-Instanz verwenden
- Ändere Rollen im Test mit
userStore.$patch(...) - Verwende
nextTick()und ggf.setTimeout(0)für reaktive DOM-Updates - Prüfe Sichtbarkeit über
el.style.displaystattisVisible()
Die Tests prüfen:
- Sichtbarkeit bei erlaubten Rollen (z. B. Admin)
- Verstecken bei nicht erlaubten Rollen (z. B. Kassierer ohne Musikerrolle)
Dieses Projekt wurde mit Unterstützung von Microsoft Copilot entwickelt. Die KI half bei:
- Modularer Architektur
- Prompt-Design für Berechtigungslogik
- Teststrategie und CI-Setup
- Zweisprachiger Dokumentation
Voraussetzungen:
- Node.js (LTS empfohlen)
- npm
Install & Start (Kurzform):
- Abhängigkeiten installieren
npm install- Backend starten (falls verwendet)
cd server
npm run dev- Frontend starten
npm run devGPLv3 – siehe LICENSE
Siehe CONTRIBUTING.md