This repository contains the coursework for the module ECM3408 (Enterprise Computing). It contains three microservices:
-
tracks
- A microservice that controls access to a tracks database, consisting of an ID (track name) and Audio (base64 encoded.wav
file); -
search
- A service that contains a client for AudD, a music recognition software similar to Shazam; -
cooltown
- A "facade" service that uses the other two microservices to request a base64 encoded audio file of a hummed tune, and responds with a base64 encoded audio file of the song in question.
From the repository directory, you can run the following:
(cd addison/tracks && go run main.go) & \
(cd addison/search && go run main.go) & \
(cd addison/cooltown && go run main.go) &
To test these service, the database MUST be empty prior to running. To test, run the following commands in order:
rm addison/tracks/tracks.db
(cd addison/tracks && go run main.go) & \
(cd addison/search && go run main.go) & \
(cd addison/cooltown && go run main.go) &
(cd testing && python3 e2e_test.py)