Welcome to the Atlas API! This API provides alternative data to venture capital firms to help them make better investing decisions. We collect, quantify, and analyze metrics and patterns using machine learning to assist in the sourcing, analysis, and management of investments.
Project is created with:
- Kubernetes
- Docker >= 20.15.17
- Redis
- Postgres
- Python >= 3.10
- Poetry >= 1.2.0
- Fast-api
- Pydantic
- Scikit-learn
The application can be run using the command line or deployed using a Docker container. Below are instructions for running the application both in and outside of a Docker container.
- Clone the repository
git clone [email protected]:Sean-Koval/atlas.git
Move into root directory and run bash script 'run.sh' while passing one of the required flags [-b, -d, -a, -g, -c] It is important that you grant proper permissions to run bash script with ./run.sh -flag
- To Build Image (minikube) (Step 1):
$ ./run.sh -b
- To deploy (minikube) (Step 2) (http://localhost:8000):
$ ./run.sh -d
- To Build and Deploy (minikube) (Step 1 and 2):
$ ./run.sh -a
- To Clean Up Minikube
$ ./runs.h -c
Running these commands will deploy the application (including redis and all necessary deployments/services) to AKS within the sean-koval namespace (and cluster).
- Build, Tag, and Push Docker Image to ACR Registry
$ ./push.sh
- Deploy to Production (AKS - Azure)
$ kustomize build ./.k8s/overlays/prod | kubectl apply -f -
Tests are eay to run using the 'run.sh' file and by passing the -t flag (testing)
$ ./run.sh -t
The tests can also be run outside of the 'run.sh' file by first setting up the development environment.
$ poetry shell && poetry install
To run testing (pytest) for the Fast-API application from the root folder run the below command.
$ cd lab2
$ poetry run pytest ./tests -vvvv
This will run all of the tests and produce a verbose output in the terminal.