Codeforces Insights is a web application built using Flask that provides visualizations and insights into a Codeforces user's performance. It utilizes various Codeforces API endpoints to gather data on a user's ratings, submissions, blog entries, and more. The data is then visualized through interactive charts and graphs.
The application is live at Codeforces Insights. Feel free to visit and explore the insights it provides.
To deploy Codeforces Insights locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/codeforces-insights.git
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the Flask application:
python app.py
The application will be accessible at
http://127.0.0.1:5000/
in your web browser.
- Predicts the Codeforces user's ratings using the Prophet forecasting model.
- Provides a visual representation of the predicted ratings over time.
- Visualizes the distribution of verdicts (e.g., AC, TLE, WA) for the user's submissions.
- Displays a pie chart showcasing the user's preferred programming languages.
- Illustrates the distribution of problems solved based on their difficulty levels.
- Presents a donut chart indicating the user's engagement with various problem tags.
- Highlights key statistics such as total problems tried, problems solved, accuracy, and more.
- Provides contest-related statistics, including the number of contests participated in and best/worst ranks.
- Lists the latest blog entries of the Codeforces user.
- Allows users to view more entries with a "Show More/Less" button.
- Displays a calendar heatmap showing the user's submission activity over time.
- Allows users to specify the maximum number of submissions to display.
- Flask: Web framework for building the application.
- Pandas: Data manipulation library for handling and processing data.
- Prophet: Time series forecasting library for predicting ratings.
- Plotly: Interactive plotting library for creating charts and graphs.
- Chart.js: JavaScript charting library for creating dynamic charts.
- HTML/CSS: Front-end technologies for structuring and styling the user interface.
If you'd like to contribute to Codeforces Insights, please follow these guidelines:
- Fork the repository on GitHub.
- Clone your forked repository locally.
- Create a new branch for your changes:
git checkout -b feature-new-feature
. - Make your modifications and commit:
git commit -am 'Add new feature'
. - Push the changes to your fork:
git push origin feature-new-feature
. - Open a pull request on the original repository.
- Codeforces API for providing the data used in this project.
- The open-source community for developing and maintaining the libraries and tools used in this project.