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
| ID | Task | Description | Dependencies | Est. Time |
|---|---|---|---|---|
| B1 | Database Setup | Create database schema for users, requests, voices, sessions | None | |
| B2 | Authentication API | JWT-based auth endpoints - See Authentication | B1 | |
| B3 | User Profile API | GET /api/v1/me endpoint - See User Profile API | B2 | |
| B4 | Voice Gallery CRUD + S3 | Voice 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 API | B1 | |
| B5 | Request Submission + List API | POST /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 API | B2, B4 | |
| B6 | Request Details API | GET /api/v1/text-to-speech/{id} (public endpoint, serves both frontend playback and backoffice) - See TTS Submission API | B5 | |
| B7 | Admin Request Update + Audio Upload API | PUT /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 API | B2, B4, B5 | |
| B8 | Email Notification System + Triggers | Email 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 Templates | B1, B5, B7 | |
| B9 | Error Handling & Validation | Global error handling, input validation middleware | B1 | |
| B10 | API Documentation | Swagger/OpenAPI documentation for all endpoints | All Backend |
- 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
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)
| ID | Task | Description | Dependencies | Est. Time |
|---|---|---|---|---|
| F1 | Landing Page Layout | Public landing page - See Pages: Landing/Login | None | |
| F2 | Client Login + Auth State Management | Login form component, global auth state, protected routes - See Pages: Landing/Login and Authentication | B2, B3 | |
| F3 | Voice Gallery Component (Public) | Public voice gallery display - See Voice Gallery API | B4 | |
| F4 | Request Submission Form | Text input form with voice selection - See Pages: Request Form | B5, F3 | |
| F5 | Request List Page | "My Requests" page - See Pages: My Requests | B5 | |
| F6 | Request Details Page | Individual request view - See Pages: Request Details | B6 | |
| F7 | Public Playback Page | Public audio playback via ID - See Pages: Playback | B6 | |
| F8 | Client Navigation, Layout & Responsive Design | Header, footer, navigation menu for authenticated clients with mobile-first responsive design for all pages | F2 | |
| F9 | Loading & Error States | Loading spinners, error messages, toast notifications | All Frontoffice | |
| F10 | Frontoffice Testing | Component tests, E2E tests for client workflows | All Frontoffice |
Frontend Backoffice Tasks (Admin-Facing)
| ID | Task | Description | Dependencies | Est. Time |
|---|---|---|---|---|
| A1 | Admin Login Page | Separate admin login - See Pages: Admin Login | B2 | |
| A2 | Backoffice Layout & Navigation | Admin sidebar, header, navigation - See Pages: Navigation | A1 | |
| A3 | Admin Dashboard (Basic) | Basic dashboard landing page with navigation (stats deferred to Epic 2) - See Pages: Dashboard | A2 | |
| A4 | Admin Request List Page | All client requests with filtering - See Pages: Admin Request Details | B5, A2 | |
| A5 | Admin Request Details Page | Request details view - See Pages: Admin Request Details | B6, A2 | |
| A6 | Status Update + Audio Upload Component | Status dropdown, audio file upload interface - See Pages: Admin Request Details | B7, A5 | |
| A7 | Admin Auth & Permissions | Role-based access control - See Authentication | B2, A1 | |
| A8 | Admin Notification System | Toast notifications for admin actions | A2 | |
| A9 | Backoffice Testing | Component tests, E2E tests for admin workflows | All Backoffice |
Admin Dashboard Stats (with analytics cards) will be added in Epic 2. Epic 1 includes a basic dashboard landing page.
DevOps Tasks
| ID | Task | Description | Dependencies | Est. Time |
|---|---|---|---|---|
| D1 | Deploy Database | Provision database instance on AWS RDS, configure security groups, connection strings, and backups | None | |
| D2 | Deploy S3 | Create S3 bucket for audio storage, configure CORS, IAM roles, access policies, and lifecycle rules | None | |
| D3 | Deploy Backend | Set up CI/CD pipeline, deploy backend API to dev/staging/production environments with Docker containers | D1, D2 | |
| D4 | Deploy Frontend Client | Deploy frontoffice (client-facing) to dev/staging/production with static hosting or CDN | D3 | |
| D5 | Deploy Frontend Backoffice | Deploy backoffice (admin-facing) to dev/staging/production with static hosting or CDN | D3 |
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
- DevOps starts with D1 and D2 (Database + S3 infrastructure)
- Backend developer starts with B1-B4 (Foundation + Voice Gallery) after D1, D2
- Frontend developer can start with F1 (Landing page) in parallel
- DevOps deploys backend (D3) after B1-B8 are complete
- Backend continues with B5-B8 (Request APIs + Email)
- Frontend progresses with F2-F10 (Frontoffice) and A1-A9 (Backoffice)
- DevOps deploys frontend apps (D4, D5) after frontend work is complete
- 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
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 Task | Blocks | Impact |
|---|---|---|
| D1: Deploy Database | B1 (Database Schema), all backend work | CRITICAL - Infrastructure foundation |
| D2: Deploy S3 | B4 (Voice Gallery), audio storage features | CRITICAL - Storage infrastructure |
| D3: Deploy Backend | F2-F10, A1-A9 (all frontend API integrations) | HIGH - Backend must be deployed for testing |
| B1: Database Setup | Almost all backend tasks | HIGH - Must complete first |
| B2: Authentication API | All authenticated endpoints | HIGH - Blocks both frontend teams |
| B4: Voice Gallery + S3 | Request submission, audio upload, playback | HIGH - Provides S3 setup |
| B5: Request Submission + List API | Request details, admin workflows, frontend pages | HIGH - Core feature |
| B7: Admin Update + Upload API | Email triggers, slug generation | HIGH - Generates slug + triggers emails |
| F2: Client Login + Auth | All authenticated client pages | MEDIUM - Frontoffice blocker |
| A1: Admin Login | All backoffice pages | MEDIUM - Backoffice blocker |
Risk Mitigation
| Risk | Impact | Mitigation | Owner |
|---|---|---|---|
| Database provisioning delays | CRITICAL | Start D1 immediately, provision early in project | DevOps |
| S3 bucket configuration issues | CRITICAL | Start D2 early, test CORS and permissions thoroughly | DevOps |
| CI/CD pipeline failures | HIGH | Set up monitoring, test deployments in dev first | DevOps |
| Environment configuration drift | MEDIUM | Use infrastructure as code (IaC), document configs | DevOps |
| S3 configuration delays | HIGH | Start B4 early, test upload/download in dev | Backend Dev |
| Email delivery issues | MEDIUM | Test email system early with multiple providers | Backend Dev |
| Auth token management bugs | HIGH | Implement comprehensive auth tests early | Backend Dev |
| Audio file size limits | MEDIUM | Define max file size limits early (e.g., 10MB) | Backend Dev |
| Mobile responsive issues | MEDIUM | Test on real devices throughout development | Frontend Dev |
| Admin/Client role confusion | MEDIUM | Clearly separate login flows and UI patterns | Frontend Dev |
Testing Strategy
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:
-
Code Complete:
- Feature implemented according to specifications
- Code reviewed and approved by peer
- No critical bugs or security issues
-
Tested:
- Unit tests written and passing (>80% coverage)
- Integration tests passing
- Manual testing completed
-
Documented:
- API endpoints documented (if backend)
- Component props documented (if frontend)
- README updated if needed
-
Deployed:
- Merged to main branch
- Deployed to staging environment
- Verified in staging
Next Steps
-
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
-
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
-
Track Progress:
- Use project board (Jira, GitHub Projects, etc.)
- Daily standups to identify blockers
- Weekly sprint reviews
Time Summary
| Component | Tasks | Estimated Days | Team Size | Calendar Time |
|---|---|---|---|---|
| Backend API | 10 tasks | |||
| Frontend Frontoffice | 10 tasks | |||
| Frontend Backoffice | 9 tasks | |||
| DevOps | 5 tasks |
Related Documentation
Epic Overview
- Epic 1 Overview - Feature overview, priorities, and success criteria
- Epic 1 Flow - Detailed user and admin workflows with diagrams
Technical Details (Backend)
- Authentication - JWT-based auth system
- User Profile API - User profile endpoints
- Voice Gallery API - Voice selection system
- TTS Submission API - Request submission endpoints
- Request Management - Admin request workflow
- Email Notifications - Status change notifications
- Email Templates - Email template specifications
Sample Pages (Frontend - Frontoffice)
- Landing/Login Page - Client authentication and landing
- Request Form - TTS submission form
- My Requests - Client request list
- Request Details - Individual request view
- Playback Page - Public audio playback
Sample Pages (Frontend - Backoffice)
- Admin Login - Admin authentication
- Admin Dashboard - Admin entry page with stats
- Navigation System - Backoffice layout
- Admin Request Details - Admin request management