A scoreboard for JudgeGirl contest. It will crawl submissions during the contest with JudgeGirl API.
- Support multiple problems in a single contest
You can view lots of problems in a single contest in a single web page.
- Dynamic scoreboard using Vue.js
The score distribution will be displayed dymaically, and so does those statistics.
- Custom sorting in scoreboard
You can sort scoreboard with last submissions, total score, users' id, and so on.
- Fancy UI
We use Tocas UI to displayed our scoreboard, it's a RWD-friendly UI library.
- Customizable display name
You can change the display name (e.g. add users' name after his uid) simply.
- A static statistics page
By setting some config, you could generate some staic statistics page to overview contests.
First of all, check you have Python with version >= 3 and PHP
Then git clone https://github.com/oToToT/JudgeGirl-Scoreboard.git
, now those source code will be cloned into JudgeGirl-Scoreboard
.
Run pip install -r requirements.txt
to install dependencies for those python scripts.
Edit URL_BASE
to the url of your website, TMP_PATH
to the path which could store a temp file, and JUDGEGIRL_URL
to JudgeGirl's url in config.example.json
and rename it to config.json
(notice that a /
behind any path is important).
To customize display name, you should modify student_info.example.php
which stores a mapping from uid to what you want to display.
After that, you should rename it to student_info.php
.
Now, you could enjoy the fancy scoreboard of JudgeGirl.
To modify the statistics page, you should go to stat/
and add some folder like 2019-overall
with a config.json
inside it.
Then, run python libs/gen_stat.py
to generate static html files. (Notice that you can't customize names in statistics page.)
Thanks @brianbbsu for the crawler.py
.
Without his first attempt, I won't start this project.
Thanks @bluemorbo for adding some XSS protection.
Also, thanks those who have make suggestion for me.