-
The predictor is powered by a time-series-forecasting Machine Learning Model.
-
DATA-SOURCE : coinmarketcap
-
The current real-time exchange rate data of Bitcoin in NGN and USD currencies are provided via the Coinbase Api
- NB: these metrics improve over time as the model keeps learning from new data and hyperparameters are tweaked
MAPE=0.1580988278794064
MAE=4238.996757222961
RMSE=4585.15513690739
To get started with the project, ensure you have setup and activated a virtual environment, guides on that here
clone the repository via the command
git clone https://github.com/E-wave112/bitfast_2.0
install dependencies
python3 -m pip install -r requirements.txt
start the server by running the bash script below:
bash start.sh
Alternatively, you can start the server using the command below:
uvicorn application:app --reload
the server will be running on http://localhost:8000/docs
docker-compose up --build
To run the application, use the following command:
docker-compose up
-
The app will be running on http://127.0.0.1:8000
-
Access the docker image for this project on the cloud here
-
It is not recommended to use alpine based images for this project(or most of any other python projects) and here's why
-
A useful resource on how to push your docker image to DockerHub can be found here
-
Ensure you have minikube installed on your machine
-
Start the minikube cluster by running the command below:
minikube start
- To check the status of the cluster, run the command below:
minikube status
- Create a service discovery pattern for the application by running the command below:
kubectl apply -f k8s/services/service.yaml
- To deploy the application to the cluster, run the command below:
kubectl apply -f k8s/deployments/deployment.yaml
- To check the status of the pods, run the command below:
kubectl get pods
- To check the status of the services, run the command below:
kubectl get services
- To access the application, tunnel the service via the command below (we need to do this because our k8s service is of type
LoadBalancer
):
minikube tunnel
- Check the external IP (because you are running the cluster locally, your external IP address will be 127.0.0.1). More guides on that here
kubectl get services bitfast-service
- Open the url below in your browser (ensure the external IP is not pending )
http://<external-ip>:9500
- To delete the application, run the command below:
kubectl delete -f k8s/deployments/deployment.yaml
- To stop the minikube cluster, run the command below:
minikube stop
- To deploy your cluster to the cloud, check out the guides from the official kubernetes docs
Wanna check out my other machine learning projects and implementations? see them all here.