Um serviço que gerencia medição e leitura individualizada de consumo de água e gás, feito com Typescript e Node.js, usando o Google Gemini AI
Recursos principais • Como usar • Melhorias • Créditos • TODO
- Faça o upload de uma imagem de um medidor de gás ou água
- A IA irá ler a imagem e obter a medição, retornando o valor
- A aplicação irá pedir a confirmação o valor dessa medição
- Salva no banco de dados os dados da medição, com o seu tipo (água ou gás)
- Lista todas as medições pelo código do consumidor
Para clonar essa aplicação, você precisará ter instalado na sua máquina o Node.js (que vem com o npm) e o Docker com Docker Compose.
-
Da sua linha de comando:
# Clone este repositório $ git clone https://github.com/evans-costa/teste-dev-shopper.git # Vá para a pasta do repositório $ cd teste-dev-shopper
-
Renomeie o arquivo
.env.example
para.env
e preencha com a API KEY do GeminiNODE_ENV=development POSTGRES_PORT=5432 POSTGRES_USER=local_user POSTGRES_DB=local_db POSTGRES_PASSWORD=local_password DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:$POSTGRES_PORT/$POSTGRES_DB GEMINI_API_KEY=<YOUR-GEMINI-API-KEY>
📌 Nota:
Para gerar uma chave de API do Google Gemini, por favor, siga as instruções contidas nesse link.
Para rodar essa aplicação localmente, siga essas instruções:
-
Instale as dependências:
# Instale as dependências $ npm install
-
Rode o seguinte comando:
# Suba os serviços e o servidor $ npm run dev:local
Isto irá subir o contêiner com o banco de dados, rodar as migrações, fazer o seed de um usuário na tabela
customers
e subir o servidor no endereçohttp://localhost:3000
-
Alternativamente, você pode subir todos os serviços, tanto a aplicação Node e os serviços do banco de dados, em uma rede de contêineres Docker
-
Rode o seguinte comando:
# Suba os serviços e o servidor $ npm run services:up
Isso irá subir o contêiner do PostgreSQL, o contêiner do Node e estabelecer a conexão entre eles, assim como instalar as dependências, rodar as migrações e fazer o seed de um usuário na tabela
customers
, além de rodar o servidor no endereçohttp://localhost:3000
- Você agora pode testar a API da seguinte maneira:
- Use o
customer_code
:33f02178-e1bd-466d-a9a6-fa3f56cacda1
, criado no momento do seed do banco de dados, para testar os endpoints. - Acesse
http://localhost:3000/documentation
, onde todos os endpoints da aplicação estão expostos por meio da interface doSwaggerUI
OU - No seu cliente API REST de preferência como Insomnia, Postman, Hoppscotch...
- Use o
- Uso de
conventional commits
aliado aoHusky
e o pacotecommitlint
para automatizar os commits usando o comandonpm run commit
, assim, no momento do commit, as definições já são expostas na CLI; - Documentação com o uso do Swagger;
- Separação de responsabilidades usando repositórios, controllers e services;
- Tratamento de erros;
- Scripts de linting garantindo qualidade e estilização do código;
- Migrações e seed do banco de dados.
Esse como parte do desafio para a vaga de Desenvolvedor Full Stack da Shopper
- Testes automatizados
GitHub @evans-costa · LinkedIn @evandro-souzac · Site @evandrocosta.dev.br