A full-stack web application that analyzes a GitHub profile and presents useful developer insights through an interactive dashboard.
The application fetches GitHub profile and repository data through the GitHub API and converts it into visual analytics covering repositories, languages, activity, stars, forks, commits, and overall portfolio quality.
- 🔎 Analyze any public GitHub profile
- 👤 View GitHub profile information
- 📁 Repository statistics
- 💻 Programming language analysis
- 📊 Development activity visualization
- ⭐ Stars and forks analysis
- 📝 Commit insights
- 📈 GitHub portfolio quality score
⚠️ User-friendly error handling- 📱 Responsive dashboard interface
- 🔄 Fresh analysis on every new session
- React
- Vite
- React Router
- Axios
- CSS
- Node.js
- Express.js
- Axios
- dotenv
- CORS
- GitHub REST API
- Frontend: Vercel
- Backend: Render
User enters GitHub username
↓
React Frontend
↓
Axios Request
↓
Express Backend
↓
GitHub REST API
↓
GitHub Profile Data
↓
Data Processing
↓
React Dashboard
↓
Visual Developer Insights
Provides a quick summary of the analyzed GitHub profile, including:
- Profile information
- Followers and following
- Repository count
- Stars
- Forks
- Open issues
- Development activity
- Overall GitHub score
Displays repository-related information and statistics.
Analyzes the programming languages used across the user's repositories.
Visualizes GitHub development activity and contributions.
Provides insights into repository popularity through stars and forks.
Shows commit-related activity and contribution information.
Provides an overall portfolio quality analysis based on available GitHub data.
github-portfolio-analyzer/
│
├── backend/
│ ├── controllers/
│ │ └── github-controller.js
│ │
│ ├── routes/
│ │ └── github-routes.js
│ │
│ ├── services/
│ │ └── github-service.js
│ │
│ ├── package.json
│ └── server.js
│
├── frontend/
│ ├── public/
│ │
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ │ ├── Activity.jsx
│ │ │ ├── Commits.jsx
│ │ │ ├── Languages.jsx
│ │ │ ├── Overview.jsx
│ │ │ ├── Quality.jsx
│ │ │ ├── Repositories.jsx
│ │ │ └── StarsForks.jsx
│ │ │
│ │ ├── api.js
│ │ ├── App.jsx
│ │ ├── App.css
│ │ └── main.jsx
│ │
│ ├── package.json
│ └── vite.config.js
│
├── .gitignore
├── package.json
└── README.md
git clone https://github.com/chillguy-13/github-portfolio-analyzer.gitcd github-portfolio-analyzerGo into the backend directory:
cd backendInstall dependencies:
npm installCreate a .env file inside the backend folder:
GITHUB_TOKEN=your_github_tokenStart the backend:
node server.jsThe backend will run on:
http://localhost:5000
Open another terminal and run:
cd frontendInstall dependencies:
npm installStart the development server:
npm run devThe frontend will normally run on:
http://localhost:5173
The backend requires a GitHub personal access token:
GITHUB_TOKEN=your_github_tokenThe token is used by the backend when communicating with the GitHub API.
Never commit your .env file or expose your GitHub token publicly.
Environment files are excluded from Git tracking through .gitignore.
The Express backend is deployed as a web service on Render.
Production backend:
https://github-portfolio-analyzer-sf32.onrender.com
The React/Vite frontend is deployed on Vercel.
Live application:
https://github-portfolio-analyzer-lilac.vercel.app/
The frontend communicates with the deployed backend API in production.
The backend exposes the following GitHub analysis endpoint:
GET /api/github/:username/analyze
Example:
GET /api/github/octocat/analyze
The endpoint fetches and processes GitHub information before returning the data required by the frontend dashboard.
The application handles common situations such as:
- Empty username
- GitHub user not found
- GitHub API rate limits
- Backend connection errors
- Server errors
- Invalid requests
Users receive clear error messages instead of a broken dashboard when an analysis fails.
The application intentionally does not persist the previously analyzed GitHub profile.
When a new browser session starts, the dashboard begins with an empty search state.
This prevents an old profile from unexpectedly appearing when the application is reopened.
Run both services during local development.
cd backend
npm install
node server.jscd frontend
npm install
npm run devPossible future improvements include:
- GitHub profile comparison
- More advanced repository quality metrics
- Contribution trend analysis
- Technology and framework detection
- Exportable portfolio reports
- Improved mobile experience
- Authentication
- More detailed repository insights
- Automated testing
- CI/CD pipeline
chillguy-13
GitHub: chillguy-13
This project is available for educational and personal portfolio purposes.



