Skip to main content

Epic 1 - Task Overview & Dependencies

Summary

Epic 1 delivers a manual text-to-speech request system with admin-driven processing. Users submit text requests, admins manually obtain audio files externally and upload them, and the system manages the workflow with email notifications.

Timeline: 6 weeks Team Structure: Backend (API), Frontend Frontoffice (Client Pages), Frontend Backoffice (Admin Pages)


Task Breakdown by Component

Backend API Tasks

IDTaskDescriptionDependenciesEst. Time
B1Database SetupCreate database schema for users, requests, voices, sessionsNone
B2Authentication APIJWT-based auth endpoints - See AuthenticationB1
B3User Profile APIGET /api/v1/me endpoint - See User Profile APIB2
B4Voice Gallery CRUD + S3Voice gallery API with S3 audio storage: GET /api/v1/voice-gallery (public), admin CRUD endpoints, S3 bucket setup, voice sample audio upload - See Voice Gallery APIB1
B5Request Submission + List APIPOST /api/v1/text-to-speech (create submission), GET /api/v1/text-to-speech (list with pagination, role-based filtering: clients see own, admins see all) - See TTS Submission APIB2, B4
B6Request Details APIGET /api/v1/text-to-speech/{id} (public endpoint, serves both frontend playback and backoffice) - See TTS Submission APIB5
B7Admin Request Update + Audio Upload APIPUT /api/v1/text-to-speech/{id} (update status, audioUrl, auto-generate slug on completion), POST /api/v1/text-to-speech/upload-url (pre-signed URL for S3). S3 Structure: Use same S3 bucket as voice gallery but organize in different folders (e.g., /voice-samples for gallery, /submissions for requests) - See TTS Submission APIB2, B4, B5
B8Email Notification System + TriggersEmail service integration (SMTP/SendGrid/AWS SES) with 3 automated emails: (1) Request Confirmation when submitted, (2) Processing notification when status changes to processing, (3) Completion email when audio is ready - See Email Notifications and TemplatesB1, B5, B7
B9Error Handling & ValidationGlobal error handling, input validation middlewareB1
B10API DocumentationSwagger/OpenAPI documentation for all endpointsAll Backend
Deferred to MVP 2
  • Admin Dashboard Stats API (GET /api/v1/admin/stats) - Moved to MVP 2, Epic 2 for advanced analytics and reporting features
  • API Testing (Unit tests and integration tests for all endpoints) - Moved to MVP 2, Epic 1 for comprehensive testing coverage
Endpoint Consolidation

Public Playback API (GET /api/v1/play/{slug}) has been consolidated with Request Details API (GET /api/v1/text-to-speech/{id}). The GET by ID endpoint now serves both frontend and backoffice without authentication, eliminating the need for a separate slug-based endpoint.


Frontend Frontoffice Tasks (Client-Facing)

IDTaskDescriptionDependenciesEst. Time
F1Landing Page LayoutPublic landing page - See Pages: Landing/LoginNone
F2Client Login + Auth State ManagementLogin form component, global auth state, protected routes - See Pages: Landing/Login and AuthenticationB2, B3
F3Voice Gallery Component (Public)Public voice gallery display - See Voice Gallery APIB4
F4Request Submission FormText input form with voice selection - See Pages: Request FormB5, F3
F5Request List Page"My Requests" page - See Pages: My RequestsB5
F6Request Details PageIndividual request view - See Pages: Request DetailsB6
F7Public Playback PagePublic audio playback via ID - See Pages: PlaybackB6
F8Client Navigation, Layout & Responsive DesignHeader, footer, navigation menu for authenticated clients with mobile-first responsive design for all pagesF2
F9Loading & Error StatesLoading spinners, error messages, toast notificationsAll Frontoffice
F10Frontoffice TestingComponent tests, E2E tests for client workflowsAll Frontoffice

Frontend Backoffice Tasks (Admin-Facing)

