Funkční požadavky

  1. bude poskytovat náhled na události (tj. kalendáře) z pohledu:
    1. osoby,
    2. předmětu,
    3. místnosti.
  2. bude poskytovat různé módy zobrazení:
    1. rozvrhový (horizontální):
      1. s přepínáním mezi zobrazení 5/7 dní (např. dálkoví studenti mívají výuku i o víkendu),
      2. s časovou osou podle harmonogramu dané fakulty (časové rozsahy) sloužící jako pomocné vodítko.
    2. kalendářní:
      1. týdenní (výchozí),
      2. měsíční,
      3. denní.
  3. bude zobrazovat paritu (sudý/lichý) aktuálně vybraného období.
  4. bude zobrazovat označení semestru aktuálně vybraného období.
  5. okénko události bude obsahovat:
    1. kód předmětu,
    2. místnost (KOSí kód),
    3. čas začátku a konce události,
    4. typ události (barevným rozlišením),
    5. příznak, zda byla událost ovlivněna rozvrhovou výjimkou (tj. změna oproti pravidelnému rozvrhu).
  6. po kliknutí na okénko události se zobrazí detail události obsahující:
    1. celý název předmětu nebo události,
    2. odkaz na kalendář předmětu (jen pro P/C/L/J/Z),
    3. pořadové číslo výukové hodiny nebo zkoušky v semestru (jen pro P/C/L/Z),
    4. číslo paralelky (jen pro P/C/L/J),
    5. odkaz na kalendář místnosti,
    6. vyučující/zkoušející/organizátoři události (jeden nebo více lidí):
      1. celé jméno,
      2. e-mail (je na Usermapu),
      3. odkaz na kalendář,
      4. odkaz na Usermap.
    7. seznam studentů v paralelce (jen pro P/C/L):
      1. celé jméno,
      2. uživatelské jméno,
      3. zobrazovat ve „fancy pop-up.“
    8. seznam výjimek, které událost ovlivnily.
  7. na původním místě zrušené či přesunuté události bude zobrazovat zástupné okýnko:
    1. v případě přesunuté události s odkazem na novou událost.
  8. bude umožňovat navigaci v kalendáři po týdnech/měsících/semestrech.
  9. bude poskytovat filtr zobrazených událostí:
    1. podle typu události.
  10. bude poskytovat jednotný vyhledávač kalendářů:
    1. osoby (podle uživatelského i občanského jména),
    2. předmětu (podle kódu a názvu),
    3. místnosti (podle KOSího kódu).
  11. kalendářní data bude získávat ze služby Sirius:
    1. přes jeho RESTful API, ve formátu JSON,
    2. on-demand.
  12. bude poskytovat JS API pro:
    1. přidání položek zobrazených v okénku události,
    2. přidání položek zobrazených v detailu události (textových i akcí),
    3. odchytávání akcí nad kalendářem [TODO].

Nefunkční požadavky

  1. Uživatelské rozhraní:
    1. bude lokalizované do češtiny a angličtiny,
    2. bude responzivní (od desktopu po mobilní telefon s WVGA),
    3. bude přizpůsobené i pro ovládání na dotykovém displeji,
    4. vizuálně bude vycházet z grafiky vytvořené pro „nový web“ od Josefa Lobotky (fonty, barvy, příp. ikony).
  2. Přizpůsobitelnost a konfigurovatelnost:
    1. widget bude možné přizpůsobit pro různá použití:
      1. na fakultním webu pro studenty a vyučující,
      2. v rámci administračního rozhraní pro rozvrháře,
      3. v módu omezené funkčnosti, např. na osobní stránce vyučujícího, studenta atp.
    2. widget bude počítat s nasazením i na dalších fakultách.
  3. Dokumentace:
    1. bude obsahovat kompletní postup pro sestavení (build),
    2. bude obsahovat popis konfigurace a JS API pro přizpůsobení widgetu,
    3. veškerá dokumentace by měla být v angličtině.
  4. Kvalita kódu:
    1. kód bude srozumitelný, dobře strukturovaný a potenciálně nejasné části okomentované,
    2. kód bude pokrytý jednotkovými a integračními testy,
    3. kód i další textové soubory budou v UTF-8 a s unixovým způsobem ukončování řádek (řídící znak LF / 0x0A),
    4. názvy všech identifikátorů použitých v kódu budou v angličtině.
  5. Verzování:
    1. projekt bude verzovaný systémem Git na GitHubu.
  6. Technologie:
    1. bude implementovaný v jazyce kompilovaném do JavaScriptu; preferovaná je syntaxe ECMAScript 6+ (s překladem pomocí Babel).
  7. Běhové prostředí:
    1. bude fungovat client-side, ve webovém prohlížeči s podporou JavaScriptu:
      1. Chrome/Chromium 35+,
      2. Firefox 31+,
      3. Internet Explorer 10+ (9 alespoň omezeně),
      4. Safari 6+.
  8. Licence:
    1. bude využívat výhradně open-source knihovny.

Zkratky

Typy událostí:

  • přednáška [P]
  • cvičení [C]
  • laboratoř [L]
  • jednorázová akce předmětu [J]
  • zkouška (i zápočtová) [Z]
  • omezení vyučujícího [V]
  • obecná událost [O]