Giter Site home page Giter Site logo

akifislam / codeforcesautotracker Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 1.24 MB

This application tracks your everyday's Codeforces submission and write on your personal GoogleSheet. Also you can spy on your competitors.

License: Apache License 2.0

Python 100.00%
codeforces googlesheetapi tracking competitive-programming

codeforcesautotracker's Introduction

Codeforces-AutoTracker

In brief, This application tracks your everyday's Codeforces submission and write on your personal GoogleSheet like this :

Why I made Codeforces AutoTracker?

When I started my CS journey, I really loved to make different kinds of projects to satisfy my thirst rather than solving problem on online judges. Besides, it was our (most of the Asian) university-culture to participate in competitive programming or to practise problem-solving on different kinds of online judge. But I did not get any interest on this stuff. So, I read many blogs, watched many videos on the internet to keep myself focused on a new habit. Then I found the best advice from a NasDaily video which says :

"Commitment is the one and only way to get success."

So, I commited to myself that I atleast solve 1 easy problem each day I will do it for 30 days. Then I realized I am so lazy to track my solve count eachday. Even I had no coder friend to ask me everyday how much problem I solved. S

So I made my own friend titled 'Codeforces AutoTracker' which will check my Codeforces submission each day and write it on GoogleSheet. This is the story behind this tracker.

Do I have to run this program every single day?

The answer is 'Yes'. But you don't need to run this program everyday on the terminal. At first I used Heroku (A Free Hosting Platform) to host my program. With free account, it hosted my python program for 500 hours. Then they kicked me and asked for money.

So, I made a better plan which works fine for me for FREE. I usually turn on my laptop every single day for coding or watching YouTube or checking mail. So I set this 'Codeforces AutoTracker' script to run as startup application. But it is always a better idea to host it somewhere else if you can afford.

Disclaimer

  • This app is not totally bug free. Even sometimes it cannot count properly if someone hacks your problem on Codeforces.

  • This app is fully dependent on Codeforces website. So if it is down then the program may crash.

  • Please use the clock.py file to host on server. Use the codeforces_autotrackerscript.py to run on local machine.

  • In this app, I used 'GoogleSheetAPI' to connect with GoogleSheet. So, use your own API key to connect with GoogleSheet. You can also use it without API if you change the code slightly by using PANDAs in python.

  • You must have to install dependencies of python packages to run this script.

  • Check the requirement.txt to get details.

How to Setup Your Codeforces AutoTracker

Step 0 - Install Python and Download this Repository
Step 1 - Install Dependencies
  1. gspread : pip install gspread
  2. oauth2client : pip install oauth2client
  3. requests : pip install requests
  4. beautifulsoup4 : pip install beautifulsoup4
  5. lxml : pip install lxml
Step 2 - Get your own GoogleSheet API Key

To write or edit your personal GoogleSheet, you need to have your own Google API key. A quick Google search may help you to get the key (JSON file). Otherwise this video might help you : (Link)

After that, rename your downloaded json file and match the name on the code. Suppose for me, my JSON file name was 'CodeforcesAutoTracker-b2030a7afa6c.json', So I wrote this title in my code.

Step 3 - Put Codeforces ID to track on GoogleSheet.

Add your friends name on the GoogleSheet as well as in the program. On this part, you have to be careful about the link and the new GoogleSheet tab name. Check the picture to get idea. Here, make new tabs (on the bottom) for different friends. Suppose, first, here I have made tab for myself (Akif), then made tab for my friend Farhan, Kamol, Mhamuda etc.

Preview of GoogleSheet

Now you have to put their Codeforces Submission page link to here :

Preview of Changes in Code

Step 4 - Run the program

Now run codeforcesAutoTrackerscript.py. You can use the clock.py to host this program on Heroku or other hosting server. This clock.py uses Advance Python Scheduler (APScheduler) which helps to run this program once a day.

Support & Contact

If you want to thank me or give any suggestion, feel free to mail here : [email protected]

codeforcesautotracker's People

Contributors

akifislam avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

subhashiscse

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.