프로젝트 목록 GitHub
/ 프로젝트 / GitHub Rank Insight

GitHub Rank Insight

Web HTML/CSS/JS GitHub API 개인 개발

프로젝트 개요

GitHub Stats 등급(S·A+·A·A-·B+·B·B-·C+·C)을 자동 또는 수동으로 계산하고 지표별 기여도와 다음 등급 달성 조건을 시각화하는 서버리스 웹 도구입니다. GitHub username 하나만 입력하면 바로 등급 분석 결과를 제공합니다.

anuraghazra/github-readme-statscalculateRank.js 공식을 그대로 구현해 기존 Stats 카드와 동일한 결과를 보장합니다.

주요 기능

  • 자동 모드 — GitHub username 입력 시 REST API를 통해 Stars·Commits·PRs·Issues·Followers 자동 조회
  • 수동 모드 — 지표를 직접 입력해 미래 수치 시뮬레이션 가능
  • 원형 게이지 + 등급 문자 + 상위 퍼센타일 수치 시각화
  • 지표별 기여도 바 차트 — CDF 퍼센타일과 가중 기여량 시각화
  • 다음 등급 달성 조건 — 한 단계 위 등급을 위해 지표별 필요 증가량 계산 (이진 탐색)
  • Copy Markdown — 결과를 README에 바로 붙여넣기 가능한 텍스트로 복사

계산 알고리즘

지표별 CDF(누적분포함수)를 이용해 0~1로 정규화한 후 가중 합산합니다.

exponential_cdf(x) = 1 - 2^(-x) log_normal_cdf(x) = x / (1 + x) score = (stars×4 + prs×3 + commits×2 + issues×1 + followers×1) / 11 percentile = (1 - score) × 100
지표 가중치 중앙값 분포
Stars450log-normal
Pull Requests350exponential
Commits2250 / 1000exponential
Issues125exponential
Followers110log-normal

기술적 구현 포인트

  • ES Module 구조로 calculate.js / api.js / ui.js / main.js 역할 분리
  • GitHub REST API의 search/commits 엔드포인트cloak-preview 헤더로 호출해 전체 커밋 수 조회
  • 다음 등급 달성 조건: 각 지표별로 이진 탐색(60회 반복)으로 최소 필요 값 산출
  • 원형 게이지: SVG stroke-dashoffset 기법으로 CSS 트랜지션과 연동
  • GitHub Token은 localStorage에만 저장, 서버 전송 없이 브라우저에서만 사용

나의 역할

1인 개발 · 전 과정

기획, 알고리즘 구현, 프론트엔드 개발, 배포 전 과정을 단독으로 진행했습니다.