Welcome to the Good Tape code test. This test is divided into two tasks related to Python development and DevOps. The main goal is to assess your coding skills in Python and your understanding of DevOps concepts like setting up APIs and handling large files.
The context for this test revolves around audio processing, which is a key part of Good Tape's work as an audio transcription service using OpenAI's Whisper.
In this task, you are expected to create a simple API that allows users to upload audio files, convert them to a specified format (for instance, from .wav to .mp3), and download the converted file. You should implement this using Python, and the input/output should be handled using HTTP requests.
Make sure your solution covers these points:
- Users can upload their audio files.
- The API is capable of converting the audio file to the desired format.
- Users can download the converted audio files.
- Add appropriate error handling (e.g., invalid file format, incorrect file path).
You may use any Python libraries you see fit to accomplish this task.
For this task, you are to containerize the API developed in Task 1 using Docker.
Ensure that the API can be spun up quickly using a Docker command, and include in your readme.md the exact command to be used for this.
Please fork this repository, add your code to the forked repository and, when you are ready to submit, share the link of your repository. Include a readme.md file detailing any assumptions you made, decisions you took, and how to run your code.
Your submission will be evaluated based on the following:
- Code quality and organization
- Error handling
- Appropriateness of the libraries used
- Completeness of the task
- Containerization of the application
Good luck, and we're excited to see your solution!