109 lines
4.1 KiB
Markdown
109 lines
4.1 KiB
Markdown
# 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)
|
|
1. **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/
|
|
```
|
|
|
|
### Hour 2: Development Environment Setup (10:00-11:00 AM)
|
|
2. **Initialize Python project with Poetry**
|
|
- Create `pyproject.toml` with project metadata and dependencies
|
|
- Set up virtual environment with Python 3.11+
|
|
- Install core dependencies: polars, pydantic, typer, pytest, mypy
|
|
|
|
3. **Configure development tools**
|
|
- Set up pre-commit hooks (black, ruff, mypy, pytest)
|
|
- Create `.gitignore` for 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)
|
|
4. **GitHub Actions setup**
|
|
- Create `.github/workflows/ci.yml` for automated testing
|
|
- Configure matrix builds for Python 3.11, 3.12
|
|
- Set up code quality checks (linting, type checking, test coverage)
|
|
|
|
## Afternoon Session (1:00 PM - 5:00 PM)
|
|
|
|
### Hour 4: Core Infrastructure Foundation (1:00-2:00 PM)
|
|
5. **Configuration management system**
|
|
- Create `src/infrastructure/config/` module
|
|
- Implement environment-based configuration with Pydantic
|
|
- Set up logging framework with structured JSON output
|
|
|
|
### Hour 5: Domain Model Foundation (2:00-3:00 PM)
|
|
6. **Base domain types**
|
|
- Create `src/domain/models/` with core data classes:
|
|
- `Player`, `Team`, `Position`, `Hand` enums
|
|
- `PlayerId`, `TeamId` type aliases for type safety
|
|
- Implement value objects for baseball statistics
|
|
|
|
### Hour 6: Testing Framework Setup (3:00-4:00 PM)
|
|
7. **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)
|
|
8. **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 integration
|
|
- `README.md` - Project documentation
|
|
- `src/infrastructure/config/settings.py` - Configuration management
|
|
|
|
### Domain Models (Starter Set)
|
|
- `src/domain/models/__init__.py`
|
|
- `src/domain/models/player.py` - Player data class
|
|
- `src/domain/models/enums.py` - Position, Hand, Team enums
|
|
- `src/domain/models/types.py` - Type aliases and value objects
|
|
|
|
### Test Foundation
|
|
- `tests/conftest.py` - Pytest configuration and fixtures
|
|
- `tests/domain/test_player.py` - First domain model tests
|
|
- `tests/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. |