madrigals1 / leetcode_bot

Leetcode BOT
13 stars 3 forks source link

Leetcode Bot

Leetcode Bot is an app, that gets data for LeetCode Users and creates Rating of Users.

1. reed_w 2018
2. SysSn13 750
3. sandeep_padhi 736
4. alexduanran 672
5. danny1024 610
6. dmndcrow 607
7. madrigals1 607
8. shadow2000 578
9. Lesbek 419
10. makhmudgaly2 389
11. lalabhai18 368
12. user9678ch 366
13. pheonix97al 318
14. Ajink7 267
15. vishavjeet2710 255
16. ubtrnvme 182
17. megasaab 173
18. shahriarkabir44 115
19. yesseyev_mt 113
20. Lorem 57
21. poomrokc 49
22. zhanybekovv 44
23. meiirzhan_yerzhanov 20
24. ssskkk16 13

Demo

LeetCode BOT is available on 3 platforms:

You can create your own rating by deploying this project on your machine!!!

Table of Contents

Installation

If you want to use Docker, check this tutorial.

Prerequisites

Make sure you have installed these:

(Optional) If you are going to use PostgreSQL or MongoDB, you will have to install them:

You can use SQLite3 as Database, this way you will not have to install anything.

Installation Steps

  1. Make a copy of .env.example file named .env

    cp .env.example .env
  2. To enable specific chatbot, change respective values inside .env

    # Get token and bot name from https://t.me/botfather
    TELEGRAM_TOKEN=
    TELEGRAM_BOT_NAME=
    
    # Get values from https://discord.com/developers/applications
    DISCORD_TOKEN=
    DISCORD_APP_ID=
    DISCORD_GUILD_ID=
    
    # Get values from https://api.slack.com/apps
    SLACK_TOKEN=
    SLACK_SIGNING_SECRET=
    SLACK_APP_TOKEN=
  3. Change settings for Database

    • SQLite3 - no changes needed.

    • MongoDB

      MONGO_DB_URL=localhost
      MONGO_DB_NAME=leetbot_db
      MONGO_DB_AUTHENTICATION_ENABLED=True
      MONGO_DB_USER=admin
      MONGO_DB_PASSWORD=password
      MONGO_DB_PORT=27017
    • PostgreSQL

      POSTGRES_DB_URL=localhost
      POSTGRES_DB_NAME=leetbot_db
      POSTGRES_DB_USER=admin
      POSTGRES_DB_PASSWORD=password
      POSTGRES_DB_PORT=5432
  4. Delay time after loading each User is set to 4s, depends on LeetCode RPM

    USER_REQUEST_DELAY_MS=4000
  5. Install npm packages

    npm ci

Running

npm start

Testing

Regular testing

npm test

Testing with checking and creating test coverage. You can check coverage report under ./coverage/lcov-report/index.html

npm run test:coverage

Authors