Štatistiky a vývoj stránky
Backstory
Prvá verzia stránky sa objavila na mojom osobnom serveri v júni 2023. V tom čase bola prístupná
iba po prihlásení a iba organizátorom. Niekedy v auguste 2023 bola presunutá na školský server a
začiatkom septembra 2023 bola prístupná aj pre ostatných žiakov a učiteľov.
Odvtedy bežala stránka skoro nepretržite. Jediné výpadky boli spôsobené tým, že som so serverom
robil blbosti (napr. keď som opravoval to, že sa text zobrazoval kúsok nižšie ako mal z mobilu,
cestou v električke ráno do školy (neodporúčam :D)).
Išlo o prvú stránku OHčky, ktorá bežala priamo na školskom serveri. To prinieslo nové problémy,
napr. to, že stránka do októbra nefungovala na školskej wifi (admini to nezvládali nastaviť
¯\_(ツ)_/¯).
Po Galaprograme bolo 9. 12. 2023 na stránke vypnuté prihlasovanie čím sa efektívne skončil život
tejto stránky. V najbližšej dobe budú všetky dáta z API scrapnuté a prekonvertované do statických
súborov. Týmto sa stránka dostane do jej konečnej fázy - archivujúc všetky disciplíny, výsledky a
príspevky z OH Gamča 2023 - OH POHROMAde.
Štatistiky
Počas behu stránky sa zaregistrovalo dokopy 122 používateľov, z toho 121 žiakov a jeden učiteľ. Na
stránke sa nachádza 136 príspevkov a 62 disciplín. Z týchto disciplín existuje dokopy 201
výsledkových listín obsahujúcich 2621 umiestnení (aj pre nezúčastnené triedy existoval v databáze
objekt). Kalendár bol dokopy vygenerovaný 747 krát.
Všetky tieto dáta zaberajú v databáze dokopy 14.3MB.
Vývoj
Celá táto stránka sa skladá z 2 hlavných častí: frontendu a backendu. Frontend je napísaný v
Svelte ako PWA. Nechýba ani SW a caching dát z API aby sa stránka dala používať aj offline.
Backend používa Django spolu s Django REST Frameworkom a štandardnou Postgres databázou. Django je
doplnené o Huey, vďaka ktorému fungovali niektoré interné upozornenia pre orgov.
Všetky tieto veci spája dokopy Docker, ktorý sa stará o všetky spojenia jednotlivých častí a ich
vzájomnú spoluprácu. Bol doplnený aj o jednoduchý lokálny systém zálohovania, ktorý zálohoval
databázu a súbory na serveri každé 2 hodiny. Poslednou súčasťou je jednoduchý auto update systém,
ktorý sa staral o to, aby sa zmeny z GitHubu dostali na server. Nejde o práve najlepší systém, ale
keď som ho nastavoval, nemal som náladu riešiť niečo komplikovanejšie a potom to proste fungovalo,
tak som to nechal tak. Neposlednou súčasťou je aj Nginx, ktorý presmerovával všetky požiadavky na
správne miesto a zabezpečoval za pomoci Certbotu aj HTTPS.
Celú stránku som vytváral sám, preto je pravdepodobne na veľa miestach neprehľadný, neefektívny
alebo akokoľvek inak zlý kód.
Backend aj frontend sú verejne dostupné na GitHube:
Na tom istom mieste viete nájsť aj zdrojový kód bota ktorý bol použitý na Ešportovom Discord
serveri.
Ak chcete vidieť nginx config, docker-compose.yml, alebo niečo iné, tak mi napíšte na hociaké
rozumné miesto a ja vám to môžem ukázať.
Programovanie tejto stránky bola zaujímavá cesta, kým sa stránka dostala do stavu, v akom je
teraz. V mnohých momentoch som mal chuť to všetko zahodiť, vykašľať sa na to a použiť iba nejaký
Wordpress, ale nakoniec som to dokončil a som za to rád. Dúfam, že sa vám stránka páčila a že
úspešne splnila svoj účel.
~ Jakub Šiagi