{"id":22260724,"url":"https://github.com/derailed-dash/image-text-translator","last_synced_at":"2025-07-07T15:41:37.945Z","repository":{"id":243580615,"uuid":"812802407","full_name":"derailed-dash/image-text-translator","owner":"derailed-dash","description":"Image Text Extractor and Translator Application: Containerised Python Flask UI, and Google Cloud Functions backend, which calls Google Cloud prebuilt ML APIs","archived":false,"fork":false,"pushed_at":"2024-10-04T14:52:58.000Z","size":2468,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-03T09:09:48.645Z","etag":null,"topics":["cloud-functions","cloud-run","flask","google-cloud","google-cloud-translation-api","google-cloud-vision-api","jinja2-templates","python"],"latest_commit_sha":null,"homepage":"https://image-text-translator.just2good.co.uk/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/derailed-dash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-09T23:07:14.000Z","updated_at":"2024-11-13T10:45:08.000Z","dependencies_parsed_at":"2024-09-14T08:37:09.457Z","dependency_job_id":"522b631a-73e3-486e-9f84-dd7f1e288ea0","html_url":"https://github.com/derailed-dash/image-text-translator","commit_stats":null,"previous_names":["derailed-dash/image-text-translator"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derailed-dash%2Fimage-text-translator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derailed-dash%2Fimage-text-translator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derailed-dash%2Fimage-text-translator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derailed-dash%2Fimage-text-translator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/derailed-dash","download_url":"https://codeload.github.com/derailed-dash/image-text-translator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236346553,"owners_count":19134480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-functions","cloud-run","flask","google-cloud","google-cloud-translation-api","google-cloud-vision-api","jinja2-templates","python"],"created_at":"2024-12-03T09:09:50.576Z","updated_at":"2025-01-30T12:22:04.355Z","avatar_url":"https://github.com/derailed-dash.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image Text Extract and Translation\n\n![Image-Text-Translator Application](docs/image-text-translator-amalgam.jpg)\n## Overview\n\nAn application that allows a user to upload an image containing text. The text will be extracted, and translated to any selected language.\n\nE.g. A user wants to translate a meme in Ukrainian, to English.\n\nIt is built using:\n\n- Python Flask for the UI\n- Event driven functions for the backend\n- Google Cloud serverless components for hosting: i.e. Cloud Run and Cloud Functions\n- Google pre-built ML APIs for the extraction and translation\n\n## Repo Structure\n\n```text\n└── image-text-translator\n    ├── docs/\n    |\n    ├── infra-tf/               - Terraform for installing infra\n    |\n    ├── scripts/                - For environment setup and helper scripts\n    |   ├── 00_image-text-translator-sa-setup.sh  - Initial sa setup\n    |   ├── 01_env_setup.sh                       - Env setup - run with each new session\n    |   └── 02_deployment_sa.sh                   - Deployment sa setup\n    |\n    ├── app/                    - The Application\n    │   ├── ui_cr/                - Browser UI (Cloud Run)\n    │   │   ├── static/             - Static content for frontend\n    |   |   ├── templates/          - HTML templates for frontend\n    |   |   ├── app.py              - The Flask application\n    |   |   ├── requirements.txt    - The UI Python requirements\n    |   |   ├── Dockerfile          - Dockerfile to build the Flask container\n    |   |   └── .dockerignore       - Files to ignore in Dockerfile\n    |   |\n    │   └── backend_gcf/          - Backend (Cloud Function)\n    │       ├── main.py             - The backend CF application\n    │       └── requirements.txt    - The backend CF Python requirements\n    |\n    ├── testing/\n    │   └── images/\n    |\n    ├── requirements.txt          - Python requirements for project local dev\n    └── README.md                 - Repo README\n```\n\n## Walkthrough and Detailed Guide\n\nCheck out my [Medium blog](https://medium.com/google-cloud/building-a-serverless-image-text-extractor-and-translator-using-google-cloud-pre-trained-ai-adfdccdb18d9), where I describe:\n\n- How the solution is architected\n- Design choices and rationale\n- A walkthrough of how you can do the same, end-to-end, including:\n  - Dev environment setup (including Google Cloud SDK, VS Code, Cloud Code)\n  - Service accounts and roles\n  - Application Default Credentials (ADC)\n  - The coding for the UI (Python, Flask, Jinja templates) and backend (Python)\n  - How to test locally\n  - How to deploy to Google Cloud (using Google Artifact Registry and Cloud Build)\n- Cost management tips\n- Performance tips\n\n## Todo\n\nSome improvements I'll make soon...\n\n- Captcha\n- CI/CD\n- IaC","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderailed-dash%2Fimage-text-translator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderailed-dash%2Fimage-text-translator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderailed-dash%2Fimage-text-translator/lists"}