Architektura, moduły i role
Ta strona podsumowuje architekturę aplikacyjną Omniscol oraz role widoczne po stronie szkoły. Dokładne zobowiązania umowne (dostępność, kopie zapasowe, okres przechowywania, nadzór) wynikają z zatwierdzonych dokumentów prawnych lub handlowych.
Hosting i niezawodność
Omniscol jest hostowany w Unii Europejskiej, a dokładniej na AWS i Scaleway w Paryżu. Produkt korzysta z mechanizmów tworzenia kopii zapasowych, nadzoru i izolacji logicznej między kontami placówek; szczegóły obowiązujące dla danego konta zależą od umowy i od środowiska.
Szczegóły po stronie użytkownika opisuje FAQ — Bezpieczeństwo i hosting.
Architektura oprogramowania
- Aplikacja internetowa: aplikacja ładuje się raz, a następnie ekrany są renderowane dynamicznie, z wymianą danych w REST/JSON (Single Page Application).
- CouchDB jako główna baza danych.
- Redis jako baza danych do synchronizacji po stronie aplikacji i do dzienników.
- TypeScript w interfejsie (webapp).
- Backend Node.js / Express sterujący wewnętrznymi silnikami (api, webapp, portal, panel, ical, mcp, oauth2 itd.).
- C++ w algorytmie generowania, uruchamianym na dedykowanych maszynach wirtualnych włączanych na żądanie.
Bezpieczeństwo
- HTTPS w komunikacji wystawionej na zewnątrz.
- Cloudflare jako jedyna brama wejściowa (ochrona przed atakami DDoS).
- Hasła wstępnie haszowane po stronie klienta algorytmem scrypt, a następnie ponownie haszowane i solone po stronie serwera. Nie są przechowywane ani przesyłane w postaci jawnej.
- Uwierzytelnianie JWT z kluczami podpisu i krótkim czasem życia; rotacja lub odwołanie klucza może unieważnić podpisane tokeny.
- Linki udostępniania podpisane, z datą wygaśnięcia, powiązane z kontem, które je wygenerowało, i unieważniane przez zmianę hasła lub dezaktywację tego konta.
- Tokeny API z kluczem głównym i tokenami pochodnymi, zakresami punktów dostępu i terminami wygaśnięcia.
- OIDC / SSO dostępne zależnie od umowy i ustawień konta.
- Eksport i wewnętrzne kopie zapasowe w formacie JSON zapewniające odwracalność danych.
Role użytkowników
Omniscol wyróżnia kilka ról po stronie szkoły:
| Rola | Typowe zastosowanie |
|---|---|
| Administrator | Osoby odpowiedzialne za planowanie, dyrekcja, dyrektor IT |
| Nauczyciel | Nauczyciele, nauczyciele zewnętrzni, instruktorzy |
| Uczeń | Uczniowie, studenci, słuchacze |
| Personel | Zespół wychowawczy, kierownicy ds. wychowania, pedagodzy szkolni, opiekunowie, jeśli moduł Obsada personelu jest włączony |
| Link udostępniania | Dostęp przez podpisany adres URL do precyzyjnie określonego zakresu |
Powiązanie tych etykiet z technicznymi identyfikatorami ról opisuje szczegółowo Użytkownicy i role.
Jeden użytkownik może łączyć kilka ról. Na przykład nauczyciel, który uczestniczy w planowaniu, może być jednocześnie Nauczycielem i Administratorem.
Rola Link udostępniania nie odpowiada zwykłemu kontu użytkownika. To podpisane linki: linki internetowe do planu lekcji działają tylko do odczytu, natomiast niektóre linki ukierunkowane mogą zezwalać na ograniczone działanie, takie jak wpisanie dostępności nauczyciela do daty wygaśnięcia.
Istnieją ponadto role wewnętrzne, zarezerwowane dla zespołów Omniscol: administrowanie platformą, tłumaczenia, działania handlowe i partnerzy dystrybucyjni. Część tych kont ma prawo logować się do kont szkół w celach serwisowych. Występują wtedy jako superadministratorzy szkoły, z szerszymi możliwościami niż administrator: import surowych danych do bazy danych, włączanie lub wyłączanie opcji płatnych, logowanie w imieniu użytkownika. Takie dostępy wywołują widoczne alerty o logowaniu, a ich tokeny wygasają bardzo szybko. Z wielką mocą wiąże się wielka odpowiedzialność.
Moduły
Moduły widoczne na typowym koncie:
- Strona główna (
home) — strona wejściowa i podsumowanie dnia. - Plany lekcji (
schedules) — podgląd i pojedyncze zmiany. - Panel zarządczy (
dashboard) — statystyki obłożenia i godzin pracy. - Zarządzanie nieobecnościami (
absences) — zgłoszenia i zastępstwa. - Zarządzanie planami lekcji (
timetables) — budowanie, generowanie i publikacja planów lekcji. - Administracja (
admin) — użytkownicy, ustawienia, import / eksport i integracje.
Zależnie od umowy mogą pojawić się inne moduły, w szczególności Obsada personelu do planowania zadań wychowawczych i dyżurów.
Wiele szkół
Każda szkoła jest logicznie odizolowana po stronie serwera i korzysta z własnej domeny. Dane jednej szkoły nie są widoczne dla innych szkół z poziomu aplikacji. Na życzenie można natomiast włączyć kanał komunikacji między odrębnymi kontami, aby współdzielić konflikty obłożenia sal i nauczycieli. Jest to bardzo przydatne przy wspólnych budynkach albo w grupie szkół, która współdzieli zasoby.