Keyboard Hero Dokumentace

Kompletní technická a uživatelská dokumentace k webové aplikaci pro žáky a učitele ZUŠ Moravský Krumlov.

O aplikaci

Keyboard Hero je webová aplikace vyvinutá pro žáky Základní umělecké školy Moravský Krumlov. Jejím hlavním cílem je hravou a motivující formou vést děti k pravidelnému domácímu cvičení na hudební nástroj.

💡
Princip fungování: Žák nahraje svá cvičení přímo v prohlížeči, buduje si cvičební řadu, sbírá hvězdy za účast na koncertě (spravuje učitel) a dostává zpětnou vazbu přímo od učitele. Učitel má samostatné rozhraní pro správu výsledků, schvalování registraci a poslech nahrávek.

Odznáčky a ukazatele

V horním panelu rozhraní žáka se zobrazují metriky jeho cvičebního pokroku:

🔥

Denní řada (Streak)

Počet po sobě jdoucích dní, kdy žák odeslal alespoň jedno cvičení.

🎵

Odesláno

Celkový počet nahraných a úspěšně doručených nahrávek cvičení.

⭐

Koncerty

Hvězdičky udělované učitelem za výkony na koncertech.

Uživatelská příručka pro žáka

1. Registrace a přihlášení

⚠️
Důležité: Uživatelské jméno nesmí obsahovat diakritiku ani mezery, slouží k vygenerování interního e-mailu (jannovak@keyboardhero.internal).

2. Funkce v rozhraní žáka

Uživatelská příručka pro učitele (Admin)

1. Přihlášení do administrace

Do administrace se vstupuje přes odkaz Admin Login na přihlašovací stránce nebo přímo na souboru admin.html. Účet musí mít v databázi nastavenou roli admin.

2. Schvalování žáků

V sekci Čekající registrace se zobrazují nově zaregistrovaní žáci. Učitel může každou žádost schválit nebo zamítnout.

3. Správa žáků a hodnocení

Architektura & Databáze

Aplikace je postavena na čisto klientském JS s využitím cloudové platformy Supabase pro backendové služby (Auth, Postgres DB a Storage).

Generování vnitřních e-mailů

Jelikož děti v ZUŠ často nemají vlastní e-mailové adresy, aplikace automaticky převádí uživatelské jméno na vnitřní e-mailový tvar:

function makeInternalEmail(username) {
  const cleanUsername = username.trim().toLowerCase().replace(/\s+/g, '');
  return `${cleanUsername}@keyboardhero.internal`;
}

Databázové tabulky v Supabase

Struktura projektu

Soubor Význam a funkce
index.html Hlavní klientská aplikace pro žáky (přihlášení, kalendář, nahrávání, žebříček).
admin.html Administrátorský panel pro učitele (schvalování, hodnocení, bodování, poslech nahrávek).
style.css Stylování uživatelského rozhraní a dokumentace.
script.js Skript zajišťující plynulé rolování a zvýraznění aktivních sekcí v dokumentaci.