IDTaskDescriptionDependenciesEst. Time
A1Admin Login PageSeparate admin login - See Pages: Admin LoginB2
A2Backoffice Layout & NavigationAdmin sidebar, header, navigation - See Pages: NavigationA1
A3Admin Dashboard (Basic)Basic dashboard landing page with navigation (stats deferred to Epic 2) - See Pages: DashboardA2
A4Admin Request List PageAll client requests with filtering - See Pages: Admin Request DetailsB5, A2
A5Admin Request Details PageRequest details view - See Pages: Admin Request DetailsB6, A2
A6Status Update + Audio Upload ComponentStatus dropdown, audio file upload interface - See Pages: Admin Request DetailsB7, A5
A7Admin Auth & PermissionsRole-based access control - See AuthenticationB2, A1
A8Admin Notification SystemToast notifications for admin actionsA2
A9Backoffice TestingComponent tests, E2E tests for admin workflowsAll Backoffice
Deferred to Epic 2

Admin Dashboard Stats (with analytics cards) will be added in Epic 2. Epic 1 includes a basic dashboard landing page.


DevOps Tasks

IDTaskDescriptionDependenciesEst. Time
D1Deploy DatabaseProvision database instance on AWS RDS, configure security groups, connection strings, and backupsNone
D2Deploy S3Create S3 bucket for audio storage, configure CORS, IAM roles, access policies, and lifecycle rulesNone
D3Deploy BackendSet up CI/CD pipeline, deploy backend API to dev/staging/production environments with Docker containersD1, D2
D4Deploy Frontend ClientDeploy frontoffice (client-facing) to dev/staging/production with static hosting or CDND3
D5Deploy Frontend BackofficeDeploy backoffice (admin-facing) to dev/staging/production with static hosting or CDND3

Dependency Graph

Backend Dependencies:

  • B1 (Database) is the foundation → blocks B2, B4, B8, B9
  • B2 (Auth) → blocks B3, B5, B7, and authenticated frontend tasks
  • B4 (Voice Gallery + S3) → blocks B5, B7 (provides S3 setup)
  • B5 (Request Submission + List) → blocks B6, B7, B8
  • B6 (Request Details API) → public endpoint, no auth dependency (only depends on B5 for data)
  • B7 (Request Update + Upload) → blocks B8 (generates slug, triggers emails)

Frontend Dependencies:

  • Backend APIs must be ready before corresponding frontend work
  • F2 (Client Login + Auth) → blocks F8
  • A1 (Admin Login) → blocks A2
  • A2 (Backoffice Layout) → blocks A3, A4, A5
  • A5 (Admin Request Details) → blocks A6

DevOps Dependencies:

  • D1 (Database) → blocks B1 (database schema setup)
  • D2 (S3) → blocks B4 (voice gallery S3 integration)
  • D3 (Backend Deploy) → blocks F2, F4, F5, F6, F7, A1, A4, A5, A6 (all API-dependent frontend work)
  • D4 (Frontend Client Deploy) → deployment of F1-F10
  • D5 (Frontend Backoffice Deploy) → deployment of A1-A9

Cross-Component Dependencies:

  • Backend B2 → Frontend F2, A1 (authentication)
  • Backend B4 → Frontend F3 (voice gallery)
  • Backend B5 → Frontend F4 (request form), F5 (request list), A4 (admin request list)
  • Backend B6 → Frontend F6 (request details), F7 (public playback), A5 (admin request details)
  • Backend B7 → Frontend A6 (status update + audio upload)
  • DevOps D1, D2 → Backend B1, B4 (infrastructure requirements)
  • DevOps D3 → All Frontend tasks (API availability)

Critical Path

The critical path determines the minimum timeline for Epic 1:

Phase 1: Foundation & Infrastructure

  • D1 (Deploy Database) → D2 (Deploy S3) → B1 (Database Schema) → B2 (Auth) → B4 (Voice Gallery + S3)

Phase 2: Core Request APIs

  • B5 (Request Submission + List) → B6 (Request Details)

Phase 3: Admin APIs + Email System + Backend Deploy

  • B7 (Request Update + Audio Upload with auto slug generation) → B8 (Email System + Triggers) → D3 (Deploy Backend)

Phase 4: Frontoffice Development + Deploy

  • F2 (Login) → F3 (Voice Gallery) → F4 (Submission Form) → F5/F6 (Request Pages) → D4 (Deploy Frontend Client)

Phase 5: Backoffice Development + Deploy

  • A1 (Admin Login) → A2 (Layout) → A3 (Dashboard) → A4/A5 (Request Pages) → A6 (Actions) → D5 (Deploy Frontend Backoffice)

Phase 6: Finalization

  • B9 (Error Handling) + B10 (API Documentation) + F10 (Frontoffice Testing) + A9 (Backoffice Testing)

Parallel Work Opportunities

Tasks that can be worked on simultaneously by separate team members:

Foundation Phase

  • DevOps: D1 (Deploy Database) and D2 (Deploy S3) can run in parallel
  • Backend: B1 (Database Schema) starts after D1 completes
  • Backend: B4 (Voice Gallery + S3) starts after B1 and D2
  • Frontend: F1 (Landing page mockup) can start independently

Core APIs Phase

  • Backend: B5, B6 can progress after B4
  • Frontend: F3 (Voice Gallery) can start once B4 is ready

Admin + Client Development Phase

  • Backend: B7 (Admin Update + Upload API)
  • Backend: B8 (Email System + Triggers) can be developed in parallel with B7
  • Frontend Frontoffice: F2, F4, F5, F6 can progress in parallel with backend work
  • Frontend Backoffice: Can start once B2 is complete

Finalization Phase

  • Frontoffice and Backoffice testing can run in parallel
  • Backend: B9, B10 (Error Handling + Documentation)

Team Assignment Recommendations

Team Structure (3 team members total)

DevOps Engineer

  • Deploy Database (D1)
  • Deploy S3 (D2)
  • Deploy Backend (D3)
  • Deploy Frontend Client (D4)
  • Deploy Frontend Backoffice (D5)
  • CI/CD pipeline setup and monitoring

Backend Developer

  • Database setup (B1)
  • Authentication API (B2)
  • User Profile API (B3)
  • Voice Gallery CRUD + S3 (B4)
  • Request Submission + List API (B5)
  • Request Details API (B6)
  • Admin Request Update + Audio Upload API (B7)
  • Email Notification System + Triggers (B8)
  • Error Handling & Validation (B9)
  • API Documentation (B10)

Frontend Developer

  • Frontoffice (F1-F10): Landing page, login + auth state management, voice gallery, request submission, request list/details, playback, navigation + responsive design
  • Backoffice (A1-A9): Admin login, navigation, basic dashboard, request management, audio upload, testing

Development Order

  1. DevOps starts with D1 and D2 (Database + S3 infrastructure)
  2. Backend developer starts with B1-B4 (Foundation + Voice Gallery) after D1, D2
  3. Frontend developer can start with F1 (Landing page) in parallel
  4. DevOps deploys backend (D3) after B1-B8 are complete
  5. Backend continues with B5-B8 (Request APIs + Email)
  6. Frontend progresses with F2-F10 (Frontoffice) and A1-A9 (Backoffice)
  7. DevOps deploys frontend apps (D4, D5) after frontend work is complete
  8. All complete with B9-B10, F10, A9 (Finalization)

Success Criteria Checklist

Backend API Completion

  • All 10 backend tasks completed (B1-B10)
  • API documentation published (Swagger/OpenAPI)
  • Error handling implemented globally
  • Email notifications working for all status changes
  • S3 integration working for voice samples and audio uploads
  • Role-based access control working for authenticated endpoints
  • Public endpoints (GET by ID) working without authentication
  • Slug auto-generation working when status changes to completed
Testing Deferred

Comprehensive API testing (unit tests and integration tests) has been moved to MVP 2, Epic 1 to focus on core functionality delivery in MVP 1.

Frontend Frontoffice Completion

  • All 10 frontoffice tasks completed (F1-F10)
  • Landing page publicly accessible
  • Voice gallery publicly accessible (no auth)
  • Client login functional with auth state management
  • Protected routes working correctly
  • Request submission working end-to-end
  • Request list with pagination working
  • Public playback page accessible via ID (no auth required)
  • Responsive design for mobile devices across all pages

Frontend Backoffice Completion

  • All 9 backoffice tasks completed (A1-A9)
  • Admin login functional (separate from client)
  • Basic admin dashboard with navigation (stats in Epic 2)
  • Admin can view all client requests
  • Admin can update request status and upload audio files
  • Status updates trigger email notifications

DevOps Completion

  • All 5 DevOps tasks completed (D1-D5)
  • Database instance provisioned and accessible
  • S3 bucket configured with proper access policies
  • Backend deployed to dev/staging/production environments
  • Frontend client deployed and accessible
  • Frontend backoffice deployed and accessible
  • CI/CD pipeline operational for all environments

Blocking Dependencies

Tasks that are blockers for other work:

