4.1 KiB
4.1 KiB
Phase 1, Week 1, Day 1: Greenfield Project Kickoff Plan
Morning Session (9:00 AM - 12:00 PM)
Hour 1: Project Setup & Repository Creation (9:00-10:00 AM)
- Create new repository structure
- Initialize
card-creation-v2/directory alongside existing project - Set up git repository with initial commit
- Create directory structure matching architecture plan:
card-creation-v2/ ├── src/ │ ├── domain/ │ ├── data/ │ ├── services/ │ ├── infrastructure/ │ └── cli/ ├── tests/ ├── docs/ └── scripts/
- Initialize
Hour 2: Development Environment Setup (10:00-11:00 AM)
-
Initialize Python project with Poetry
- Create
pyproject.tomlwith project metadata and dependencies - Set up virtual environment with Python 3.11+
- Install core dependencies: polars, pydantic, typer, pytest, mypy
- Create
-
Configure development tools
- Set up pre-commit hooks (black, ruff, mypy, pytest)
- Create
.gitignorefor Python projects - Configure IDE settings (if using VS Code: create
.vscode/settings.json)
Hour 3: CI/CD Pipeline & Quality Gates (11:00-12:00 PM)
- GitHub Actions setup
- Create
.github/workflows/ci.ymlfor automated testing - Configure matrix builds for Python 3.11, 3.12
- Set up code quality checks (linting, type checking, test coverage)
- Create
Afternoon Session (1:00 PM - 5:00 PM)
Hour 4: Core Infrastructure Foundation (1:00-2:00 PM)
- Configuration management system
- Create
src/infrastructure/config/module - Implement environment-based configuration with Pydantic
- Set up logging framework with structured JSON output
- Create
Hour 5: Domain Model Foundation (2:00-3:00 PM)
- Base domain types
- Create
src/domain/models/with core data classes:Player,Team,Position,HandenumsPlayerId,TeamIdtype aliases for type safety
- Implement value objects for baseball statistics
- Create
Hour 6: Testing Framework Setup (3:00-4:00 PM)
- Test infrastructure
- Set up pytest configuration with coverage reporting
- Create test fixtures for sample data
- Implement property-based testing setup with Hypothesis
- Write first domain model tests
Hour 7: Documentation & Planning (4:00-5:00 PM)
- Project documentation
- Create README.md with setup instructions
- Document architectural decisions in
docs/architecture/ - Set up API documentation framework (Sphinx or MkDocs)
- Plan next day's tasks and blockers
Specific Files Created on Day 1
Core Project Files
pyproject.toml- Project dependencies and metadata.pre-commit-config.yaml- Code quality automation.github/workflows/ci.yml- Continuous integrationREADME.md- Project documentationsrc/infrastructure/config/settings.py- Configuration management
Domain Models (Starter Set)
src/domain/models/__init__.pysrc/domain/models/player.py- Player data classsrc/domain/models/enums.py- Position, Hand, Team enumssrc/domain/models/types.py- Type aliases and value objects
Test Foundation
tests/conftest.py- Pytest configuration and fixturestests/domain/test_player.py- First domain model teststests/infrastructure/test_config.py- Configuration tests
Success Criteria for Day 1
✅ New repository created with clean architecture ✅ Development environment fully configured ✅ CI/CD pipeline running and passing ✅ First domain models implemented with tests ✅ Code quality tools enforced ✅ Team can clone repo and run tests successfully
Dependencies & Prerequisites
- Python 3.11+ installed
- Git access to create new repository
- GitHub account for CI/CD setup
- IDE configured for Python development
Risks & Mitigations
- Risk: Tool configuration conflicts Mitigation: Use Poetry for dependency isolation
- Risk: Team environment differences
Mitigation: Containerized development option in Week 2
This Day 1 plan establishes the foundation for a high-quality, maintainable greenfield rebuild while ensuring the team can immediately start productive development.