isit-a-cat is an application to predict whether an uploaded picture shows a cat or not.
The core components are a tensorflow machine learning model and a web application to upload pictures and trigger prediction.
There also is a telegram bot.
- frontend: Vue.js application where you can upload a picture and see if it's a cat or not
- backend: golang service that handles RESTful HTTP requests from the frontend
- bot: golang telegram bot as an alternative to the web application
- learn: the python machine learning code
- min.io: Kubernetes-native object storage. Used for storing the machine learning model and uploaded images
- Keras: Python deep learning API. Used with tensorflow backend to train a deep learning model
Prerequisites
- Docker
- docker-compose
Deploy:
Clone this repo to a folder of your choice.
Rename the env_template to .env and set the two environment variables within to random values.
E.g. with:
openssl rand --base64 10
openssl rand --base64 40
Then build and run everything with:
docker-compose up --build -d --remove-orphans