Skip to content

PurvaNS2005/Competitive-Programming-Portal

Repository files navigation

README.md

Competitve Programing Portal

A mobile application designed for competitive programmers to check their profile information from three major platforms—Codeforces, LeetCode, and AtCoder. Users can view their rankings, ratings, problems solved, and more.

Additionally, the app features an in-app calendar that helps users plan their contest participation by viewing past, ongoing, and upcoming contests. Users can also add or delete contests from their personalized calendar.

Features

  • User Account: Allows users to create an account for a more personalized experience, enabling them to easily check ratings and contests.
  • Profile Aggregation: View user data from Codeforces, LeetCode, and AtCoder. See your rankings, rating, problems solved, and other stats for each platform.
  • Contests Page: View past, ongoing, and upcoming contests from all three platforms.
  • Personalized Calendar: Users can store relevant contests in their calendar and delete them once the contest day has passed.

Screenshots

Screenshot 2024-10-12 013019 Screenshot 2024-10-12 013056 Screenshot 2024-10-12 013316 Screenshot 2024-10-12 013132 Screenshot 2024-10-12 013157 Screenshot 2024-10-12 013221 Screenshot 2024-10-12 013334

Screenshot 2024-10-12 172454

Usage

  • Signup/Login: Register or log in using Firebase Authentication.
  • Profile Page: View your/your friend's profile data from Codeforces, LeetCode, and AtCoder, including ratings, problems solved, and ranks.
  • Contests: View all the past, ongoing and upcoming contests from all three platforms. Can add all the upcoming contests in the in-app calendar.
  • Contest Calendar:
    Browse contests from various platforms. Add or delete contests to manage your participation using the in-app calendar.

Getting Started

Prerequisites:

  • Android Studio (latest version)
  • Firebase Project
  • APIs from Codeforces, LeetCode, and AtCoder

Setup:

  • Clone the Repository:

    git clone https://github.com/PurvaNS2005/Competitive-Programming-Portal
    
  • Open in Android Studio:

    Open Android Studio and select File > Open. Navigate to the project folder and open it.

  • Configure Firebase:

    Create a Firebase project at Firebase Console. Download the google-services.json file and place it in the app directory. Enable Firebase Authentication and Firestore in the Firebase console.

  • API Keys and Endpoints:

    Get API access from Codeforces, LeetCode, and AtCoder. Follow their respective API documentation. Configure the API URLs in your app code.

  • Run the App:

    Build the app in Android Studio and run it on an emulator or a physical device.

API Reference

Get codeforces user info.

  GET https://codeforces.com/api/user.info?handles=${handles}
Parameter Type Description
handles string Required. Codeforces handle of the user to fetch.

Get codeforces contests.

  GET  https://codeforces.com/api/contest.list?gym=false
Parameter Type Description
gym boolean Required. false to exclude gym contests

Get Atcoder contests.

GET https://kenkoooo.com/atcoder/resources/contests.json
Parameter Type Description
None This endpoint does not require any parameters.

Get Atcoder user details.

GET https://kenkoooo.com/atcoder/atcoder-api/v3/user/ac_rank
Parameter Type Description
user string The handle of the user.

Get leetcode past contest details.

GET https://alfa-leetcode-api.onrender.com/{handle}/contest/history
Parameter Type Description
handle string The leetcode user handle.

Get Leetcode user details.

  GET https://alfa-leetcode-api.onrender.com/userProfile/{userName}
Parameter Type Description
username string The leetcode user handle.

Demo

WhatsApp.Video.2024-10-12.at.5.23.14.PM.mp4

Submission

https://drive.google.com/drive/u/0/folders/1GK6KvTlVy1hfwUGQ_sqa9LL4q6cnJVtj

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages