imga is a tool that helps you to extract content of a table to excel. Which run with tesseract as core. This tool is served with web application which is deployed in AWS Cloud.
There are some labs that I use and learn to build this project
- Lab 000002: Manage access with AWS Identity and Access Management (AWS IAM)
- Lab 000003: Deploy network infrastructure with Amazon Virtual Private Cloud (Amazon VPC)
- Lab 000004: Getting Started and Deploying Applications on Amazon Compute Cloud (Amazon EC2)
- Lab 000015: Deploy Applications with Docker
- Lab 000037: Initialize Infrastructure as Code with AWS CloudFormation
- Lab 000048: Grant application permissions to access AWS services through IAM Role (AWS IAM)
- Lab 000057: Hosting static website with Amazon S3
This diagram describes how my system look like in Cloud.
Note: Remember, this diagram is just the first version of my application (this version is used for workshop), I'll will draw my entire system in future in the Development Orientation section.
I'll build the system and infrastructure with some technologies, tools, platforms and AWS services that are listed below.
Users will interact with web application and receive result from web application. I decide to use these technologies for building are HTML
, CSS
, Javascript
, Boostrap
.
Node
,Express
: use to buildPython
,Tesseract
,Numpy
: use to build python program, the core feature of this app.SDK
: use to build applications, programs (Server, Python program) on cloud with AWS Software Development Kit.
VPC
: an infrastructure of my system in cloud.EC2
: use to host docker container, including backend, web application.S3
: use to store images, static files (web).IAM
: use to grant to ec2, tools for cloud resources accessing.API Gateway
: use to centralize apis in app.- CloudFormation: (in the future version of this project)
- ECS (in the future version of this project)
- Amplify (in the future version of this project)
- Cloud9 (in the future version of this project)
- Lambda (in the future version of this project)
- Amazon RDS (in the future version of this project)
- Amazon Cognito (in the future version of this project)
- ELB (in the future version of this project)
Docker
&Cloud
(For production)Local
(For development)
Github Actions
: use to delivery new code to cloud, upload web app, ...
In the future, I'll add more features, change OCR Model (or built by myself). These are my plan to use non-empharized services in the Services section.
CloudFormation
: actually I don't need it, because my structure of application is simple.ECS
: I'll migrate my local docker containers in EC2 to ECS.Amplify
& Cloud9: use to simplify my web application development & deployment.Lambda
: move python program to lambda.Amazon
RDS & Cognito:ELB
: maybe, in future, my application is popular an current system cannot handle multiple requests, so I'll use ELB if EC2s still exist in my system.
Developed by @NguyenAnhTuan1912