Fáze 4: Informační kanál a SSE

Každý kurz bude mít vlastní informační kanál (něco jako jednoduchý „feed“ podobný tomu, co znáte například ze sociálních sítí). Tento kanál bude přehledně zobrazovat novinky a události spojené s daným kurzem, takže účastníci uvidí, co je nového, aniž by museli něco vyhledávat.

Obsah kanálu bude tvořen dvěma typy příspěvků:

Příspěvky od lektora

Lektor bude moci přidávat vlastní textové zprávy, například upozornění, že se zveřejnění nových materiálů opozdí. Příspěvky musí být:

  • editovatelné (a u editovaných musí být zřetelně uvedeno, že proběhla úprava),
  • mazatelné.

Automaticky generované události

Tyto záznamy se vytvoří samy, například když:

  • lektor přidá nový studijní materiál,
  • vznikne nová aktivita nebo kvíz.

Každá událost i příspěvek musí mít časové razítko, aby bylo jasné, kdy k nim došlo.

Aktualizace v reálném čase pomocí SSE

Aby se účastníkům zobrazovaly nové příspěvky a události okamžitě, bude informační kanál využívat technologii Server-Sent Events (SSE).

SSE funguje tak, že si prohlížeč (uživatel) otevře trvalé spojení se serverem. Server pak může kdykoliv posílat nové zprávy směrem k uživateli – není tedy nutné stránku obnovovat ani opakovaně posílat požadavky, jako je tomu u klasického REST API.

Příklad chování v praxi: Lektor přidá příspěvek → server uloží zprávu do databáze → okamžitě ji pošle všem připojeným uživatelům přes SSE → příspěvek se u všech zobrazí v kanále.

Technické požadavky

  • Veškerý obsah kanálu (příspěvky i automatické události) se musí ukládat do databáze.
  • Každý příspěvek musí mít unikátní identifikátor.
  • Všechna data musí obsahovat časové razítko.