Skip to main content

Phase 6: Self-Service Tools

Timeline: Weeks 18-21 Status: Planned


Core Goal

Enable client autonomy for editing requests and regenerating QR codes without admin intervention.


Client Self-Service Features

Audio Edit Requests

  • Request modifications to completed audio
  • Simple edit workflow
  • Status tracking for edits
  • Revision history
  • Approval process

QR Code Regeneration

  • Download QR codes anytime
  • Regenerate with new branding
  • Multiple format selection
  • Custom sizing options
  • Batch downloads

Request Management

  • Edit request details
  • Update slug URLs
  • Modify metadata
  • Archive/unarchive requests
  • Duplicate requests

Edit Request Workflow

Edit Flow

Edit Types

Edit TypeDescriptionProcessing Time
Text correctionMinor text changes1-2 hours
Voice changeDifferent voice actor4-24 hours
Tone adjustmentSame voice, different tone2-4 hours
Full re-recordComplete redo4-24 hours

QR Code Regeneration

Regeneration Options

Format Selection:

  • PNG (multiple resolutions)
  • SVG (vector)
  • PDF (print-ready)
  • EPS (design software)

Customization:

  • Brand logo overlay
  • Color scheme
  • Size variants
  • High contrast toggle

Batch Operations:

  • Download all QR codes
  • Regenerate all with new branding
  • Export to ZIP file

Regeneration API

Endpoint: POST /api/v1/client/requests/{requestId}/qr/regenerate

Request Body:

{
"formats": ["png", "svg", "pdf"],
"size": "large",
"highContrast": true,
"branding": {
"logo": "https://example.com/logo.png",
"colorScheme": "brand"
}
}

Response: 200 OK

{
"success": true,
"data": {
"qrCodeId": "new-uuid",
"files": {
"png": "https://cdn.micdots.com/qr/new-uuid.png",
"svg": "https://cdn.micdots.com/qr/new-uuid.svg",
"pdf": "https://cdn.micdots.com/qr/new-uuid.pdf"
},
"generatedAt": "2024-11-08T10:00:00Z"
}
}

Enhanced Client Dashboard

Dashboard Sections

My Requests:

  • List view with filtering
  • Status indicators
  • Quick actions menu
  • Bulk operations

Request Details:

  • Full request information
  • Audio playback
  • QR code preview
  • Download options
  • Edit controls

Analytics (Basic):

  • QR code scans
  • Audio plays
  • Geographic data
  • Time-based charts

Quick Actions

Request Card Actions:

  • Play audio button with accessible label
  • Download QR code button
  • Edit request button
  • Share button
  • View analytics button

All buttons include proper aria-labels for accessibility.


Request Editing Features

Editable Fields

FieldEditable After CompletionRequires Admin Approval
Message Text❌ No (requires edit request)✅ Yes
Voice Actor❌ No (requires edit request)✅ Yes
Slug URL✅ Yes❌ No
Website URL✅ Yes❌ No
Social Media✅ Yes❌ No
Description✅ Yes❌ No

Edit Request Form

Form Fields:

  • Edit Type (required dropdown): Text Correction, Voice Change, Tone Adjustment, Full Re-record
  • Reason for Edit (required textarea): Explanation of needed changes
  • Revised Text (optional textarea): New text content if applicable (max 1000 chars)
  • Submit button

Form includes proper labels, help text, and accessibility attributes.


Download Manager

Download Interface

Format Selection (checkboxes):

  • PNG (1000x1000px) - default checked
  • SVG (Vector)
  • PDF (Print-ready)

Size Options (radio buttons):

  • Small (500x500px)
  • Medium (1000x1000px) - default
  • Large (2000x2000px)

Additional Options:

  • High Contrast Version checkbox
  • Generate & Download button

Acceptance Criteria

F5.1 - Audio Edit Request

User Story: As client, I want to request modifications to completed audio.

Acceptance Criteria:

  • AC5.1.1: Given completed request, when I view details, then "Request Edit" button alongside downloads
  • AC5.1.2: Given I click "Request Edit", when form opens, then original text, audio player, edit description area shown
  • AC5.1.3: Given I want changes, when I fill form, then can specify: text changes, style adjustments, pronunciation, re-recording
  • AC5.1.4: Given I submit edit, when clicked, then sub-request created with "edit-pending" and admin notified
  • AC5.1.5: Given edit processed, when admin completes, then new audio file and request shows edit history
  • AC5.1.6: Given multiple edits, when I request second, then system tracks count and may apply additional charges
  • AC5.1.7: Given complex edit, when admin reviews, then can contact for clarification before proceeding
  • AC5.1.8: Given edit completed, when I receive notification, then can compare original and edited side-by-side

