Skip to content

Latest commit

 

History

History
67 lines (56 loc) · 3.66 KB

README.md

File metadata and controls

67 lines (56 loc) · 3.66 KB

imga

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.

Relevant Labs

There are some labs that I use and learn to build this project

Infrastructure

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.

Technologies

I'll build the system and infrastructure with some technologies, tools, platforms and AWS services that are listed below.

For frontend

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.

For backend

  • Node, Express: use to build
  • Python, 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.

Services

  • 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)

Environment

  • Docker & Cloud (For production)
  • Local (For development)

Deployment tools

  • Github Actions: use to delivery new code to cloud, upload web app, ...

Development Orientation

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