A professional web application to analyze developer contributions and AI-generated code detection across multiple Git repositories. Track lines of code written, commits, developer productivity, and AI assistance with beautiful visualizations.
- 📊 Multi-repository analysis - Analyze multiple Git repositories at once
- 👥 Developer statistics - Track individual developer contributions
- 📈 Visual charts - Beautiful charts showing contribution patterns
- 📅 Date range filtering - Analyze specific time periods
- 🎯 Combined statistics - Aggregate data across all repositories
- 📱 Responsive design - Works on desktop and mobile devices
The application provides:
- Summary cards with key metrics
- Individual repository analysis with charts
- Combined developer statistics across all repositories
- Interactive tables and visualizations
- Python 3.7+
- Git installed and accessible from command line
- Web browser
-
Clone or download the project:
cd RepoPulse -
Install Python dependencies:
pip install -r requirements.txt
-
Start the backend server:
# Option 1: Use the startup script python3 start_repopulse.py # Option 2: Direct server start python3 server.py
The server will start on
http://localhost:5001 -
Open the web application:
- Open
index.htmlin your web browser - Or serve it using a local web server
- Open
RepoPulse uses a dynamic configuration system that can be managed through:
-
Interactive Configuration Manager:
python3 manage_config.py
-
API Endpoints:
GET /api/config- View current configurationPOST /api/config- Update configurationPOST /api/config/name-mappings- Add name mappingsPOST /api/config/ai-keywords- Add AI keywordsPOST /api/config/reload- Reload configuration
-
Configuration File:
repopulse_config.json- JSON configuration file- Automatically created on first run
- Can be edited manually or through the API
RepoPulse can generate professional HTML reports:
HTML Reports:
- Interactive web-based reports
- Beautiful styling with charts and tables
- Can be opened in any web browser
- Perfect for sharing and viewing online
- Download button located in the top-right corner of the interface
Download Options:
- Use the download button in the web interface
- API endpoint:
/api/download/html - Reports include timestamps and comprehensive analysis data
-
Enter repository paths (one per line):
/path/to/repo1 /path/to/repo2 /path/to/repo3 -
Select date range for analysis
-
Click "Analyze Repositories" to start the analysis
-
View results in the dashboard
For your current project:
/Users/gauravvarshney/Downloads/Downloads/Projects/Car2.0/pbp.car.backend
/Users/gauravvarshney/Downloads/Downloads/Projects/Car2.0/pbp.car.frontend
Analyze multiple Git repositories.
Request Body:
{
"repoPaths": ["/path/to/repo1", "/path/to/repo2"],
"startDate": "2025-01-01",
"endDate": "2025-12-31"
}Response:
{
"success": true,
"results": [
{
"name": "repo-name",
"path": "/path/to/repo",
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"totalCommits": 150,
"totalLinesAdded": 5000,
"totalLinesRemoved": 1000,
"developerStats": [
{
"name": "Developer Name",
"commits": 25,
"linesAdded": 1000,
"linesRemoved": 200
}
]
}
]
}Health check endpoint.
Generate and download HTML report.
- Repositories: Total number of analyzed repositories
- Total Commits: Combined commits across all repositories
- Lines Added: Total lines of code added
- Lines Removed: Total lines of code removed
- Individual repository statistics
- Developer contribution breakdown
- Interactive bar charts
- Detailed tables with commit counts
- Aggregated developer data across all repositories
- Contribution percentages
- Net change calculations
- Sorted by productivity
- server.py: Main Flask application with dynamic configuration
- config.py: Dynamic configuration management system
- Git integration: Uses
git logcommands for analysis - CORS enabled: Allows cross-origin requests
- Error handling: Graceful handling of invalid repositories
- Bootstrap 5: Modern, responsive UI
- Chart.js: Interactive charts and visualizations
- Vanilla JavaScript: No framework dependencies
- Async/await: Modern JavaScript patterns
- Dynamic Configuration: JSON-based configuration with runtime updates
- Name Mappings: Configurable developer name normalization
- AI Keywords: Customizable AI detection keywords and confidence levels
- File Types: Extensible code file extensions and exclude patterns
- API Management: RESTful endpoints for configuration management
git log --since="date" --until="date" --format="%an" --numstat- Parses author names and line statistics
- Handles binary files and special cases
-
"Repository path does not exist"
- Verify the repository path is correct
- Ensure the path is absolute or relative to the server
-
"Not a Git repository"
- Make sure the directory contains a
.gitfolder - Check if Git is properly initialized
- Make sure the directory contains a
-
"Git command failed"
- Ensure Git is installed and accessible
- Check repository permissions
-
"Error connecting to analysis server"
- Make sure the Python server is running
- Check if port 5000 is available
- Verify CORS settings
Run the server in debug mode for detailed error messages:
python server.py- Modify
analyze_repository_git()inserver.py - Add new fields to the response JSON
- Update the frontend to display new metrics
- Modify CSS in
index.html - Update Bootstrap classes for different themes
- Customize Chart.js options for different chart styles
The application uses ISO date format (YYYY-MM-DD). Modify the date parsing in server.py if needed.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
For issues and questions:
- Check the troubleshooting section
- Review the API documentation
- Open an issue on the repository
Happy analyzing with RepoPulse! 🚀