AlgoStats Hub is a backend service (API) that aggregates user statistics from popular algorithmic problem-solving platforms: Codewars and LeetCode.
The goal of this project is to provide a single, unified interface (JSON) for retrieving developer progress data, which can then be displayed on a frontend (portfolios, dashboards, etc.).
- Runtime: Node.js
- Framework: Express.js
- Language: TypeScript (ES Modules)
- HTTP Client: Axios
- Linter/Formatter: Biome
Retrieve detailed user statistics.
- URL:
/api/cw/:username - Method:
GET - Success Response (200):
{
"username": "kossman",
"name": "Andrii Stavskyi",
"honor": 351,
"clan": "Ostroh Academy",
"leaderboardPosition": 224547,
"overallRank": {
"name": "5 kyu",
"score": 355,
"color": "yellow"
},
"languages": [
{
"language": "ruby",
"rank": "5 kyu",
"score": 309,
"color": "yellow"
},
{
"language": "javascript",
"rank": "7 kyu",
"score": 32,
"color": "white"
},
{
"language": "typescript",
"rank": "7 kyu",
"score": 44,
"color": "white"
}
],
"totalCompleted": 51
}Retrieve submission statistics by difficulty.
- URL:
/api/lc/:username - Method:
GET - Success Response (200):
{
"username": "stkossman",
"totalSolved": 14,
"totalQuestions": 3792,
"easy": {
"solved": 13,
"total": 918
},
"medium": {
"solved": 1,
"total": 1978
},
"hard": {
"solved": 0,
"total": 896
}
}Retrieve user statistics (followers, repositories, stars, contributions).
- URL:
/api/gh/:username - Method:
GET - Success Response (200):
{
"username": "stkossman",
"name": "Andrii Stavskyi",
"followers": 3,
"totalRepos": 30,
"totalStars": 3,
"totalContributions": 566
}Retrieve all user statistics (Codewars, LeetCode, Github).
Note: Returns null for specific platforms if the user is not found.
- URL:
/api/all/:username - Method:
GET - Success Response (200):
{
"username": "stkossman",
"codewars": null,
"leetcode": {
"username": "stkossman",
"totalSolved": 14,
"totalQuestions": 3792,
"easy": {
"solved": 13,
"total": 918
},
"medium": {
"solved": 1,
"total": 1978
},
"hard": {
"solved": 0,
"total": 896
}
},
"github": {
"username": "stkossman",
"name": "Andrii Stavskyi",
"followers": 3,
"totalRepos": 30,
"totalStars": 3,
"totalContributions": 567
}
}- Setup: Project initialization (Express, TS, Biome).
- Codewars: Codewars REST API integration.
- LeetCode: LeetCode GraphQL API integration.
- Github: Github API integration.
- Aggregation: Endpoint for combined statistics from both platforms.
- Frontend: Client-side development.