A tool that animates the evolution of a codebase over time by parsing the Git history and showing how files, directories, and contributors change.
- Repository Analysis: Parse Git commit history and extract detailed commit data
- Timeline Animation: Interactive visualization of repo growth over time
- Visualization Modes: File tree, graph, and heatmap views
- Contributor Tracking: Show contributor activity and stats
- Metrics Dashboard: Commit activity, LOC growth, language breakdown
- Export Options: MP4/GIF animations and interactive HTML
# Clone the repository
git clone <repository-url>
cd codebase-timeline-visualizer
# Start all services
docker-compose up -d
# Access the web interface at http://localhost:3000
# Windows (recommended)
.\setup.bat
# Or manually check setup
python check_setup.py
# Create virtual environment
python -m venv .venv
# Activate virtual environment
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
# Install Python dependencies
pip install -r requirements.txt
# Install frontend dependencies (optional)
cd frontend
npm install
cd ..
# Run setup check again
python check_setup.py
# Try the example
python example.py
If you encounter issues during setup:
- π See Setup Troubleshooting Guide
- π§ Run the setup helper:
.\setup.bat
(Windows) - π¬ Check the GitHub Issues
# Analyze a repository
python -m cli.src.main analyze /path/to/repo
# Start web interface
python -m cli.src.main serve
# Export timeline (coming soon)
python -m cli.src.main export timeline.json --format html
The web interface provides interactive timeline visualization with:
- Play/pause controls
- Scrubbing timeline
- Multiple visualization modes
- Contributor tracking
- Metrics dashboard
This project includes comprehensive CI/CD workflows:
- Multi-platform testing: Ubuntu, Windows, macOS
- Multi-Python testing: Python 3.8, 3.9, 3.10, 3.11
- Code quality checks: flake8, black, mypy
- Test coverage: pytest with coverage reporting
- Integration testing: End-to-end CLI testing
- GitHub Pages deployment: Automatic frontend deployment
- Build optimization: Production-ready builds
- CDN integration: Fast global content delivery
- Automated releases: Tag-based releases
- PyPI publishing: Automatic package distribution
- Cross-platform builds: Wheels for all platforms
- Demo generation: Live demo with sample data
- CodeQL analysis: Automated security scanning
- Dependency vulnerability scanning: Safety and audit-ci
- Code quality gates: Complexity, maintainability, security checks
- SonarCloud integration: Advanced code analysis
- Performance testing: Automated performance benchmarks
- Compatibility testing: Multiple OS and Python versions
- Load testing: Repository size and complexity testing
- Automated docs deployment: GitHub Pages documentation
- API documentation: Auto-generated from code
- Usage examples: Interactive documentation
- Multi-stage builds: Optimized Docker images
- Registry integration: GitHub Container Registry
- Demo deployment: Containerized demo environment
- Issue triage: Automatic labeling and categorization
- Stale management: Automatic cleanup of old issues/PRs
- Release notes: Auto-generated from commit messages
- Changelog updates: Automatic CHANGELOG.md maintenance
- Automated updates: Weekly dependency updates
- Security patches: Priority security updates
- Multi-ecosystem: Python, Node.js, GitHub Actions
- Python 3.8+
- Node.js 18+
- Docker (optional)
- Git
# Clone the repository
git clone <repository-url>
cd codebase-timeline-visualizer
# Set up Python virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e .[dev]
cd frontend && npm install && cd ..
# Run tests
pytest
# Start development servers
# Terminal 1: Backend
python -m cli.src.main serve
# Terminal 2: Frontend
cd frontend && npm start
# Format code
black backend/src cli/src
isort backend/src cli/src
# Lint code
flake8 backend/src cli/src
mypy backend/src cli/src
# Run tests with coverage
pytest --cov=backend/src --cov-report=html
# Build all services
docker-compose build
# Start development environment
docker-compose up
# Run tests in containers
docker-compose -f docker-compose.test.yml up --abort-on-container-exit
codebase-timeline-visualizer/
βββ backend/ # Python backend
β βββ src/ # Source code
β β βββ analyzer.py # Git analysis logic
β β βββ exporter.py # Data export utilities
β β βββ main.py # Main analysis function
β βββ tests/ # Unit tests
βββ frontend/ # React web application
β βββ src/
β β βββ components/ # React components
β β βββ App.js # Main app component
β β βββ index.js # App entry point
β βββ public/ # Static assets
βββ cli/ # Command-line interface
βββ docs/ # Documentation
βββ .github/ # GitHub workflows and configs
β βββ workflows/ # CI/CD pipelines
β βββ dependabot.yml # Dependency updates
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Python project config
βββ setup.py # Package setup
βββ Dockerfile # Container definition
βββ docker-compose.yml # Multi-service setup
βββ README.md # This file
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- All PRs require CI checks to pass
- Code must be formatted with Black
- Tests must have >80% coverage
- Security scans must pass
- Documentation must be updated
MIT License - see the LICENSE file for details.
- π Documentation
- π Issues
- π¬ Discussions
β Star this repo if you find it useful!