A powerful web application for tracking and managing software development commits across different branches with advanced dependency and transition features.
- Branch Flow Visualization: Interactive diagram showing branch relationships and dependencies
- Commit Counter: Visual indicators showing number of commits per branch
- Tooltips: Hover over branches to see detailed commit information
- Branch Dependencies: Define and validate branch relationships
- Independent Branches: Support for branches outside the main flow
- Branch Ordering: Customizable branch order for deployment flows
- VSTFS Integration: Track Visual Studio Team Foundation Server commits
- JIRA Integration: Link commits to JIRA tickets
- Markdown Support: Rich text formatting for commit descriptions
- File Attachments: Support for multiple file attachments per commit
- Smart File Handling:
- Automatic file attachment for images
- Intelligent paste handling based on context
- Support for drag & drop
- Branch Transitions: Move commits between branches
- Transition History: Track all commit movements
- Dependency Validation: Prevent invalid transitions
- Recent Activity: View recent commit transitions
- Dark Theme: Modern dark theme design
- Responsive Layout: Works on desktop and mobile
- Interactive Diagrams: Using Mermaid.js for flow visualization
- Bootstrap 5: Modern and responsive design
- FontAwesome Icons: Clear visual indicators
- Backend: Python/Flask
- Database: SQLAlchemy ORM
- Frontend:
- Bootstrap 5
- JavaScript
- Mermaid.js
- Features:
- Markdown rendering
- File upload/download
- Dynamic tooltips
- Interactive diagrams
- Clone the repository:
git clone https://github.com/yourusername/commit-tracker.git
cd commit-tracker
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- Install dependencies:
pip install -r requirements.txt
- Initialize the database:
flask db init
flask db migrate
flask db upgrade
- Run the application:
flask run
- Create branches with appropriate order and dependencies
- Define independent branches for hotfixes or parallel development
- Customize branch colors for visual distinction
- Create commits with VSTFS numbers and optional JIRA tickets
- Add detailed descriptions using Markdown
- Attach relevant files (images, documents, etc.)
- Move commits between branches following defined flows
- View branch flow diagram
- Track commit transitions
- Monitor branch dependencies
- View commit details and attachments
- Attachment ownership validation
- Branch transition validation
- Input sanitization
- Error handling and logging
The application can be run using Docker Compose, which sets up the Flask application with SQLite database support.
- Docker
- Docker Compose
- Build and start the container:
docker-compose up --build
- Initialize the database (first time only):
docker-compose exec web flask db upgrade
- Access the application at http://localhost:5000
When developing with Docker, you can use the following commands to interact with the application:
- Running Flask Commands:
# Create database migrations
docker-compose exec web flask db migrate -m "migration message"
# Apply migrations
docker-compose exec web flask db upgrade
# Access Flask shell
docker-compose exec web flask shell
- Running Python Scripts:
# Import data
docker-compose exec web python import_data.py
# Export data
docker-compose exec web python export_data.py
- Development Workflow:
- Code changes are automatically reflected in the container thanks to volume mounting
- After making changes to Python files, restart the container:
docker-compose restart web
- For database schema changes:
- Modify models in
app/models.py
- Create migration:
docker-compose exec web flask db migrate -m "change description"
- Apply migration:
docker-compose exec web flask db upgrade
- Modify models in
To stop the application:
docker-compose down
Note: The SQLite database file is stored in the instance
directory, which is persisted through Docker volumes.
Contributions are welcome! Please feel free to submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Flask team for the excellent web framework
- Mermaid.js for flow visualization
- Bootstrap team for the UI framework