Skip to content

Pyramid-IT-Learn/Pyramid-Performance-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pyramid Performance Tracker πŸ†

Welcome to the Pyramid Performance Tracker project! This application tracks and displays competitive programming performance across multiple platforms for students from various colleges.

Manual Verify & Upload Users Scheduled Scrape & Build Leaderboard

πŸš€ Features

  • Scrapes data from multiple platforms: CodeChef, Codeforces, GeeksforGeeks, HackerRank, and LeetCode.
  • Generates a comprehensive leaderboard in Excel and CSV formats.
  • Allows real-time updates and viewing of participants’ performance.

πŸ“‹ Table of Contents

πŸ’» Installation

  1. Clone the repository:

    git clone https://github.com/Pyramid-IT-Learn/Pyramid-Performance-Tracker.git
    cd Pyramid-Performance-Tracker
  2. Create a Virtual Environment: Make sure you have Python and venv installed:

    python -m venv venv
  3. Activate the Virtual Environment:

    • On Windows:
      venv\Scripts\activate
    • On macOS/Linux:
      source venv/bin/activate
  4. Install Required Packages: Install the necessary packages:

    pip install -r requirements.txt

πŸ”‘ Environment Setup

To configure the application, you'll need to set several environment variables. You can create a .env file in the root directory or set these variables in your environment:

CODEFORCES_KEY=your_codeforces_api_key
CODEFORCES_SECRET=your_codeforces_api_secret
GIT_USERNAME=your_github_username
GIT_PASSWORD=your_github_password
GFG_USERNAME=your_geeksforgeeks_username
GFG_PASSWORD=your_geeksforgeeks_password
CODECHEF_CLIENT_ID=your_codechef_client_id
CODECHEF_CLIENT_SECRET=your_codechef_client_secret
DB_PASSWORD=your_mongodb_password

πŸ“Š Database Configuration

  • MongoDB Connection:
    mongodb://myUserAdmin:<DB_PASSWORD>@your_mongodb_host:27017
    
  • DB_NAME: Keep it as Pyramid or change it as needed for different colleges.
  • USERS_COLLECTION: Change this name for different batches; currently set to Pyramid-2026-LEADERBOARD.

πŸ“ˆ Usage

To manage the Pyramid Performance Tracker, follow these steps:

  1. Verify Users: This will download the CSV file specified in the config if it doesn't exist.

    python main.py --verify all
  2. Upload Data to Database:

    python main.py --upload
  3. Scrape Data: Collect data from all platforms.

    python main.py --scrape all
  4. Clear Logs and Reports (optional):

    python main.py --clear

Ensure you run the verification and upload steps before scraping to keep your data updated!

This will fetch user data and generate reports in the reports directory.

🌐 Viewing Leaderboards

You can view the latest leaderboards and track participant performance at Pyramid Leaderboards.

πŸ”„ Workflows

The Pyramid Performance Tracker project uses GitHub Actions to automate key tasks:

1. Leaderboard Builder

  • Trigger: Manually.
  • Purpose: Scrapes user data from coding platforms and builds the leaderboard report.

2. Manual Scrape & Build Leaderboard

  • Trigger: Manually select platforms.
  • Purpose: Scrapes data from specific platforms (CodeChef, Codeforces, etc.) or all at once.

3. Manual Verify & Upload Users

Needs to be performed first.

  • Trigger: Manually select platforms.
  • Purpose: Verifies user handles and uploads the data to the database.

4. Scheduled Leaderboard Scraper

  • Trigger: Scheduled. (01:30 AM IST on Tuesday and Saturday)
  • Purpose: To generate the data for users in the database continuously.

To trigger workflows, go to the GitHub Actions tab in your repository and select the desired workflow.

πŸ™ Credits

A massive shoutout to the incredible gabyah92 for their brilliant vision and exceptional contributions! πŸŽ‰ Your original project laid the foundation for this leaderboard, and your dedication to the coding community inspires us all. Thank you for sharing your knowledge and creativityβ€”this project wouldn’t be possible without you! 🌟

About

Pyramid Performance Tracker πŸ†: Track competitive programming performance for students across platforms! πŸš€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •