-
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.15513690739To 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.0install dependencies
python3 -m pip install -r requirements.txtstart the server by running the bash script below:
bash start.shAlternatively, you can start the server using the command below:
uvicorn application:app --reloadthe server will be running on http://localhost:8000/docs
docker-compose up --buildTo 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.