Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/caionikolas/desafio-shopper
https://github.com/caionikolas/desafio-shopper
aws-s3 geminiapi nestjs prisma-orm
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/caionikolas/desafio-shopper
- Owner: caionikolas
- Created: 2024-08-31T00:36:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-31T02:25:53.000Z (3 months ago)
- Last Synced: 2024-09-27T07:01:15.373Z (about 2 months ago)
- Topics: aws-s3, geminiapi, nestjs, prisma-orm
- Language: TypeScript
- Homepage:
- Size: 233 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Desafio API de leitura de imagens com NestJs utilizando Gemini
![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=nest&logoColor=white)
![Nest](https://img.shields.io/badge/nestJS-%23DD0031.svg?style=for-the-badge&logo=nest&logoColor=white)
![AWS S3](https://img.shields.io/badge/Amazon-%23FF9900.svg?style=for-the-badge&logo=amazon-aws&logoColor=white)## Descrição do Desafio:
Desenvolver o back-end de um serviço que gerencia a leitura individualizada de
consumo de água e gás. Para facilitar a coleta da informação, o serviço utilizará IA para
obter a medição através da foto de um medidor## Tecnologias Utilizadas
- [Nest](https://nestjs.com/) - Framework Node.js destinado ao desenvolvimento de aplicativos do lado do servidor.
- [Docker](https://www.docker.com/) - Serviço que usa virtualização para entregar software em pacotes chamados contêineres.
- [AWS Amazon](https://aws.amazon.com/pt/) - Uma plataforma de serviços de computação em nuvem oferecida pela Amazon.## Como Executar
1. Clone o repositório e acesse a pasta do projeto
```shell
git clone https://github.com/caionikolas/desafio-shopper.git
cd nome-do-repositorio
```
2. Instale os pacotes utilizando o comando `npm install`
3. Crie um arquivo `.env` na raiz do projeto e insira suas credencias. Utilize o arquivo `.env.example` como base.
4. Execute o comando `npm rum prisma`
5. Execute o projeto com o comando `npm start`## API Endpoints
A API fornece os seguintes endpoints:```markdown
POST /upload - Responsável por receber uma imagem em base 64, consultar o Gemini e retornar a
medida lida pela API.{
"image": "base64",
"customer_code": "string",
"measure_datetime": "datetime",
"measure_type": "WATER" ou "GAS"
}PATCH /confirm - Responsável por confirmar ou corrigir o valor lido pelo LLM,
{
"measure_uuid": "string",
"confirmed_value": integer
}GET /:customerCode/list - Responsável por listar as medidas realizadas por um determinado cliente
```
## Docker
Você pode rodar esse projeto com Docker seguindo os seguintes comandos:
```bash
$ docker-compose up
```