Blocker TaskBlocksImpact
D1: Deploy DatabaseB1 (Database Schema), all backend workCRITICAL - Infrastructure foundation
D2: Deploy S3B4 (Voice Gallery), audio storage featuresCRITICAL - Storage infrastructure
D3: Deploy BackendF2-F10, A1-A9 (all frontend API integrations)HIGH - Backend must be deployed for testing
B1: Database SetupAlmost all backend tasksHIGH - Must complete first
B2: Authentication APIAll authenticated endpointsHIGH - Blocks both frontend teams
B4: Voice Gallery + S3Request submission, audio upload, playbackHIGH - Provides S3 setup
B5: Request Submission + List APIRequest details, admin workflows, frontend pagesHIGH - Core feature
B7: Admin Update + Upload APIEmail triggers, slug generationHIGH - Generates slug + triggers emails
F2: Client Login + AuthAll authenticated client pagesMEDIUM - Frontoffice blocker
A1: Admin LoginAll backoffice pagesMEDIUM - Backoffice blocker

Risk Mitigation

RiskImpactMitigationOwner
Database provisioning delaysCRITICALStart D1 immediately, provision early in projectDevOps
S3 bucket configuration issuesCRITICALStart D2 early, test CORS and permissions thoroughlyDevOps
CI/CD pipeline failuresHIGHSet up monitoring, test deployments in dev firstDevOps
Environment configuration driftMEDIUMUse infrastructure as code (IaC), document configsDevOps
S3 configuration delaysHIGHStart B4 early, test upload/download in devBackend Dev
Email delivery issuesMEDIUMTest email system early with multiple providersBackend Dev
Auth token management bugsHIGHImplement comprehensive auth tests earlyBackend Dev
Audio file size limitsMEDIUMDefine max file size limits early (e.g., 10MB)Backend Dev
Mobile responsive issuesMEDIUMTest on real devices throughout developmentFrontend Dev
Admin/Client role confusionMEDIUMClearly separate login flows and UI patternsFrontend Dev

Testing Strategy

Backend Testing Deferred

Comprehensive backend testing (unit tests and integration tests) has been moved to MVP 2, Epic 1. Focus in MVP 1 is on manual testing and core functionality delivery.

Frontoffice Testing (F10)

  • Component unit tests (React Testing Library)
  • E2E tests for user workflows:
    • Browse voice gallery (no auth)
    • Login + Auth state → Submit request → View requests → Play audio
  • Responsive design tests
  • Form validation tests
  • Protected route tests
  • Navigation and layout tests

Backoffice Testing (A9)

  • Component unit tests
  • E2E tests for admin workflows:
    • Login → View requests → Update status → Upload audio
  • Role-based access tests
  • File upload validation tests

Definition of Done (DoD)

A task is considered complete when:

  1. Code Complete:

    • Feature implemented according to specifications
    • Code reviewed and approved by peer
    • No critical bugs or security issues
  2. Tested:

    • Unit tests written and passing (>80% coverage)
    • Integration tests passing
    • Manual testing completed
  3. Documented:

    • API endpoints documented (if backend)
    • Component props documented (if frontend)
    • README updated if needed
  4. Deployed:

    • Merged to main branch
    • Deployed to staging environment
    • Verified in staging

Next Steps

  1. Week 0 (Preparation):

    • Set up project repositories (backend, frontoffice, backoffice)
    • Define API contracts and data models
    • Create design system and component library
    • Plan infrastructure requirements
  2. Week 1 (Kickoff):

    • DevOps: Start D1 (Deploy Database), D2 (Deploy S3) - CRITICAL to start early
    • Backend: Start B1 (Database Schema) after D1 completes
    • Frontend: Start F1 (Landing page mockups)
    • Daily standups begin
  3. Track Progress:

    • Use project board (Jira, GitHub Projects, etc.)
    • Daily standups to identify blockers
    • Weekly sprint reviews

Time Summary

ComponentTasksEstimated DaysTeam SizeCalendar Time
Backend API10 tasks
Frontend Frontoffice10 tasks
Frontend Backoffice9 tasks
DevOps5 tasks

Epic Overview

  • Epic 1 Overview - Feature overview, priorities, and success criteria
  • Epic 1 Flow - Detailed user and admin workflows with diagrams

Technical Details (Backend)

Sample Pages (Frontend - Frontoffice)

Sample Pages (Frontend - Backoffice)