Codeforces Rank Tracker

Track your students' progress on Codeforces

Version 1.1.0

Monitor Codeforces Ratings and Ranks

A simple tool for educators to track their students' competitive programming progress

Features

Track Multiple Users

Monitor an unlimited number of Codeforces handles at once

Detect Changes

Automatically detect and highlight rating and rank changes

Historical Data

Store historical data for comparison over time

Simple CLI

Easy-to-use command-line interface with colorized output

CSV Export

Export data to CSV for further analysis

Handle Validation

Validate handles before adding them to your tracking list

Historical Tracking

Track ratings from specific time periods (e.g., March 2022, 2023, 2024)

Progress Analysis

Compare student progress across multiple years

What's New in v1.1.0

Historical Rank Tracking

Track ratings and ranks from specific time periods (March 2022, 2023, 2024)

python3 historical_ranks.py

Historical Data Export

Export historical data to CSV for further analysis

python3 export_historical_csv.py

Improved API Handling

Enhanced error recovery and URL encoding for special characters in handles

Better Progress Reporting

Added more detailed progress information during API requests

How It Works

Terminal
$ python3 cf_tracker.py
Fetching data for 5 handles...
Processing handles: tourist, Petr, ecnerwala, Um_nik, Benq

Handle      Current Rating  Current Rank         Max Rating  Max Rank            Change
----------  --------------  -------------------  ----------  ------------------  --------
tourist     3979            Legendary Grandmaster  3979        Legendary Grandmaster  +25 ↑
Petr        3597            International Grandmaster  3756        Legendary Grandmaster  0 =
ecnerwala   3531            International Grandmaster  3531        International Grandmaster  -12 ↓
Um_nik      3488            International Grandmaster  3488        International Grandmaster  0 =
Benq        3469            International Grandmaster  3469        International Grandmaster  +7 ↑

Data updated successfully!

Historical Tracking Demo

Terminal
$ python3 historical_ranks.py
Fetching historical data for tourist...
Fetching historical data for Petr...
Fetching historical data for ecnerwala...

Historical Codeforces Ratings for March:
+----------+-----------------+----------------+------------------+----------------+------------------+----------------+
| Handle   | March 2022      | Contest Date   | March 2023       | Contest Date   | March 2024       | Contest Date   |
+==========+=================+================+==================+================+==================+================+
| tourist  | 3805 (Legendary)| 2022-02-23     | 3887 (Legendary) | 2023-03-19     | 3979 (Legendary) | 2024-03-10     |
+----------+-----------------+----------------+------------------+----------------+------------------+----------------+
| Petr     | 3597 (Int'l GM) | 2022-03-15     | 3597 (Int'l GM)  | 2023-02-28     | 3597 (Int'l GM)  | 2024-02-15     |
+----------+-----------------+----------------+------------------+----------------+------------------+----------------+
| ecnerwala| 3531 (Int'l GM) | 2022-01-23     | 3531 (Int'l GM)  | 2023-01-08     | 3531 (Int'l GM)  | 2024-01-21     |
+----------+-----------------+----------------+------------------+----------------+------------------+----------------+

Getting Started

1

Install Dependencies

pip install -r requirements.txt
2

Add Student Handles

python3 add_handles.py

Or edit handles.txt directly

3

Track Ranks

python3 cf_tracker.py
4

Track Historical Ranks

python3 historical_ranks.py
5

Export Data (Optional)

python3 export_csv.py
python3 export_historical_csv.py