Skip to content

Sistema capaz de analisar os documentos de fatura de energia elétrica e extrair os dados importantes deles de forma automatizada.

Notifications You must be signed in to change notification settings

GabrielFeijo/Desafio-Lumi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 

Repository files navigation

Lumi Energia ⚡

Descrição do Desafio 📝

Desenvolver um sistema capaz de:

  • Extrair automaticamente os dados relevantes de faturas de energia.
  • Estruturar e armazenar os dados de forma organizada em um banco de dados PostgreSQL.
  • Apresentar essas informações de maneira intuitiva e acessível através de uma aplicação web, utilizando uma API para comunicação com o backend.

Tecnologias Utilizadas

Frontend 💻

  • Next.js: Framework React para desenvolvimento de aplicações web com renderização no lado do servidor.
  • React: Biblioteca JavaScript para construção da interface do usuário.
  • Tailwind CSS: Framework CSS para estilização rápida e responsiva.
  • ShadcnUI: Biblioteca de componentes UI baseada em React.
  • TypeScript: Linguagem de programação para garantir tipagem estática e segurança no desenvolvimento.

Backend ⚙

  • Fastify: Framework web para construção de APIs com alto desempenho.
  • Prisma: ORM (Object-Relational Mapping) para interagir com o banco de dados PostgreSQL.
  • PostgreSQL: Banco de dados relacional para armazenamento dos dados estruturados.
  • TypeScript: Linguagem de programação para garantir tipagem estática e segurança no desenvolvimento.

Deploy 🚀

  • AWS S3: Armazenamento de faturas de energia.
  • Azure EC2: Hospedagem do backend utilizando Nginx e PM2 para gerenciamento de processos.
  • Vercel: Plataforma de hospedagem para o frontend.
  • Neon DB: Banco de dados hospedado para armazenamento de dados estruturados.
  • Docker: Opção para hospedagem do banco de dados PostgreSQL no EC2. Tanto o Docker quanto o Neon DB são soluções extremamente funcionais e flexíveis para o deploy.

Funcionalidades

Frontend 💻

  • Visualização dos dados cadastrados de clientes e faturas através de uma dashboard.
  • Apresentação de gráficos com informações úteis, como energia consumida e compensada, valores consumidos e compensados
  • Exibição de cartões com informações principais, como total de clientes, total de faturas e consumo de energia.
  • Visualização e filtragem das faturas por mês ou por cliente.
  • Pré-visualização das faturas e possibilidade de baixá-las.
  • Envio de novas faturas, caso necessário.

Backend ⚙

  • Implementação de rotas para gerenciamento de clientes, faturas e métricas.
  • Lógica de extração de dados das faturas enviadas.
  • Armazenamento das informações das faturas tratadas em um bucket no AWS S3 para disponibilização aos usuários.

💻 Imagens da plataforma

Listar faturas

Pré-visualizar fatura

Enviar faturas

🚀 Começo

Estas instruções permitirão que você obtenha uma cópia de trabalho do projeto em sua máquina local para fins de desenvolvimento e teste.

📋 Pré-requisitos

Antes de começar, certifique-se de atender aos seguintes requisitos:

  • Você instalou Git.
  • Você instalou Node.js.
  • Você instalou Docker.
  • Você possui um navegador web moderno.

Também é bom ter um editor para trabalhar com o código como VSCode


🎲 Colocando o projeto para funcionar localmente

# Clone o repositório
$ git clone https://github.com/GabrielFeijo/Desafio-Lumi
# Acesse a pasta do projeto em terminal/cmd
$ cd Desafio-Lumi

BackEnd

# Acesse a pasta do projeto em terminal/cmd
$ cd lumi-back

# Instale as dependências
npm install

# Inicie o banco de dados PostgreSQL usando Docker Compose
$ docker compose up -d

# Configure as variáveis de ambiente no arquivo .env
DATABASE_URL="postgresql://postgre:Postgres2024!@localhost:5432/lumi?schema=public"

# Credenciais para acessar o Bucket na AWS
AWS_REGION="string"
AWS_ACCESS_KEY_ID="string"
AWS_SECRET_ACCESS_KEY="string"
AWS_BUCKET_NAME="string"

#CORS
ORIGIN="["*"]"

# Execute as migrações do Prisma para configurar o banco de dados.
$ npx prisma migrate dev --name init

# Para popular seu banco de dados com dados iniciais, execute o seguinte comando.
$ npx prisma db seed

# Inicie a aplicação em DEV:
$ npm run start:dev

FrontEnd

# Acesse a pasta do projeto em terminal/cmd
$ cd lumi-front

# Instale as dependências
npm install

# Configure as variáveis de ambiente no arquivo .env
NEXT_PUBLIC_API_URL="http://localhost:3333/api"

# Inicie a aplicação em DEV:
$ npm run dev

🧪 Executando Testes

Para executar os testes unitários, navegue até a pasta do projeto (lumi-front ou lumi-back) e execute o seguinte comando:

# BACKEND - (lumi-back): Para popular seu banco de dados com dados iniciais, execute o seguinte comando.
$ npx prisma db seed

$ npm run test

🛠️ Feito utilizando

FrontEnd

BackEnd

Deploy

About

Sistema capaz de analisar os documentos de fatura de energia elétrica e extrair os dados importantes deles de forma automatizada.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages