The project fetches cloud list from Aiven public API and a list of cloud is shown as in table in app. User can also filter the cloud list using cloud providers, regions and the distance.
- Python
- Fast API (API Web framework)
- Poetry (Dependency Management)
- React
- Typescript
The project can be run with or without the Docker. No need to create any virtual environment as Poetry will isolate the dependencies and create a venv by itself. Docker images can be built and run using the Makefile commands.
Use the follwing command in root folder where the Makefile
is,
make up
To stop the container use the command,
make down
To run the API first install Poetry,
pip install --upgrade pip 'poetry==1.1.5'
Required dependencies are added in pyproject.toml
in cloud-api
. To install the dependencies, Run the following command,
poetry install --no-root
Now to run the application,
poetry run uvicorn apis.main:app --host 0.0.0.0 --port 5000 --reload
Now to run the client application go to the cloud-app
folder, and use the following command,
yarn install
And then,
yarn start
To collect the user's location data the project used am external service called Freegeoip. This data is collected to compare the user location with the cloud's location to get the distance of the cloud from the each user.