# Apollo Playlist Sync

Apollo Playlist Sync is a Python project designed to help you synchronize your music playlists across different
streaming platforms. It is built using Python 3.10 and is specifically designed to synchronize playlists from Spotify to
other platforms such as Spotify, YouTube, and Deezer. This project is deployed as an AWS Lambda function and is intended
to be run behind an API Gateway.

## Setup

### Environment Variables

Copy the provided `.env.sample` file and name it `.env`. Fill in the appropriate values for the environment variables
before running the code locally.

### Run locally

To run the project locally, you'll need Docker installed on your machine. You
can start the application using `docker-compose`.

```sh
docker-compose --profile api up
```

API will be available at http://localhost:8000/dev/. You can use this address to interact with the API using your
preferred API client.

If requirements were changed you need to force build an api container by running

```sh
docker-compose --profile api up --build
```

## Pre-commit

Before committing any changes to the repository, please ensure you run the pre-commit checks. This will ensure that your
code follows the project's coding standards and passes all tests.

```sh
make pre-commit
```


## Infrastructure Map
![Alt text](docs/infra_diagram.svg)
