I created this project with the goal of getting more experience working with the following technologies -
- Docker
- Docker-compose
- Go
- GRPC
- NGINX
- Third party restful APIs
- Micro-Service architectures
because of this goal when considering system design I tried to maximize my exposure to those technologies. In practice for the expected small audience the system would probably be better served by a small modular monolithic application.
Developement dependences -
- Docker https://docs.docker.com/install/
- Golang 1.13 https://golang.org/doc/install
- protobuf compiler v1.2.0 https://grpc.io/docs/quickstart/go/
- First download the required dependenies and cloning this github repo.
- Next you need to set the necessary enironment variables for the docker-compose.yaml file to use.
- Next in the SpotifyAnalyzer directoryn run "Docker-Compose build". This will build the necessary docker images.
- After building the images you can run "Docker-Compose up" to start up the environment.
Below is a diagram of the system which is created when "docker-compose up" is run from the SpotifyAnalyzer directory.