A modern web application to analyze public GitHub repositories, visualize contributors, and explore repository statistics.
- Analyze any public GitHub repository by URL
- Contributors sidebar with scroll (sticky on desktop)
- Repository details: name, description, stars, forks, issues
- Top contributors and commit activity visualization
- Responsive, modern UI using Material-UI (MUI v7+)
- Backend: Flask API with secure GitHub token handling
/github-repo-analyzer/ βββ ui/ # React app (Create React App) β βββ Dependencies: React 19, MUI 7, Recharts, Axios βββ backend/ # Flask API βββ app.py βββ Dockerfile βββ .dockerignore βββ Dependencies: Flask, requests, python-dotenv, flask-cors
yaml Copy Edit
- Node.js (v18+ recommended)
- Python 3.8+
- npm (comes with Node.js)
- GitHub personal access token (for API requests)
git clone https://github.com/yourusername/github-repo-analyzer.git
cd github-repo-analyzer
βοΈ 2. Backend Setup
bash
Copy
Edit
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Create a .env file and add your GitHub token:
bash
Copy
Edit
echo "GITHUB_TOKEN=your_github_token_here" > .env
Start the Flask server:
bash
Copy
Edit
python app.py
The backend runs on http://localhost:5001/ by default.
π» 3. UI Setup
bash
Copy
Edit
cd ../ui
npm install
npm start
The UI runs on http://localhost:3000/ by default.
π§βπ» Usage
Enter a public GitHub repository URL (e.g., https://github.com/facebook/react) in the search bar.
Click Analyze.
View contributors, repository stats, and commit analytics.
π οΈ Technologies Used
Frontend
React 19
Material-UI v7+
Recharts
Axios
Backend
Flask
Requests
Flask-CORS
python-dotenv
Deployment
Docker-ready backend
π Environment Variables
Backend
GITHUB_TOKEN β stored in .env (never commit this file)
πΈ Screenshots
Add screenshots here showing the contributors sidebar and analytics UI.
π License
This project is licensed under the MIT License.
π Acknowledgements
[Material-UI](https://mui.com/)
[Recharts](https://recharts.org/en-US/)
[GitHub REST API](https://docs.github.com/en/rest)
---