A full-stack web app to visualize GitHub user profiles, repositories, and contribution stats using the MERN stack.
- MongoDB – stores cached GitHub data and user preferences
- Express.js – REST API server
- React – frontend UI with charts and profile cards
- Node.js – backend runtime
- Search any GitHub username and view profile details
- Visualize top repositories by stars, forks, and language
- Display contribution activity and language breakdown charts
- Responsive UI with dark/light mode
- Node.js v18+
- MongoDB (local or Atlas)
- GitHub Personal Access Token (for higher API rate limits)
GitHub_Profile_Visualizer/
├── client/ # React frontend
│ ├── public/
│ └── src/
│ ├── components/ # ProfileCard, RepoList, Charts
│ ├── pages/ # Home, Profile
│ ├── hooks/ # useGitHub custom hook
│ └── App.jsx
├── server/ # Express backend
│ ├── routes/ # /api/github
│ ├── controllers/ # GitHub API logic
│ ├── models/ # Mongoose schemas
│ └── index.js
├── .env.example
└── package.json
git clone https://github.com/<your-username>/GitHub_Profile_Visualizer.git
cd GitHub_Profile_Visualizercp .env.example .env.env:
GITHUB_TOKEN=<your_github_token>
MONGO_URI=<your_mongodb_connection_string>
PORT=5000
# Install server dependencies
cd server && npm install
# Install client dependencies
cd ../client && npm install# Start backend (from /server)
npm run dev
# Start frontend (from /client)
npm run devFrontend runs on http://localhost:5173, backend on http://localhost:5000.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/github/:username |
Fetch GitHub profile data |
| GET | /api/github/:username/repos |
Fetch user repositories |
express– web frameworkmongoose– MongoDB ODMaxios– GitHub API requestsdotenv– environment variablescors– cross-origin requests
react+vite– UI and build toolreact-router-dom– client-side routingrecharts– data visualization chartsaxios– API calls
Without a token: 60 requests/hour
With a token: 5,000 requests/hour
Generate a token at GitHub Settings → Developer Settings → Personal Access Tokens (Fine-grained).
MIT