F5.2 - QR Code Regeneration

User Story: As client, I want to regenerate QR codes with different formatting.

Acceptance Criteria:

  • AC5.2.1: Given completed request, when I access downloads, then "Regenerate QR Code" with customization settings
  • AC5.2.2: Given I want branding, when I access tool, then can upload logo (max 2MB) to embed in center
  • AC5.2.3: Given I need colors, when I customize, then can choose foreground/background while maintaining scannability
  • AC5.2.4: Given different sizes, when I regenerate, then can specify exact dimensions for use case
  • AC5.2.5: Given I need error correction, when I generate for print, then can choose error correction level
  • AC5.2.6: Given I test changes, when I customize, then live preview updates as I make changes
  • AC5.2.7: Given I regenerate, when complete, then new version available while preserving originals
  • AC5.2.8: Given customization affects scannability, when I make risky changes, then system warns and suggests alternatives

F5.3 - Enhanced Client Dashboard

User Story: As client, I want expanded dashboard functionality.

Acceptance Criteria:

  • AC5.3.1: Given I access dashboard, when page loads, then organized sections: Active, Completed, Edit Queue, Quick Actions
  • AC5.3.2: Given I organize projects, when I view completed, then can add tags, notes, custom names
  • AC5.3.3: Given many projects, when I browse, then can filter by date, status, voice actor, custom tags
  • AC5.3.4: Given I want insights, when I click project, then see usage stats: scans, geographic data, engagement
  • AC5.3.5: Given I duplicate project, when I find successful request, then "Create Similar" pre-fills new form
  • AC5.3.6: Given I manage downloads, when I access project, then see download history and can re-download versions
  • AC5.3.7: Given I share projects, when I view details, then can generate shareable portfolio links
  • AC5.3.8: Given multiple brands, when I organize, then can create folders/categories for related projects

F5.4 - Basic Analytics

User Story: As client, I want to see QR code performance.

Acceptance Criteria:

  • AC5.4.1: Given someone scans QR, when they visit playback, then scan tracked with timestamp and city/country
  • AC5.4.2: Given I want performance, when I access analytics, then see: total scans, unique visitors, peak times, geographic distribution
  • AC5.4.3: Given I track over time, when I view analytics, then can select date ranges and see trend graphs
  • AC5.4.4: Given I want engagement, when I check analytics, then see: average listen time, completion rate, repeat visits
  • AC5.4.5: Given I compare projects, when I view dashboard, then comparative performance across all projects
  • AC5.4.6: Given I need reports, when I access analytics, then can export data as CSV
  • AC5.4.7: Given I want real-time, when I check analytics, then data updated within 15 minutes of scans
  • AC5.4.8: Given privacy concerns, when analytics collected, then no PII stored or displayed

API Endpoints

Request Edit

Endpoint: POST /api/v1/client/requests/{requestId}/edit

Request Body:

{
"editType": "text-correction",
"reason": "Typo in message text",
"revisedText": "Corrected message text"
}

Update Request Metadata

Endpoint: PATCH /api/v1/client/requests/{requestId}

Request Body:

{
"slug": "new-slug-url",
"websiteUrl": "https://example.com",
"socialMedia": "https://twitter.com/example",
"description": "Updated description"
}

Testing Examples

Regenerate QR Code

curl -X POST http://localhost:5000/api/v1/client/requests/uuid/qr/regenerate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer CLIENT_TOKEN" \
-d '{
"formats": ["png", "svg"],
"size": "large",
"highContrast": true
}'

Submit Edit Request

curl -X POST http://localhost:5000/api/v1/client/requests/uuid/edit \
-H "Content-Type: application/json" \
-H "Authorization: Bearer CLIENT_TOKEN" \
-d '{
"editType": "text-correction",
"reason": "Spelling error",
"revisedText": "Corrected text here"
}'

Success Criteria

Functionality

  • ✅ Clients can request edits
  • ✅ QR regeneration works
  • ✅ Download manager functional
  • ✅ Metadata updates successful
  • ✅ Analytics display correctly

Performance

  • QR regeneration < 5 seconds
  • Dashboard load < 2 seconds
  • Download generation < 3 seconds

User Experience

  • Intuitive self-service interface
  • Clear edit workflow
  • Helpful error messages

Deliverables

  1. Edit Request System

    • Edit workflow
    • Admin processing
    • Status tracking
  2. QR Regeneration

    • Format options
    • Customization tools
    • Batch operations
  3. Enhanced Dashboard

    • Request management
    • Download manager
    • Basic analytics
  4. Documentation

    • User guide
    • API documentation
    • Best practices

Next Phase

➡️ Phase 7: Credit System