Der modulare digitale Teaching Assistant fuer Lehrkraefte: lokal-first, iPadOS/Safari-tauglich und so aufgebaut, dass neue Faecher-Module ohne Core-Umbau wachsen koennen.
ViccoBoard hilft Lehrkraeften, Unterrichtsorganisation, Leistungsbewertung und Pruefungsarbeit in einer App zu buendeln. Der Kern ist bewusst modular: bereits heute mit Sport + KBR-Pruefungsbausteinen, langfristig fuer weitere Faecher und Schulformen.
Quickstart · Dokumentation · Roadmap · Motherlode · Mitmachen
- Warum ViccoBoard?
- Das Alleinstellungsmerkmal: Modular by Design
- Feature Highlights (Today)
- Feature Matrix (Today)
- Screenshots und GIFs
- Technische Exzellenz
- Schnellstart
- Roadmap (Now / Next / Later = Vision)
- Contributing (Lehrkraefte + Devs)
- OpenSSF Best Practices Badge (CII)
- Weitere Metriken (Setup noetig)
- Community und Philosophie
- Lizenz
- Acknowledgements
Lehrkraefte arbeiten oft mit vielen Inselloesungen: Klassenlisten hier, Notenlogik dort, Korrektur-Notizen wieder woanders. ViccoBoard fuehrt diese Arbeit in einer lokalen App zusammen, damit Unterrichtsentscheidungen schneller, konsistenter und nachvollziehbarer werden.
Im Fokus stehen dabei:
- Praxistauglichkeit im Alltag: schnelle Eingaben, klare Flows, wenig Klickwege
- Datensouveraenitaet: lokale Speicherung als Standard
- Web-first fuer Schule: explizit auf iPadOS/Safari ausgelegt
- Wachstum ohne Neustart: neue Domainen ueber Module/Plugins statt monolithischer Umbauten
ViccoBoard ist nicht als starres "fertiges Tool" gedacht, sondern als erweiterbare Unterrichtsplattform. Die Idee dahinter in Lehrkraft-Sprache: Wir bauen einen stabilen Kern (Navigation, Datenhaltung, Sicherheits- und Qualitaetsregeln) und ergaenzen dann fachspezifische Module wie Bausteine.
Heute sind bereits zwei Domainen im Fokus: Sport und KBR/Pruefungen. Morgen kann dasselbe Muster fuer weitere Faecher und Schulformen genutzt werden, ohne den Kern neu zu schreiben. So entsteht praktisch unbegrenzte Tiefe - nicht durch ein riesiges Einmal-Release, sondern durch klare, wiederverwendbare Module.
Das Plugin-System erweitert diese Module um Faehigkeiten wie Assessment-Logik, Tools oder Exporter. Damit bleibt der Core schlank, waehrend Funktionalitaet kontrolliert wachsen kann.
graph LR
A[Lehrkraft-Workflow] --> B[apps/teacher-ui]
B --> C1[modules/students]
B --> C2[modules/sport]
B --> C3[modules/exams]
C1 --> D[packages/core]
C2 --> D
C3 --> D
B --> E[packages/storage\nIndexedDB local-first]
B --> F[packages/plugins\nRegistry + Contracts]
- Klassenmanagement mit Erstellen, Bearbeiten, Archivieren und Farbcodierung
- Schuelerverwaltung mit Suche, Filter, Sortierung, CSV-Import und Bulk-Delete
- Anwesenheitserfassung pro Stunde inkl. konfigurierbarem Statuskatalog (pro Klasse)
- Stundenverwaltung mit Datumsfiltern und direkter Verknuepfung zur Anwesenheit
- Bewertungskategorien fuer mehrere Typen (Kriterien, Zeit, Cooper, Shuttle, Mittelstrecke, Sportabzeichen, BJS)
- Spezifische Eingabeflows fuer Sport-Bewertungen inkl. Historienansicht
- Sportabzeichen-Logik mit alters-/geschlechtsabhaengiger Auswertung plus PDF-Uebersicht
- Live-Tool Timer (Countdown, Stoppuhr, Intervalle, Rundenzeiten, Session-Speicherung)
- Team-Einteilung mit optionaler Filterung nach letzter Anwesenheit
- Scoreboard-Ansicht fuer schnelle Spielstandserfassung im Unterricht
- KBR Exam Builder (einfach/komplex) mit Aufgaben, Kriterien, Pruefungsteilen und Notenschluessel-Basis
- Lokalisierung vorbereitet (de/en), lokale Speicherung ueber IndexedDB-Migrationspfad
| Lehrkraft-Workflow | Heute verfuegbar | Status | Repo-Nachweis |
|---|---|---|---|
| Planung & Klassenorganisation | Klassen anlegen/bearbeiten/archivieren, Farben, Dashboard-Quick-Actions | Verfuegbar | apps/teacher-ui/src/views/Dashboard.vue, ClassDetail.vue |
| Stundenorganisation | Stunden anlegen, filtern, bearbeiten, loeschen | Verfuegbar | apps/teacher-ui/src/views/LessonList.vue |
| Schuelerverwaltung | CRUD, Suche, Filter, CSV-Import, Bulk-Delete | Verfuegbar | apps/teacher-ui/src/views/StudentList.vue |
| Schuelerprofil | Basisroute vorhanden | Teilweise | apps/teacher-ui/src/views/StudentProfile.vue |
| Anwesenheit | Schnellstatus + konfigurierbarer Statuskatalog + Batch-Speichern | Verfuegbar | AttendanceEntry.vue, modules/students/src/repositories/status-catalog.repository.ts |
| Sport-Bewertung | Kategorieverwaltung + mehrere Bewertungsmodi | Verfuegbar | GradingOverview.vue, modules/sport/src/services/*.ts |
| Sportabzeichen | Alterslogik + PDF-Export | Verfuegbar | SportabzeichenGradingEntry.vue, modules/sport/src/services/sportabzeichen.service.ts |
| Live-Tools im Unterricht | Timer, Team Builder, Scoreboard | Verfuegbar | Timer.vue, TeamBuilder.vue, Scoreboard.vue |
| Weitere Live-Tools | Taktikboard, Turniere, Feedback | In Arbeit | TacticsBoard.vue, Tournaments.vue, FeedbackTool.vue |
| Pruefungsaufbau (KBR) | Exam-Builder-Flows (einfach/komplex) + Persistenzgrundlage | Verfuegbar | KBRExamBuilder.vue, SimpleExamBuilder.vue, modules/exams/src/repositories/* |
| Korrektur (KBR) | Kompakte Korrektur-Views und Regelbausteine vorhanden | Teilweise | CorrectionCompact.vue, CorrectionCompactUI_v2.vue, modules/exams/src/services/* |
| Local-first Datenhaltung | IndexedDB-Storage mit Migrationen (Browser), SQLite-Demo fuer CLI | Verfuegbar | apps/teacher-ui/src/services/storage.service.ts, packages/storage/src/*, apps/demo/src/index.ts |
Aktuell liegen im Repo noch keine kuratierten Produkt-Screenshots fuer die Landing Page. Wenn du helfen willst, sind Pull Requests mit anonymisierten Screenshots/GIFs willkommen.
So kannst du beitragen:
- Nimm eine reale Unterrichtsszene auf (z. B. Anwesenheit, Timer, Bewertungsflow)
- Entferne personenbezogene Daten
- Lege Assets unter
docs/ab (z. B.docs/assets/) - Verlinke sie in README + PR-Beschreibung mit kurzem Kontext
- Local-first als Standardbetrieb
- iPadOS/Safari (WebKit) als explizites Ziel
- Klare Modulgrenzen (
apps -> modules -> packages) - Qualitaetsgates fuer Docs, Typecheck, Tests und Build
ViccoBoard trennt Benutzeroberflaeche, Fachlogik und Infrastruktur bewusst. Die UI spricht nicht direkt "mit der Datenbank", sondern ueber fachliche Bruecken in die Module. Dadurch bleiben Features erweiterbar und werden nicht zu schwer wartbaren Einzelloesungen.
- App-Bootstrap und Modulkomposition:
apps/teacher-ui/src/main.ts - Modul-Bruecken:
apps/teacher-ui/src/composables/useSportBridge.ts,useStudentsBridge.ts,useExamsBridge.ts - Plugin-Vertraege:
packages/core/src/interfaces/plugins.types.ts - Plugin-Registry:
packages/plugins/src/registry.ts - Local-first Storage:
apps/teacher-ui/src/services/storage.service.ts,packages/storage/src/indexeddb.storage.ts - Modul-Entrypoints:
modules/sport/src/index.ts,modules/students/src/index.ts,modules/exams/src/index.ts - CI/Security Workflows:
.github/workflows/ci.yml,codeql.yml,scorecard.yml
npm install
npm run build
npm run dev:uiWeitere nuetzliche Kommandos:
npm run lint:docs
npm run typecheck
npm run test
npm run demoMehr Kontext:
- Klassen-, Stunden-, Schueler- und Anwesenheitsflows
- Sport-Bewertungsengine + mehrere Bewertungsmodi
- Erste KBR-Bausteine fuer Pruefungsaufbau
- Local-first Datenhaltung + Migrationspfad
- KBR-Korrekturfluss Ende-zu-Ende weiter haerten
- Platzhalter-Views (z. B. StudentProfile, Taktik/Turnier/Feedback) produktiv ausbauen
- UX-Polish fuer iPad-Workflows und schnellere Unterrichtsinteraktionen
- Weitere Fachmodule nach Subject + Schulform
- Tiefere Export-/Kommunikations-Workflows
- Optional-Integrationen als Plugins (opt-in, nicht Core-Abhaengigkeit)
Roadmap-Quellen:
- Einstieg: CONTRIBUTING.md
- Verhaltenskodex: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Fuer neue Fachideen nutze bitte das Module Proposal-Issue-Template. Es fokussiert bewusst auf Fach + Schulform + Unterrichtsworkflow.
- Security: SECURITY.md
Fuer neue Fachideen nutze bitte das Module Proposal-Issue-Template. Es fokussiert bewusst auf Fach + Schulform + Unterrichtsworkflow.
Diese Repo enthaelt ein wiederverwendbares "mother lode"-Paket unter .motherlode/.
Damit kannst du andere Projekte gegen dieselben Engineering-Kriterien pruefen, Refactorings priorisieren und Agent-Instruktionen automatisch erzeugen.
Schnellstart:
pwsh -NoLogo -File .\.motherlode\scripts\activate.ps1 -RunAudit -CopyToClipboardWir verfolgen aktiv das OpenSSF Best Practices Badge (frueher CII). Kurz: Dieses Projekt verfolgt aktiv das OpenSSF Badge auf bestpractices.dev (OpenSSF Best Practices badge pursuit).
- Fast-Track Playbook: docs/ossf-badge/PLAYBOOK.md
ViccoBoard ist teacher-made und community-getrieben. Zielbild: free forever, open source, local-first - damit Unterrichtsarbeit nicht von proprietaeren Silos abhaengt.
Wenn du unterrichtest, entwickelst oder testest: Deine Perspektive verbessert das Produkt direkt.
Distributed under the MIT License. See LICENSE for details.
- Best README Template (othneildrew)
- Shields.io
- Choose a License
- GitHub Emoji Cheat Sheet
- Core libraries: TypeScript, Vue 3, Vite, Pinia, vue-router, Jest, pdf-lib, sql.js