A clean UI that asks for a GitHub username and summarizes:
- Profile (name, bio, followers, location)
- Public repos (top 20 by stars)
- Languages distribution (pie chart, aggregated across repos)
- Recent commits (approx. via public events)
cp .env.example .env # optional: set VITE_GITHUB_TOKEN to increase rate-limit
npm install
npm run dev- Recent commits are counted from PushEvent payloads in public events (up to last 300 events) and are an approximation.
- Languages are aggregated by summing bytes from /repos/{owner}/{repo}/languages across at most VITE_MAX_REPOS repos (default 50).
- Add a GitHub token in .env to avoid rate-limit (60/hr → 5000/hr).
npm run build
npm run preview- Add Dockerfile + Jenkinsfile for CI/CD
- Cache GitHub responses in localStorage to reduce API calls
A modern React + Vite + Tailwind web app that summarizes any GitHub profile beautifully.
It shows:
- 👤 Profile details (name, bio, avatar, location, followers, following)
- 📊 Top repositories (sorted by stars with stars, forks, language, updated time)
- 🧩 Programming languages overview + distribution pie chart
- 🔁 Recent commits estimated from public GitHub activity
- 🔙 Back to Search button for quickly resetting and looking up another user
- ⚡ Optional: authenticated requests using a GitHub token for higher rate limits
git clone https://github.com/your-username/github-profile-summarizer.git
cd github-profile-summarizer
cp .env.example .env
npm install
npm run devThen open → http://localhost:5175
If you see this error:
API rate limit exceeded for <your IP>
it means you’re using unauthenticated GitHub requests (limited to 60/hour).
Generate a Personal Access Token:
-
Go to GitHub → Settings → Developer Settings → Tokens → Fine-grained tokens
-
Click Generate new token (classic)
-
Give it a name (e.g.
vite-summary-app) -
Select scopes:
read:userread:repo(optional)
-
Click Generate token and copy it (starts with
ghp_...)
VITE_GITHUB_TOKEN=ghp_yourGeneratedTokenHere
VITE_MAX_REPOS=50Restart your app:
npm run dev✅ You now get 5000 requests/hour instead of 60/hour.
- ⚛️ React 18 (Functional Components + Hooks)
- ⚡ Vite 5 (super-fast dev build)
- 🎨 Tailwind CSS 3
- 📈 Recharts (pie chart for languages)
- 🔗 Axios (GitHub REST API integration)
To build and run as a Docker container:
docker build -t github-profile-summarizer .
docker run -d -p 8080:80 github-profile-summarizerVisit → http://localhost:8080
The included Jenkinsfile:
- Checks out the repo
- Builds the app in Node container
- Builds & pushes Docker image to DockerHub
- Tags with
v<build_number>andlatest
Add Jenkins credentials:
- ID:
dockerhub-creds - Type: Username + Password (DockerHub)
Update the image name in Jenkinsfile:
IMAGE_NAME = "your-dockerhub-username/github-profile-summarizer"
- Enter any GitHub username → click “Summarize”
- View profile summary and stats
- Inspect charts, repos, and commit counts
- Authenticate with GitHub token for smoother experience
- Add GitHub GraphQL API support for faster data
- Cache API responses in
localStorage - Add dark mode
- Deploy on AWS EC2 using Nginx container
MIT © 2026 Aditya Raj Singh


