• Stars
    star
    145
  • Rank 254,144 (Top 6 %)
  • Language
    C#
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An online tool (crawler) to analyze users performance in online judges (coding competition websites). Supported OJ: POJ, HDU, HYSBZ, CodeForces, UVA, ICPC Live Archive, FZU, SPOJ, Timus (URAL), LeetCode_CN, CSU, LibreOJ, 洛谷, 牛客OJ, Lutece (UESTC), AtCoder, AIZU, CodeChef, El Judge, BNUOJ, Codewars, UOJ, NBUT, 51Nod, DMOJ, VJudge

This repo contains the source code of OJ Analyzer

简体中文版:README_zh-hans.md

Powered by ZenHub Quality Gate codecov Cypress.io Renovate enabled Mergify Status

All Contributors

Build status

Unit Tests Test E2E

Features

  • Querying ac/submissions of oj
  • Storing querying history

Under development

  • Email support
  • Ranks
  • ……

Directory structure

  • frontend: The front end
  • crawler: Crawlers to query OJs. Being used by both frontend and backend
  • crawler-api-backend: A microservice that provides querying api
  • e2e: E2E tests
  • backend: The back end, a monoservice
  • captcha-service: A microservice that provides captcha support
  • ohunt: A stateful, standalone crawler microservice used to support certain OJs such as ZOJ.
  • build: Codes to build and deploy the project. Tool chain: docker, docker-compose, GNU make.
  • tools: Utility scripts and config files in operation

See the README file in each module for specific documents.

Developing and deploying in docker

  • The project needs docker and docker-compose to function correctly.

Development

  • This project uses makefile to manage dependency between modules. Execute make help in repository root to view document.
  • GNU make is required.

Deploy

There are two ways to deploy this project in a server.

One-liner

Execute following code in shell to deploy the project to port 3000.

curl -s https://raw.githubusercontent.com/Liu233w/acm-statistics/master/tools/remote-docker-up.sh | bash

Vjudge crawler is not available in this way.

Config file version

In this way you are able to customise the configuration, enabling all features.

# Create a folder to store config files
mkdir -p ~/www/acm-statistics
cd ~/www/acm-statistics
# Download runner script and add permissions
curl https://raw.githubusercontent.com/Liu233w/acm-statistics/master/tools/remote-docker-up.sh  -o run.sh
chmod +x run.sh
# Run the script once to generate configuration file. It will exit after the line `.env file created, remember to edit it` is shown.
./run.sh
# Edit the config file following the description in it.
vim .env
# Now we can run the project by the script
./run.sh

Then you can use tools such as systemd to run ./run.sh.

./tools/acm-statistics.service is a template config file of systemd.

run.sh checks updates when it is starting. If there are updates to template.env, run.sh will exit and ask you to compare these two files. The script compares the line count of the two files to check update, please make sure they are identical when editing.

Management

  • Set the url of adminer in .env file. It is /adminer by default.
    • You can view and edit database via adminer.
    • The name of the database is acm_statistics. Username is root. You can set password in .env
  • Backups are created automatically in 3:00am each day, stored in db-backup folder, which is in the folder that contains config files.

License

  • All source code except the code in crawler/crawlers are under AGPL-3.0 license
  • The code in crawler/crawlers are under BSD 2-Clause license.

Contribution

  • All contribution especially crawlers are welcomed.
  • Please follow Commit Message Conventions when writing git commit messages.
  • You may use cz-cli to help writing commit messages.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Adelard Collins🔗
🐛

BackSlashDelta🔗
🐛

Bodhisatan_Yao🔗
🐛

Geekxiong🔗
🤔

Halorv🔗
🤔

Kido Zhang🔗
🚇 🤔

Liu233w🔗
💻 🤔 🚇 ⚠️

Meulsama🔗
🤔

Michael Xiang🔗
🐛

Zhao🔗
🐛

bluebear4🔗
🐛

ct🔗
🐛

flylai🔗
💻 🐛

fzu-h4cky🔗
🐛

wwawwaww🔗
🐛

zby🔗
🤔 🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

More Repositories

1

natchat

类似飞鸽的局域网聊天,文件传输系统。综合创作训练3大作业
C++
20
star
2

CapsLocKeys.ahk

An autohotkey's script that makes your capslock more powerful
AutoHotkey
13
star
3

BigIntegerCalculator

qt界面的整型大数计算器,只是作业
C++
12
star
4

number-lock.el

An Emacs package which allows you to enter symbols on your number keys without pressing shift
Emacs Lisp
7
star
5

.spacemacs.d

my spacemacs config
Emacs Lisp
4
star
6

marklang

一个我自创的简单的标记语言的语法解析器与转换器 —— 面向对象编程期末大作业
HTML
4
star
7

multi-keys.el

Like key-chord.el but without input-method dependency
Emacs Lisp
3
star
8

network-experiment

网络与分布式计算实验课作业
Java
2
star
9

acm-statistics-abp

新版 NWPU-ACM 查询系统后端
C#
2
star
10

ccc-assignment2

Jupyter Notebook
2
star
11

Library

图书管理系统 —— 软件项目组织与管理大作业
JavaScript
2
star
12

ToyCompiler

编译原理课上敲的代码(随手写的项目、实验课作业)
C#
2
star
13

nwpu-git

关于git和github的学习资料
1
star
14

EjectDrive

an AHK script to remove your removable drive
AutoHotkey
1
star
15

remove-baidu-wenku-tooltips.user.js

一个用户脚本,用于移除百度文库在选中文字后弹出的提示框
JavaScript
1
star
16

wox-raindrop

Wox plugin to query Raindrop.io bookmarks
Python
1
star
17

confirm-rm

A safer rm with confirmation!
TypeScript
1
star
18

tieba_old_posts_remind

贴吧坟贴提醒(脚本版)
JavaScript
1
star
19

nwpu-acm-python

在学校讲课用的讲义
Emacs Lisp
1
star
20

cpp-tsp3

使用遗传算法解决 tsp 问题,现代软件工程大作业
C++
1
star
21

theoretical-evaluation

Average Performance Based Fault Localization and Test Suit Optimization System
Java
1
star
22

defects4j-docker

Dockerfile
1
star
23

lashijia

综合创作训练大作业 -- 网站制作
CSS
1
star