#sol #actix-web #webserver #skolaonline #re-sol

app re-sol

Svobodný frontend pro Školu Online

7 unstable releases (3 breaking)

new 0.5.0 Mar 18, 2023
0.4.1 Mar 9, 2023
0.3.1 Mar 1, 2023
0.3.0 Feb 25, 2023
0.2.1 Feb 11, 2023

#109 in HTTP server

Download history 29/week @ 2023-02-05 14/week @ 2023-02-12 18/week @ 2023-02-19 24/week @ 2023-02-26 33/week @ 2023-03-05 13/week @ 2023-03-12

88 downloads per month

GPL-3.0 license

540KB
7.5K SLoC

banner

Co je reŠOL?

Tento projekt jsme začali kvůli neustálé nespokojenosti se Školou OnLine. Jejich web je zastaralý, neresponzivní a nepraktický. Mnoho věcí je řešeno neintuitivně, například průměry známek na některých školách. Nová aplikace sice napravila problém se vzhledem, ale stále jí chybí funkce jako tmavý režim či dokonce přinesla některé nové problémy.

Založili jsme proto tento projekt, ve kterém se jako studenti snažíme vylepšit zkušenost dalších studentů. Náš cíl je vytvořit modernější, soukroumou a svobodnou verzi ŠOLu. Používáme aktuální vývojové praktiky a optimalizujeme UX pro mobily. reŠOL je v relativně rané fázi vývoje, momentálně nedokáže uspokojivě nahradit aplikaci Školy OnLine.

Vítáme každou pomoc, ať už s programováním či třeba grafikou.

Jak to funguje?

U frontendu se řídíme pravidly:

  • žádné špehování (re-sol.tech ale používá Cloudflare)
  • svižné a non-bloated stránky

V JavaScriptu reŠOL dělá requesty na naší API napsanou v Rustu, která po randomizaci user agentu a reffereru a skrze Tor proxy odesílá requesty na Školu OnLine (každý request používá jinou Tor proxy). Toto děláme kvůli soukromí uživatele, aby informace o jeho prohlížeči a IP zůstaly skryté. Ta pak odesílá zpátky JSON soubor s daty, která parsujeme na stránku.

S tím se pojí pár problémů, jako pomalejší načítání a (hlavně) blokování requestů kvůli rate limitingu (ŠOL API má určitý počet requestů, které může uživatel udělat za určitý čas a jakmile tento limit překročí, tak je začne blokovat).

Funkce

Máme funkční přihlašování na (snad) všechny ŠOL servery. V headeru se na desktopu zobrazuje jméno a role (Jan Novák, student). Základní funkce rozvrhu fungují, jako zobrazování předmětů a učeben. Také lze rozkliknout jednotlivé předměty a zobrazit info o nich. V dashboardu zatím najdete funkční pouze zprávy, hodnocení, domácí úkoly a šablony pro ostatní boxy.

Použití

Provozujeme tyto instance, ale reŠOL lze také self-hostit:

Nejvíce testování probíhá na Gecku (Firefox) a poté na Blinku (Chrome). Snažíme se také o WebKit (Safari), ale zaměřujeme se primárně na předešlé dva web enginy.

Vývoj

Více informací najdete na naší wiki.

Licence

GPLv3

reŠOL je svobodný software licencovaný pod GPLv3, což znamená, že máte

  • Svobodu spustit program za jakýmkoliv účelem.
  • Svobodu studovat, jak program pracuje a přizpůsobit ho svým potřebám.
  • Svobodu redistribuovat kopie, abyste pomohli ostatním.
  • Svobodu vylepšovat program a zveřejňovat zlepšení, aby z nich mohla mít prospěch celá komunita.

Tento program je distribuován s vírou, že bude užitečný, ale BEZ JAKÉKOLI ZÁRUKY; dokonce bez implicitní záruky PRODEJNÍ ZPŮSOBILOSTI nebo VHODNOSTI PRO KONKRÉTNÍ ÚČEL. Podívejte se na GNU General Public License pro více podrobností.

Ukázky

rozvrh-light rozvrh-dark

Dependencies

~24–32MB
~698K SLoC