Organizuj aktywności
Zawody, kursy, laboratoria, warsztaty i treningi — z jednym spójnym modelem organizacji.
AlgoJudge pomaga organizować zawody, kursy, laboratoria i treningi oparte na zadaniach programistycznych. Przyjmuje zgłoszenia, przekazuje je do wyspecjalizowanych Runnerów i prezentuje wyniki uczestnikom na żywo.
Bazowo webowa platforma łączy organizację aktywności, publikowanie zadań i automatyczną ocenę rozwiązań. Powstaje z myślą o instytucjach i zespołach, które chcą uruchamiać własną instancję.
Zawody, kursy, laboratoria, warsztaty i treningi — z jednym spójnym modelem organizacji.
Treści, załączniki, terminy, limity, punktacja oraz polityki zgłoszeń zarządzane razem.
Kolejkowanie, izolowane wykonanie, testy, checkery, punkty i czytelne werdykty.
Zaprojektowany dla różnych aktywności i różnych sposobów oceniania.
Client dobiera renderer, Runner dobiera handler oceniania, a Server zachowuje wspólną kopertę danych. Dzięki temu rozszerzenie może powstać na obrzeżach systemu bez wiązania rdzenia ze szczegółami zadania.
Server utrzymuje trwały stan i zlecenia. Kod trafia do wymiennego Runnera, który działa w odseparowanym środowisku i odsyła wynik.
Manager konfiguruje zawody lub kurs.
Publikuje treść, pliki, limity i punktację.
Uczestnik poznaje wymagania i format.
Kod oraz metadane trafiają do Servera.
Server zapisuje zgłoszenie i kolejkuje pracę.
Runner pobiera zlecenie, izoluje wykonanie i testuje.
Status i werdykt wracają do aplikacji na żywo.
Każdy komponent ma jasno określoną odpowiedzialność. Server koordynuje i przechowuje dane, ale nigdy nie kompiluje ani nie uruchamia kodu.
Interfejs i renderery
Dane i koordynacja
Tożsamość i dostęp
Bezpieczne wykonanie
Nie zna semantyki konkretnego typu zadania.
Może działać w innej sieci, także za NAT-em.
Różne Runnery mogą obsługiwać różne typy zadań.
Wspólny rdzeń wspiera odmienne scenariusze organizacyjne, a rozszerzalność pozostawia miejsce na nowe modele oceniania.
Rundy, terminy, zgłoszenia, rankingi, punktacja i wyniki aktualizowane na żywo.
Serie zadań, wiele prób, prywatne wyniki i szczegółowa informacja zwrotna.
Szybkie aktywności i przewidziane architektonicznie konta tymczasowe z wygasaniem dostępu.
Wyspecjalizowane Runnery, dodatkowe handlery i renderery — bez zmian w centralnym Serverze.
Projekt rozwijamy publicznie. Zajrzyj do wybranej części systemu, zgłoś problem albo włącz się w rozwój.
Webowy interfejs uczestników i managerów oraz warstwa rendererów.
Centralne API, trwały stan, uprawnienia, zlecenia i wyniki.
Wykonanie, izolacja i ocena kodu w wyspecjalizowanym środowisku.
Wszystkie repozytoria, dyskusje i wspólny rozwój projektu.
AlgoJudge jest aktywnie rozwijany. Poniższy podział rozróżnia bieżący cel, zakres pierwszej wersji i dalsze kierunki — nie jest deklaracją gotowości wszystkich funkcji.
Domknięcie pełnego przepływu od aktywności do wyniku.
Podstawy potrzebne do realnych zawodów i kursów.
Kierunki możliwe dzięki modularnej architekturze.
Zobacz architekturę, przejrzyj kod i pomóż kształtować platformę, która nie zamyka nowych pomysłów w jednym modelu oceniania.