youtube-summarizer/docs/DEVELOPER_HANDOFF.md

10 KiB

Developer Handoff Package - YouTube Summarizer

🚀 Quick Start for Developers

This document provides everything needed to begin implementing the YouTube Summarizer stories. All stories have been created following the BMad Method with comprehensive technical specifications.

📋 Implementation Priority Order

Sprint 1: Foundation (Epic 1 - Stories 1.2-1.5)

Duration: 2.5 weeks
Goal: Complete core YouTube integration, basic UI, and video download capability

Priority Story Estimated Hours Dependencies Status
1 Story 1.2: URL Validation 8-12 hours Story 1.1 DONE
2 Story 1.3: Transcript Extraction 16-20 hours Story 1.2 DONE
3 Story 1.4: Basic Web Interface 16-24 hours Story 1.3 DONE
4 Story 1.5: Video Download Service 12-16 hours Stories 1.1, 1.2 📋 READY

Sprint 2: AI Intelligence (Epic 2 - Stories 2.1-2.3)

Duration: 2 weeks
Goal: Implement AI summarization with caching

Priority Story Estimated Hours Dependencies Ready
4 Story 2.1: Single AI Model 12-16 hours Epic 1 Complete YES
5 Story 2.2: Summary Pipeline 16-20 hours Story 2.1 YES
6 Story 2.3: Caching System 12-16 hours Story 2.2 YES

Sprint 3: Advanced Features (Epic 2 - Stories 2.4-2.5)

Duration: 1.5 weeks
Goal: Multi-model support and export capabilities

Priority Story Estimated Hours Dependencies Ready
7 Story 2.4: Multi-Model Support 16-20 hours Story 2.3 YES
8 Story 2.5: Export Functionality 12-16 hours Story 2.4 YES

🛠️ Development Environment Setup

Prerequisites Checklist

  • Docker & Docker Compose installed
  • Node.js 18+ and npm/yarn
  • Python 3.11+
  • Git configured
  • VS Code or preferred IDE

Quick Setup Commands

# Clone repository (if not already done)
git clone [repository-url]
cd apps/youtube-summarizer

# Backend setup
cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your API keys

# Frontend setup
cd ../frontend
npm install
cp .env.example .env.local

# Start development environment
docker-compose up -d  # Starts Redis, PostgreSQL
cd backend && uvicorn main:app --reload  # Backend on :8000
cd frontend && npm run dev  # Frontend on :3000

Required API Keys

# .env file (backend)
OPENAI_API_KEY=sk-...           # Required for Story 2.1
ANTHROPIC_API_KEY=sk-ant-...    # Optional for Story 2.4
DEEPSEEK_API_KEY=...             # Optional for Story 2.4
REDIS_URL=redis://localhost:6379/0
DATABASE_URL=sqlite:///./youtube_summarizer.db

📚 Story Implementation Guide

Each Story Contains

  1. Story Section: User story and acceptance criteria
  2. Tasks/Subtasks: Detailed breakdown of implementation steps
  3. Dev Notes:
    • Architecture context and references
    • Complete code examples and patterns
    • File locations and structure
    • Testing requirements
    • Error handling patterns

How to Implement a Story

  1. Read the Full Story: Start with the story file in docs/stories/
  2. Review Architecture: Check references to docs/architecture.md
  3. Follow Task Order: Complete tasks sequentially as they build on each other
  4. Use Code Examples: Copy and adapt the provided code snippets
  5. Write Tests: Follow the testing patterns in each story
  6. Update Story Status: Mark tasks complete as you finish them

Story Status Tracking

Update the status in each story file as you progress:

## Status
Draft → In Progress → Review → Done

## Tasks / Subtasks
- [x] **Task 1: Completed task**
- [ ] **Task 2: Pending task**

🏗️ Architecture Quick Reference

Technology Stack

Component Technology Location
Backend API FastAPI + Python 3.11+ /backend
Frontend React 18 + TypeScript + shadcn/ui /frontend
Database SQLite → PostgreSQL /data
Cache Redis Docker container
Queue Background Tasks (FastAPI) In-process

Key Design Patterns

Service Layer Pattern

# backend/services/video_service.py
class VideoService:
    def __init__(self, dependencies...):
        # Initialize with dependency injection
    
    async def extract_video_id(self, url: str) -> str:
        # Business logic here

Repository Pattern

# backend/repositories/summary_repository.py
class SummaryRepository:
    async def save(self, summary: Summary) -> str:
        # Database operations

API Endpoint Pattern

# backend/api/endpoints.py
@router.post("/process")
async def process_video(
    request: ProcessRequest,
    service: VideoService = Depends()
):
    # Endpoint logic

