The APIs we created: https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/presignedUrl/{fileName} // Get presigned URL to upload the file to S3 bucket https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/recommendation/{fileName} // Get Recommendation based on file(video here) https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/status/{jobId} // Get the job output if the job is successful, Otherwise it returns the job status. User Flow User uploads video to the website using API key for the authentication . This will invoke the API that returns a presigned URL that will allow the client to upload directly to the S3 bucket. https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/presignedUrl/{fileName} Once the client receives the presigned URL, it uploads the file directly. Once the file is uploaded successfully to the server, the UI invokes the async API that starts the recommendation job. https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/recommendation/{fileName} The UI makes periodic requests to the API that checks status of the job. Once the job is successful, the API returns the trending TikTok song titles. If the job is still running, the UI waits. https://lg1uksflod.execute-api.us-east-1.amazonaws.com/prod/TechJam/status/{jobId}

Setback: In order to overcome API gateway timeout and to make a better user experience, we decided to do this in async. We were unable to register our app on the TikTok developer website in time for submission. For demonstration purposes, our UI uses a dummy API in place of the Content Posting API.

Built With

Share this project:

Updates