Jdi na navigaci

Technické specifikace

Tato stránka popisuje technické specifikace Courses. Jejím bežným užíváním a tvorbou obsahu se zaobírá sekce Tvorba obsahu pro kterou není znalost technických specifikací nutná.

Rozdělení

Platforma Courses se skládá ze několika částí:

courses architecture simple
Obrázek 1. Rozdělení platformy Courses, skládající se z Rozcestníku a jednotlivých předmětových stránek.

Rozcestník

Rozcestník se nachází na úvodní stránce.[1] Umožňuje následující:

  • Vyhledávání mezi předměty.
  • Zobrazuje předměty, které uživatel studuje nebo učí.
  • Zobrazuje shrnutí nejdůležitějších informací z propojených systémů jako jsou Fittable nebo Klasifikace na jednom místě.
  • Zobrazuje aktuální novinky jednotlivých předmětů, které mohou vyučující sdílet prostřednictvím komponenty Novinky.

U předmětových stránek, které nevyužívají Courses pro publikování studijních materiálů, zajišťuje přesměrování z vyhledávání na jejich domovskou stránku (např. do systému Moodle).

Nastavení rozcestníku

Garanti předmětu mohou pro svůj předmět v rámci rozcestníku Courses určit následující parametry:

  • Preferovanou platformu pro publikování studijních materiálů (Courses nebo Moodle).
  • Preferovanou platformu pro klasifikaci (Grades, Progtest nebo Moodle).
  • Zda všechny varianty předmětu sloučit do jedné předmětové stránky nebo zda má každá varianta vlastní stránku.

Žádost o změnu nastavení lze provést vytvořením issue v repozitáři https://gitlab.fit.cvut.cz/course-pages/signpost-data/.

Jako příklad uvádíme žádost o přesměrování z Courses na Moodle:

signpost issue example
Obrázek 2. Ukázka žádosti o změnu nastavení rozcestníku.

Předmětové stránky

Z pohledu jednotlivých předmětových stránek je platforma Courses implementací univerzálnějšího systému PagesFIT, který slouží k obecnému vytváření a publikování statických HTML stránek.

Courses pro vytváření výsledného HTML využívá vlastní generátor obsahu – Generátor Course Pages. Ten převádí soubory podporovaných formátů do finální HTML podoby, jak ji znáte na stránkách jednotlivých předmětů (viz https://courses.fit.cvut.cz/).[2]

courses architecture fitpages
Obrázek 3. PagesFIT - Zjednodušený diagram zobrazující generování výsledného HTML ze zdrojových repozitářů.

PagesFIT mimo vlastní generování také zajišťuje zcela automatické publikování na HTTP(S) server, správu přihlašování s pomocí SSO, oprávnění apod.

Vytvoření předmětu

Manuální vytvoření nové předmětové stránky (např. při vzniku předmětu).

Varování:

Toto nastavení provádí za vyučující oddělení ICT, více viz Vznik nového předmětu.

Pro vytvoření a konfiguraci stránky nového předmětu využijte následující postup:

  1. Proveďte fork projektu se vzorovým předmětem do jmenného prostoru požadované předmětové skupiny.[3] Název projektu musí začínat kódem předmětu a mezerou, následovat může libovolně například Pages nebo Materials atd.

    create 01.en
    Obrázek 4. Výběr jmenných prostorů, ke kterým má uživatel přístup.
  2. Zkontrolujte nastavení v souboru .gitlab-ci.yml, ten musí obsahovat následující deploy job.

    Ukázka 1. Ukázka gitlab-ci.yml s požadovaným deploy jobem.
    # Build pages and deploy to courses.fit.cvut.cz
    course-pages:
      stage: deploy
      image: gitlab.fit.cvut.cz:5000/course-pages/course-pages:stable
      script:
        - course-pages public/
      artifacts:
        paths:
          - public
        expire_in: 1 hour
  3. Nastavte konfigurační soubor course-pages.yml dle potřeb nově vznikající předmětu. Následující ukázka obsahuje pouze minimální nutné množství konfigurace.

    Ukázka 2. Ukázka course-pages.yml s minimálním množstvím konfigurace. Upravte dle potřeb předmětu.
    course:
      code: BI-NEW
      altCodes: [ BIK-NEW ]
      name: Vzorový předmět
    language: cs
    repository:
      gitlabPath: /course-pages/example 1
    navigation:
      hiddenFiles:
        - files/
        - media/
        - README.*
    excludedFiles:
      - /public
    1. Cesta k repozitáři. Standardně se jedná o složení skupiny a názvu projektu. Například pro BI-ZMA s URL https://gitlab.fit.cvut.cz/BI-ZMA/bi-zma/ bude cesta /BI-ZMA/bi-zma.

    Více ke konfiguraci viz Konfigurační soubor.

  4. Povolte pipelines. Přejděte do Settings  General  Permissions a u Pipelines zvolte Everyone With Access [4]

    create 04.en
    Obrázek 5. Přehled oprávnění v projektu.
  5. Nastavte integrace přidáním nového webhooku. Přejděte do Settings  Integrations a nastavte následující položky:
    • URL - https://courses.fit.cvut.cz/hooks/deploy
    • Trigger: Push events, Job events, Pipeline events
    • Enable SSL verification:

      create 06.en
      Obrázek 6. Nastavení integrací.
  6. Po dokončení běhu pipeline bude výsledná podoba k naleznutí na courses.fit.cvut.cz/<KOD PREDMETU>

Šablona nového předmětu

Ukázkový předmět, resp. šablona nového předmětu, se nachází na {link-starter-template} a výslednou podobu je možné si prohlédnout na https://courses.fit.cvut.cz/BI-NEW/.


  1. Odkaz na repozitář https://gitlab.fit.cvut.cz/course-pages/signpost-app
  2. Využívání Generátoru Course Pages je při tvorbě předmětu na platformě Courses nezbytné. Vzhledem ke konfiguračním závislostem není možné v rámci Courses využívat generátory obsahu třetích stran.
  3. Uživatel musí mít dané skupině oprávnění alespoň Maintainer.
  4. Alternativně lze zvolit Only Team Members.