📍 You are here: Documentation Index → Setup Guide → Git Workflow → Development Guide
➡️ Reference: Project Structure | Technical Context
Docker-based MVP development setup with comprehensive CI/CD pipeline.
- Docker & Docker Compose
- Make (optional, for convenience)
No local installations required - everything runs in containers!
# Start development environment
make dev-up
# Run all tests
make test
# Format code
make format
# Stop development environment
make dev-down- Frontend: http://localhost:3000 (Next.js/React)
- Backend: http://localhost:5000 (Flask API)
- AI Service: http://localhost:8000 (FastAPI)
- MongoDB: localhost:27017
All tests run inside containers:
# All tests (requires containers to be running)
make test
# Or individual services
docker-compose exec backend pytest
docker-compose exec ai-service pytest
docker-compose exec frontend npm testAll formatting runs inside containers:
# Format all code (requires containers to be running)
make format
# Or individual services
docker-compose exec backend black .
docker-compose exec ai-service black .
docker-compose exec frontend npm run formatComprehensive GitHub Actions workflow that:
- Format checks: Black for Python, Prettier for frontend
- Linting: Ruff for Python, ESLint for frontend
- Type checking: TypeScript for frontend
- Testing: pytest for Python services, Jest for frontend
- Docker validation: Validates docker-compose configuration
- Parallel execution: All jobs run concurrently for speed
We use a GitFlow-adapted strategy with main and develop branches:
- Start containers:
make dev-up - Create feature branch:
git checkout -b feature/SPRNT2-XX-description - Make changes with conventional commits
- Daily rebase:
git rebase developto avoid conflicts - Run tests:
make test - Format code:
make format - Create PR to develop branch with Jira ticket reference
- Code review and squash merge
type(SPRNT2-XX): description
Optional body explaining what and why
Closes SPRNT2-XX
Types: feat, fix, docs, style, refactor, test, chore
- main: 2 reviewers required, admin-only
- develop: 1 reviewer required, squash merge only
Fully containerized development with zero local dependencies!