Dokumentacja AlgoJudge0.1

Dokumentacja AlgoJudge

Otwartoźródłowe oprogramowanie self-hosted do organizacji zawodów i kursów programistycznych z automatycznym ocenianiem przesłanych rozwiązań.

AlgoJudge to otwartoźródłowe oprogramowanie self-hosted do organizacji zawodów i kursów programistycznych z automatycznym ocenianiem przesłanych rozwiązań.

Uruchamiasz je u siebie. Nikt poza Tobą nie przechowuje kont uczestników, zadań ani wyników.

Od czego zacząć

Z czego się składa

Trzy programy, a żaden nie robi tego, co należy do pozostałych:

  • Client to część, którą widzą ludzie. Rysuje aktywności, zadania, formularze i wyniki.
  • Server przechowuje wszystko, co trwałe — konta, zadania, zgłoszenia, wyniki — i decyduje, kto co może zrobić. Nigdy nie kompiluje ani nie uruchamia nadesłanego rozwiązania i nie rozumie, co znaczy konkretny rodzaj zadania.
  • Uruchamianiem zajmuje się Runner. Pobiera zlecenie, ocenia je w izolacji i odsyła wynik. Połączenie zawsze nawiązuje Runner, więc może pracować za domowym routerem, bez własnego adresu.

Warto od razu wiedzieć, co z tego wynika: dodanie nowego rodzaju zadania nie wymaga zmiany w Serverze. Wystarczy, że Client nauczy się go wyświetlać, a Runner — oceniać rozwiązania.

Której wersji dotyczy

AlgoJudge 0.1.0 jest wydany i to jego opisują te strony: pięć repozytoriów ma ten tag, a osiem obrazów jest publicznych. Witryna założyła tego samego dnia swój pierwszy katalog z wersją, więc pod nazwą u góry stoi 0.1, a numer jest w adresie: /pl/install/v0.1/backup. Bez numeru dostajesz wersję najnowszą — tam przekierowuje /pl/install/.

Każda sekcja ma własne wersjonowanie. /install/ zmienia się przy wydaniu AlgoJudge-Ops, /server/ przy wydaniu Servera, /protocol/ przy zmianie kontraktu. Nie ma jednej wersji całej witryny, bo produkty nie wydają się razem — i dlatego numer stoi wewnątrz sekcji, a nie przed nią.

Wersjonujemy z dokładnością do minor. Wydanie patch aktualizuje swój katalog w miejscu, a jeżeli miałoby zmienić opisane zachowanie, to nie było wydanie patch.

AlgoJudge jest w fazie 0.x, a wydanie 0.x nie daje żadnej obietnicy zgodności wstecznej. Do każdego wydania minor dołączamy notatkę: co się zepsuło i co z tym zrobić. Dokumentacji starszych wersji nigdy nie usuwamy i nigdy nie dopisujemy jej po fakcie — powstaje w dniu wydania albo wcale. Dla instalacji, której nikt nie zaktualizował, stara strona jest jedyną działającą.

Na tej stronie