Skip to content

Record Voice → Upload to Cloud Storage → Save URL in Database #12

@amjadAwad95

Description

@amjadAwad95

Goal: Capture an audio recording, upload it to a cloud storage provider (AWS S3 / Firebase Storage / any provider), obtain the file URL, and store the URL in the database linked to the correct user and/or presentation.


Requirements

  • Record or accept an audio file (wav/mp3/m4a).
  • Upload audio to cloud storage:
    • Option A: AWS S3
    • Option B: Firebase Storage
    • Option C: Any provider (Cloudinary, GCS, Azure Blob, etc.)
  • Get the uploaded file URL (public URL or signed URL).
  • Save the URL in the database with metadata:
    • user_id
    • presentation_id (optional but recommended)
    • file_url
    • provider
    • created_at
  • Must be extensible (easy to add another provider later).

Deliverables

  • Storage adapter interface (provider-agnostic upload API)
  • Implementation for at least 1 provider (S3 or Firebase)
  • Python/Backend endpoint or script that:
    • receives audio
    • uploads it
    • returns the URL
    • saves it into AudioRecording
  • DB migration / schema update

Flow

  1. Client records audio (or uploads file)
  2. Backend receives audio file
  3. Backend uploads file to cloud storage
  4. Storage returns file_url (+ file_key)
  5. Backend saves record in DB
  6. Backend returns saved record (id + url)

Acceptance Criteria

  • Audio file successfully uploads to cloud storage
  • A valid URL is returned
  • URL is saved in AudioRecording with correct user linkage
  • Works end-to-end for at least one provider
  • Adding another provider requires creating a new adapter class only

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions