{"id":18412277,"url":"https://github.com/maikonalexandre/measure-reader","last_synced_at":"2026-04-10T00:33:41.986Z","repository":{"id":255094960,"uuid":"848526513","full_name":"maikonalexandre/measure-reader","owner":"maikonalexandre","description":"🕒 A simple water and gas meter reader api, powered by artificial intelligence.","archived":false,"fork":false,"pushed_at":"2024-10-12T13:53:12.000Z","size":75,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-16T05:41:50.787Z","etag":null,"topics":["biome","docker","docker-compose","fastify","google-generative-ai","nodejs","postgresql","prisma","typescript","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/maikonalexandre.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-08-27T23:34:25.000Z","updated_at":"2024-10-12T13:53:14.000Z","dependencies_parsed_at":"2024-08-28T00:48:02.547Z","dependency_job_id":"d957e41f-3cb1-4474-905a-88e9b0f44dc7","html_url":"https://github.com/maikonalexandre/measure-reader","commit_stats":null,"previous_names":["maikonalexandre/measure-reader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maikonalexandre%2Fmeasure-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maikonalexandre%2Fmeasure-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maikonalexandre%2Fmeasure-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maikonalexandre%2Fmeasure-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maikonalexandre","download_url":"https://codeload.github.com/maikonalexandre/measure-reader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647258,"owners_count":21139081,"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":["biome","docker","docker-compose","fastify","google-generative-ai","nodejs","postgresql","prisma","typescript","zod"],"created_at":"2024-11-06T03:40:49.319Z","updated_at":"2025-12-30T20:21:28.499Z","avatar_url":"https://github.com/maikonalexandre.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⏱️ Measure reader\n\n\u003cdiv align=\"center\"\u003e\n\u003cp\u003e\u003c/p\u003e\n\n\u003ca href=\"#-install\"\u003e📌 Install\u003c/a\u003e\n\u003cspan\u003e\u0026nbsp;\u0026nbsp;•\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\u003ca href=\"#-stack\"\u003e🛠️ Stack\u003c/a\u003e\n\u003cspan\u003e\u0026nbsp;\u0026nbsp;•\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\u003ca href=\"https://twitter.com/maikonalx\"\u003e🐦 Twitter\u003c/a\u003e\n\n![GitHub stars](https://img.shields.io/github/stars/maikonalexandre/measure-reader)\n![GitHub issues](https://img.shields.io/github/issues/maikonalexandre/measure-reader)\n![GitHub license](https://img.shields.io/github/license/maikonalexandre/measure-reader)\n[![Required Node.JS \u003e=18.0.0](https://img.shields.io/static/v1?label=node\u0026message=%20%3E=18.0.0\u0026logo=node.js\u0026color=3f893e)](https://nodejs.org/about/releases)\n\n\u003c/div\u003e\n\n## 👋 Introduction\n\n[**measure-reader**]() application was developed to automate the process of reading water and gas meters. Using Google's artificial intelligence model, Gemini, the application is able to extract the reading from the numbers shown in an image of the meter sent by the user.\n\n## ✨ Main features:\n\n- Image upload: The user can upload a photo of a water or gas meter\n\n- AI-powered image processing: The application uses the Gemini model to identify and extract the number displayed on the meter.\n\n- Data storage: The extracted reading and the received image are saved in a database.\n\n- Confirmation and update: The user can confirm the reading made by the AI ​​and, if there are discrepancies, update the data.\n\n- Reading list: It is possible to list all readings recorded in the system\n\n## 📌 Install\n\nYou will need:\n\n- [Docker](https://www.docker.com/)\n- [Docker compose](https://docs.docker.com/compose/)\n- [Node.js 18+ (recommended 20 LTS)](https://nodejs.org/en/).\n- [Git](https://git-scm.com/).\n\n1. Clone this repo locally:\n\n```bash\ngit clone git@github.com:maikonalexandre/measure-reader.git\n```\n\n2. Install dependencies:\n\n```bash\n#run\nnpm install\n# or\npnpm install\n# or\nyarn install\n```\n\n3. Start project:\n\n```bash\n#run\ndocker-compose build \u0026\u0026 docker-compose up\n```\n\n## 🛠️ Stack\n- [**TypeScript**](https://www.typescriptlang.org/) - JavaScript with syntax for types.\n- [**Fastify**](https://www.fastify.io/) - A web framework highly focused on providing the best developer experience with the least overhead and a powerful plugin architecture.\n- [**Prisma**](https://www.prisma.io/) - An ORM for JavaScript and TypeScript that simplifies database access and management.\n- [**Biome**](https://biomejs.dev/pt-br/) - An alternative to ESLint and Prettier, made with Rust.\n- [**Docker**](https://www.docker.com/) - A platform for developing, shipping, and running applications inside containers.\n- [**Zod**](https://zod.dev/) - A TypeScript-first schema declaration and validation library.\n- [**date-fns**](https://date-fns.org/) - A modern JavaScript date utility library delivering modularity, performance, and ease of use.\n- [**@google/generative-ai**](https://www.npmjs.com/package/@google/generative-ai) - A library for interacting with Google's Generative AI models.\n\n**And more**\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaikonalexandre%2Fmeasure-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaikonalexandre%2Fmeasure-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaikonalexandre%2Fmeasure-reader/lists"}