Š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
Naši sponzori: