Epic 1 - User Flow
Overview
Epic 1 follows a manual admin-driven workflow where users submit text requests and admins manually process them to generate audio.
Access Rules:
- ✅ Public Access (No Login): Landing page content, voice gallery, audio playback
- 🔒 Login Required (Users): Submitting text-to-audio requests
- 🔒 Login Required (Admins): Backoffice dashboard, request management
Manual Processing Workflow
Key Difference from Automated Systems:
- Users submit text requests and receive confirmation emails
- Admins manually process requests and upload audio files
- System sends 3 automated emails: confirmation (on submit), processing (when admin starts), and completion (when audio is ready)
User Journey: Text-to-Audio Request
Admin Journey: Request Processing
Combined Flow: User + Admin
Detailed Flow Steps
User Flow
Step 1: Landing & Login (Public Access)
Page: Landing/Login Page
- User visits MicDots website
- Landing page displays (no authentication required)
- User can view features and marketing content
- User decides to create audio request
Authentication:
- User enters email and password
- System validates credentials
- If valid: User authenticated, redirect to voice gallery
- If invalid: Show error message
Step 2: Voice Selection (Public Access)
Page: Voice Gallery
- User views voice gallery (no login required)
- User listens to voice samples
- User browses available voices
- When ready to submit, user proceeds to login/submission
Step 3: Text Submission
Page: Request Submission Form
- User enters text (up to 1000 characters)
- Character counter displays remaining characters
- Selected voice model is shown
- User clicks "Submit Request"
What Happens:
- Backend creates request with status "pending"
- Backend sends confirmation email to user
- Frontend shows success message: "We will generate your audio for you"
- User sees confirmation that request was received
Step 4: Waiting Period
What User Experiences:
- User receives confirmation email: "Your request has been received"
- User waits for admin to process (no action required)
- User receives processing email: "We're working on your audio"
- User waits for completion
- User receives completion email: "Your audio is ready!" with playback link
Typical Wait Time: 1-24 hours (depends on admin availability)
Step 5: Audio Access
Page: My Requests → QR Playback Page
How to Access
- User checks "My Requests" page for completion status
- User sees request status changed to "Completed"
- User clicks playback link from request details
- Browser opens playback page
- Audio plays automatically
Admin Flow
Step 1: Admin Login
Page: Landing/Login Page
- Admin visits MicDots
- Admin enters admin credentials (separate from user accounts)
- System validates admin permissions
- Admin redirected to backoffice dashboard
Step 2: View Requests
Page: Admin Backoffice
- Admin sees dashboard with request statistics
- Admin views list of pending requests
- List shows:
- Request ID
- User name
- Text preview (first 50 chars)
- Voice model
- Status
- Created date
- Admin selects request to process
Step 3: Process Request
Page: Admin Request Details
- Admin views full request details:
- Complete text
- Selected voice model
- User information
- Current status
- Admin clicks "Update Status to Processing"
- System sends email to user (status update)
- Admin prepares to obtain audio from external source
Step 4: Obtain Audio (External)
Outside the System:
- Admin uses any external audio generation service or tool
- Admin copies text from request
- Admin generates/creates audio file
- Admin downloads or exports MP3 file
- Admin saves file locally
Why External: To reduce development time, automatic audio generation is deferred to future releases. Admins can use any audio source - the system doesn't track or require specific services.
Step 5: Upload Audio
Page: Admin Request Details
- Admin clicks "Upload Audio" button
- Admin selects MP3 file from computer
- Admin clicks "Upload"
- System processes upload:
- Uploads audio to S3
- Updates request status to "completed"
- Sends completion email to user with playback link
- Admin sees success message
- Admin moves to next pending request
Email Notification Flow
Email 1: Confirmation (Immediate)
Trigger: User submits text request
Subject: "Your MicDots request has been received"
Content:
- "Thank you for your request"
- Request ID
- Text preview (first 100 chars)
- Voice model selected
- "We will start processing your audio soon"
- Estimated time: "Usually within 24 hours"
Email 2: Processing (Admin Triggered)
Trigger: Admin updates status to "processing"
Subject: "Your audio is being generated"
Content:
- "We're working on your audio"
- Request ID
- Voice model
- "You'll receive another email when it's ready"
Email 3: Completion (Deferred to Epic 2)
This email is NOT sent in Epic 1. Users must check "My Requests" page to see when audio is completed.
Deferred to: Epic 2
Trigger: Admin uploads audio (status changes to "completed")
Subject: "Your audio is ready!"
Content (Epic 2):
- "Your audio has been generated successfully"
- Playback Link:
https://micdots.com/play/{slug}(clickable) - Instructions:
- "Click the link above to listen now"
- Request details (text preview, voice model)
Public Audio Playback
Playback Journey (No Login Required)
Page: QR Playback Page
Steps:
- User clicks playback link from completion email or "My Requests" page
- Browser opens playback URL:
https://micdots.com/play/{{slug}} - Page loads (no login required)
- Audio plays automatically
- User listens to audio
- User can replay or close page
Key Features:
- ✅ No authentication required
- ✅ Auto-play on page load
- ✅ Mobile-optimized
- ✅ Simple interface (just audio player)
- ✅ Permanent access (until manually deleted)
Flow Summary
User Perspective
What Users Do:
- Browse voice gallery (no login required)
- Log in (email + password)
- Select voice model
- Submit text
- Wait for emails
What Users Receive (Epic 1):
- Confirmation email (immediate)
- Processing email (when admin starts)
- Completion email (when audio is ready) with playback link
Total User Actions: 5 clicks (Browse → Login → Select Voice → Submit → Done)
Admin Perspective
What Admins Do:
- Log in to backoffice
- View pending requests
- Update status to "processing"
- Obtain audio from external source
- Upload audio file
- System handles rest automatically
Total Admin Actions: 5 actions per request
Request Status Flow
pending → processing → done
Status Definitions:
| Status | Meaning | Email Sent (Epic 1) | Admin Action |
|---|---|---|---|
pending | Request received, waiting | ✅ Confirmation | None yet |
processing | Admin is working on it | ✅ Processing | Update status |
completed | Audio ready | ❌ None (Epic 2) | Upload audio |
Access Summary
Public Access (No Login)
- ✅ Landing page
- ✅ Marketing content
- ✅ Voice gallery
- ✅ Audio playback page
User Access (Login Required)
- ✅ Request submission form
- ✅ Receiving emails
- ✅ View personal requests
Admin Access (Admin Login Required)
- ✅ Backoffice dashboard
- ✅ Request list
- ✅ Request details
- ✅ Status updates
- ✅ Audio upload
Page Navigation
User-Facing Pages:
- Landing/Login Page - Entry point
- Request Submission Form - Text entry and voice selection
- QR Playback Page - Public audio playback
Admin-Facing Pages: 5. Admin Backoffice - Dashboard 6. Admin Request Details - Request processing
Technical Documentation: 7. Authentication - Login system 8. Email Notifications - Email system 9. Request Management API - Backend API
Success Metrics
User Experience
- Request submission takes < 30 seconds
- Users understand they will receive 2 emails (confirmation, processing)
- Confirmation email received within 1 minute
- Processing email received when admin starts
- Users know to check "My Requests" for completion status
- Audio playback works on first click
Admin Experience
- Admin can view pending requests easily
- Status updates take < 10 seconds
- Audio upload completes successfully
- Emails sent automatically on submit and processing status change
Technical Performance
- Email delivery rate > 99%
- Audio playback works on all devices
- Page load time < 2 seconds
- S3 upload success rate > 99%