Learning management and programming tasks submissions grader.
Almost everything implemented using Dart Programming Language and use gRPC Framework for inter-component communication.
Requires Dart >= 2.17 and Protobuf Compiler to build server-side components and also Flutter SDK >= 3.0 to build client-side app.
To build gRPC-Web proxy server also required GoLang >= 1.16.
Documentation on content preparation explained in Russian using Demo course matching this repository demo subdirectory.
Demo course in Russian was available at demo.yajudge.ru. Now it not available due to sanctions that do not allow to pay cheap hosting. Please contact me for donations if you can pay server outside the Russia.
- Make sure you have
dart
,go
,flutter
andprotobuf-compiler
packages installed - Run
make
to build everything but native client apps - To build native client app for current platform
(only macOS and partially Linux/GTK implemented yet)
run
make native-client
inyajudge_client
subdirectory.
See README.md in subdirectories for details):
- yajudge_master - server-side backend to manage courses, problems and students
- yajudge_client - frontend app for Web and Desktops
- yajudge_grader - submissions grader to be run on the same hosts as master or run on independent hosts
- yajudge_common - common library required by all three components listed above
- yajudge_grpcwebserver - web-server to handle
static files exposed by
yajudge_client
and to handle both gRPC-Web and gRPC-Native requests within the same host:port address.