This is a single page application (SPA) where users can upload an image and extract the text contained in that image.
The following software packages are required to build and run the application locally and in docker
- Docker Desktop +20.10.8
chocolatey
package manager (Windows only)- npm
- Python +3.9
- Node JS
- make
The below table provides more details about the make targets
used to build, deploy, and run the application.
In order to use them, run the make <Make Target>
command in the project's root folder.
Make Target | Description |
---|---|
build-app |
Build the images |
build-app-no-cache |
Build the images without cache |
start-app |
Start the application (requires a build first) |
stop-app |
Stop the application |
The following is a reflection on the learning outcomes while building this project.
- Use Vue.js and leverage Vue.js components.
- Provide Python API for feature extraction of uploaded images.
- Perform feature engineering on uploaded images using opencv.
- Use Tesseract OCR to get text from images.
- Serve the application with Nginx.
- Proxy API calls from Nginx to Flask.
- Deploy with Docker as single images.
- Deploy using docker-compose.
- Deploy using a manifest on local kubernetes cluster.
- Deploy using a manifest on to Azure kubernetes cluster.
-
This project is based on a tutorial for building SPA with Flask and Vue.js, which is a awesome resource to get started with Vue.js and Flask
-
This tutorial shows you how to upload files with Vue.js
-
This resource is for displaying images in Vue.js
-
This resource is great to learn how to install Tesseract-OCR on Linux
This section contains some helpful commands. Some require npm
to be installed on your system.
Run the following commands inside the client/
folder
vue add <name>
Use command `npm run build`
use command `npm run serve` inside the **\src\client**
Use command `server -s dist`