8000 GitHub - amitpant14/lccn_predictor: Leetcode Contest Rating Prediction
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

amitpant14/lccn_predictor

 
 

Repository files navigation

Introduction

This is a Leetcode weekly and biweekly contest rating predictor. The APP is available online at 🔗 lccn.lbao.site

Hopefully, you can get the predicted result within 20-30 minutes after the contest has finished.

Features

  • ⚡️ Fast
    1. The core prediction algorithm is accelerated by a JIT compiler(Numba) which costs around 20 seconds on a two-cores Intel(R) Xeon(R) Platinum 8255C CPU (@ 2.50GHz).
    2. User's latest rating was cached serval times before predicting which can save a lot of time fetching data.
  • 🎯 Accurate
    1. If there were no massive rejudges(say, everyone's global ranking stays unchanged), the rating difference should be negligible.
    2. Please note that a normal case is that there would be some misconduct detection, so your global ranking will be slightly higher even if your submissions are not rejudged, which results in a slightly higher rating :)
  • 📱 Responsive web page

    Tested on phones and tablets.

More Information

Underlying Mechanism

Algorithm

Database

Backend

  • APScheduler: background tasks
  • Numpy and Numba: core prediction algorithm implementation and acceleration
  • FastAPI: restful API
  • 🚮 Jinja: HTML templates for server-side rendering

Frontend

Development

Backend Deployment

virtualenv

git clone git@github.com:baoliay2008/lccn_predictor.git
cd lccn_predictor

# write your mongodb environment config
cp config.yaml.template config.yaml
vi config.yaml

python3.10 -m virtualenv venv/
source venv/bin/activate

pip3 install -r requirements.txt

python main.py
uvicorn api.entry:app --host 0.0.0.0 --port 55555

Docker

git clone git@github.com:baoliay2008/lccn_predictor.git
cd lccn_predictor

# write production environment mongodb config
cp config.yaml.template config.yaml
vi config.yaml

# build docker image
docker image build -t lccn_predictor:0.1.1 .

# create docker volume
docker volume create lccn_predictor

# run container
docker run -d -v lccn_predictor:/lccn_predictor -p 55555:55555 --name lp lccn_predictor:0.1.1

docker exec -it lp bash

docker container stop lp

docker container start lp

Frontend Deployment

cd client

# install dependencies
npm install

# change `baseUrl` to your local backend process
vi src/data/constants.js
# if you followed instruction above
# it should be "http://localhost:55555/api/v1"

# local test
npm start

# publish
npm run build

License

MIT License

Changelog

  • v0.0.1(2022/11/14)

    make this repo public, first release.

  • v0.1.1(2023/02/14)

    change frontend from server-side rendering(Jinja + Materialize) to client-side rendering(React).


Supported by

JetBrains Logo (Main) logo

About

Leetcode Contest Rating Prediction

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 58.2%
  • JavaScript 28.1%
  • HTML 12.5%
  • Other 1.2%
0