🧪 Testing Requirements

Test Coverage Targets

  • Backend: > 80% coverage
  • Frontend: > 70% coverage
  • Integration tests for all API endpoints

Running Tests

# Backend tests
cd backend
pytest tests/ -v --cov=src --cov-report=html

# Frontend tests
cd frontend
npm test
npm run test:coverage

# Integration tests
docker-compose -f docker-compose.test.yml up
pytest tests/integration/ -v

Test File Locations

  • Backend unit tests: backend/tests/unit/
  • Backend integration tests: backend/tests/integration/
  • Frontend component tests: frontend/src/components/**/*.test.tsx
  • Frontend integration tests: frontend/src/__tests__/

📝 Development Checklist

Before Starting a Story

  • Read the complete story file
  • Review architecture documentation
  • Ensure all dependencies are installed
  • Previous story in epic is complete
  • Create feature branch: feature/story-X.Y-brief-description

During Implementation

  • Follow the task list in order
  • Write tests as you code
  • Use provided code examples as templates
  • Handle errors as specified
  • Update documentation if needed

Before Marking Complete

  • All acceptance criteria met
  • All tests passing
  • Code review completed
  • Documentation updated
  • Story status updated to "Done"

🚦 Sprint Planning Recommendations

Sprint 1 Goals (Weeks 1-2)

  • Complete Epic 1 (Stories 1.2-1.4)
  • Achieve end-to-end YouTube URL → Transcript flow
  • Basic UI operational
  • Demo: Show transcript extraction from any YouTube video

Sprint 2 Goals (Weeks 3-4)

  • Implement AI summarization (Stories 2.1-2.3)
  • Complete caching system
  • End-to-end pipeline working
  • Demo: Generate AI summaries with caching

Sprint 3 Goals (Weeks 5-6)

  • Add multi-model support (Story 2.4)
  • Implement export functionality (Story 2.5)
  • Performance optimization
  • Demo: Complete YouTube Summarizer with all features

📊 Progress Tracking

Story Completion Tracking

Create a simple tracking board or use this template:

## Sprint 1 Progress
- [x] Story 1.1: Project Setup ✅ (Completed)
- [ ] Story 1.2: URL Validation (In Progress - 60%)
  - [x] Task 1: Backend validation
  - [x] Task 2: Frontend validation
  - [ ] Task 3: API endpoint
  - [ ] Task 4-6: Remaining tasks
- [ ] Story 1.3: Transcript Extraction (Not Started)
- [ ] Story 1.4: Basic Web Interface (Not Started)

Daily Standup Template

**Yesterday**: Completed Story 1.2 Tasks 1-2 (URL validation logic)
**Today**: Working on Story 1.2 Task 3 (API endpoint)
**Blockers**: Need clarification on error message format

Documentation

Story Files

BMad Method Resources

  • Story template: .bmad-core/templates/story-tmpl.yaml
  • Development workflow: .bmad-core/enhanced-ide-development-workflow.md

🤝 Communication Protocols

Questions About Stories

  1. Check the Dev Notes section in the story
  2. Review the architecture document references
  3. Look for similar patterns in completed stories
  4. Ask in team channel with story reference (e.g., "Question about Story 1.2, Task 3")

Reporting Issues

When reporting issues, include:

  • Story ID and Task number
  • Expected behavior from acceptance criteria
  • Actual behavior observed
  • Error messages and logs
  • Steps to reproduce

Code Review Process

  1. Create PR with story reference in title: feat(story-1.2): Implement URL validation
  2. Link to story file in PR description
  3. Include acceptance criteria checklist
  4. Request review from team lead

🎯 Definition of Done

A story is considered DONE when:

  1. All acceptance criteria are met
  2. All tasks and subtasks are completed
  3. Unit tests written and passing (>80% coverage)
  4. Integration tests passing
  5. Code reviewed and approved
  6. Documentation updated if needed
  7. No critical bugs or security issues
  8. Story status updated to "Done"
  9. Demo-able to stakeholders

🚀 Ready to Start!

Your first action items:

  1. Set up development environment using the quick setup commands above
  2. Start with Story 1.2 - URL Validation and Parsing
  3. Create feature branch: git checkout -b feature/story-1.2-url-validation
  4. Open story file: docs/stories/1.2.youtube-url-validation-parsing.md
  5. Begin with Task 1: Backend URL Validation Service

Remember: Each story has comprehensive Dev Notes with code examples. Use them as your implementation guide!


This handoff document prepared by Bob (Scrum Master) following BMad Method best practices.
Last updated: 2025-01-25