#sol #actix-web #skolaonline #resol

app re-sol

Svobodný frontend pro Školu Online

8 releases (4 breaking)

0.6.2 Apr 29, 2023
0.5.0 Mar 18, 2023
0.4.1 Mar 9, 2023
0.3.1 Mar 1, 2023
0.2.1 Feb 11, 2023

#185 in HTTP server

Download history 11/week @ 2023-10-29 8/week @ 2023-11-05 2/week @ 2023-11-12 1/week @ 2023-11-19 26/week @ 2023-11-26 24/week @ 2023-12-03 8/week @ 2023-12-17 16/week @ 2023-12-24 8/week @ 2023-12-31 1/week @ 2024-01-07 16/week @ 2024-01-28 1/week @ 2024-02-04 34/week @ 2024-02-11

51 downloads per month

GPL-3.0 license

785KB
9K SLoC

Rust 8K SLoC // 0.0% comments TypeScript 1K SLoC // 0.0% comments JavaScript 94 SLoC Shell 67 SLoC // 0.1% comments

banner

reŠOL

Svobodná alternativní aplikace pro Školu Online
Prohlédnout dokumentaci »

Oficiální instance · Nahlásit chybu · Požádat o funkci

O projektu

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. Nikdy ale pravděpodobně nedosáhneme 100% podpory všech funkcí ŠOLu, například již kvůli jejich omezené API pro mobilní aplikace, kterou využíváme. Dále jsou limitující naše testovací možnosti, protože jako třetí strana můžeme testovat pouze věci, které se v ŠOLu objevují nám. 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.

Upozornění: reŠOL není jakýmkoli způsobem ovlivněn či spojen se společností BAKALÁŘI software s.r.o.

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í zprávy, hodnocení, domácí úkoly, akce a šablony pro ostatní boxy. Zprávy, známky a domácí úkoly lze rozklikávat pro zobrazení podrobností.

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í.

Poděkování

Ukázky

rozvrh-light rozvrh-dark

Dependencies

~23–39MB
~684K SLoC