GithubHelp home page GithubHelp logo

wood3 / acm-statistics Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liu233w/acm-statistics

0.0 0.0 0.0 78.91 MB

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

Home Page: https://ojhunt.com

License: GNU Affero General Public License v3.0

JavaScript 33.35% Vue 9.98% Shell 0.34% HTML 1.13% Makefile 2.45% Dockerfile 1.15% Batchfile 0.02% C# 51.52% SCSS 0.07%

acm-statistics's Introduction

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🔗
🐛

zby🔗
🤔 🐛

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

acm-statistics's People

Contributors

renovate-bot avatar liu233w avatar dependabot-support avatar dependabot[bot] avatar allcontributors[bot] avatar flylai avatar mergify[bot] avatar imgbotapp avatar renovate[bot] avatar ctuu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.