Skip to content

mrichards42/quarantine-chorus

Repository files navigation

Quarantine Chorus

Quarantine Chorus website and serverless backend.

Requirements

Repo Layout

Directory Description
web Website
functions Google Cloud functions
infrastructure Terraform files

Deploying

Deployment is triggered for every push to master.

Functions are deployed using a Github action.

The website is deployed to Netlify at https://quarantine-chorus.netlify.app/.

Data flow overview

See doc/architecture.svg for a diagram.

  1. Submission upload
    • User submits metadata
    • Metadata is stored in firestore (a NoSQL database)
    • Backend returns a one-time upload url
    • File is uploaded to cloud storage
  2. Audio pipeline (triggered by cloud storage upload)
    • Audio is extracted and compressed
    • Audio is aligned with reference files (TODO)
    • Alignment data is written to firestore (TODO)
  3. Video pipeline (TODO)
    • Original upload is resized and aligned using data from the audio pipeline
    • Videos are combined into a final product
      • Better to do video by part, or everyone in a single video? Probably depends on how many submissions there are