An open API service indexing awesome lists of open source software.

https://github.com/mateusngf/invoices

The Invoices project is an application that manages energy bills (invoices), exclusively from CEMIG, with a visualization of the processed invoices and a section for analyzing them, observing the quantity and costs of energy consumption.
https://github.com/mateusngf/invoices

docker nest nodejs postgresql react

Last synced: 3 months ago
JSON representation

The Invoices project is an application that manages energy bills (invoices), exclusively from CEMIG, with a visualization of the processed invoices and a section for analyzing them, observing the quantity and costs of energy consumption.

Awesome Lists containing this project

README

          

# FATURAS - Gerenciando suas economias energéticas


preview app

O projeto Faturas, é uma aplicação que gerencia contas(faturas) de energia, exclusivamente da CEMIG, dispondo de visualização das faturas processadas e uma secção de análise das mesmas, observando a quantidade e os custos do consumo de energia. Este faz parte de um teste prático realizado pela empresa Lumi para vaga de FullStack.
Tendo como objetivo cumprir alguns pontos de pré requisitos do sistema e tecnicos do desenvolvimento. O Layout inicial do projeto pode ser encontrado no Figma. Clique para acessar


> Veja a versão dois : https://github.com/MateusNGF/Invoices/tree/version-two


CONSIDERAÇÕES

Nesta secção será abordado as questões tecnicas do desenvolvimento. Portanto, é de extrema importância sua leitura e entendimento.

No que tange ao versionamento foi definido a implementação de monorepository, isso significa que a API e o APP são versionando no mesmo repositório. O padrão de commits utilizado foi o conventional commits pattern .

O sistema foi dividida em dois serviços, o serviço Frontend (APP) e o serviço Backend (API) e todas as aplicações utilizam `NodeJs`.

O APP foi construido utilizando o framework `React`.

A API foi construida utilizando o framework `NestJS`, no padrão `Controller-Service-Repository` utilizando um bando de dados SQL via framework `Prisma`.

Ademais, o software tambem tem suporte para utilização no `Docker`.

* O sistema `não foi desenvolvido para variação da unidade de medida` sendo fixa em kWh `e tambem não suportando variação de Moeda` sendo fixa em Reais.

* O sistema `não possui função de orednação por parte do usuário`.

* Ao que tange a parte de Upload e Download das faturas, em algum momento `esta havendo pequenas perdas de informações deixando o PDF sem as imagens da empresa` e o codigo de barra.

* Outro ponto importante, são os testes que foram feitos apenas no APP em `Components` e `Services` , podendo ser encontrados em **/test e executados dentro da pasta ./app rodando o comando `npm run test`.

* Ao inicializar o comando de test pressione a tecla a e ele executará todos os testes.


preview test




INICIALIZANDO

> Você pode assistir o video onde faço tudo do zero: https://youtu.be/MPFh42cN0V4

Para inicializar o projeto, certifique-se que você tenha os devidos pré requisitos antes de executar os comandos de inicialização.

```
- Docker version ^23.0.5, build bc4487a.
- Nodejs version 18.0.0.
```
> **!Note** que não é necessário ter o Docker, mas essa documentação, inicialmente, será feita baseando-se apenas nele.

Feitas as devidas verificações dos pré requisitos, depois você `terá que criar os .env em cada serviço APP e API`,
podendo deixa-los vazios pois as únicas variáveis necessárias o docker compose já faz a inserção na composição.

.env da API e APP, respectivamente:
```bash
DATABASE_URL='postgres://admin:admin@localhost:5432/invoice-production'
```
```bash
REACT_APP_API_URL='http://localhost:5000'
```

Agora você precisará executar alguns comandos para preparar o ambiente.

O primeiro comando, referece a instalação das dependencias e o segundo faz todo o trabalho de construir as imagens e montar todo o ecossistema da aplicação.

Na pasta raiz do projeto _onde estão o APP e API_ execute os seguintes comandos.

```bash
npm run deps
npm run dck:compose
```

> **!Note** Pode haver um erro ao executar o comando de compose dizendo que o comando docker compose não foi encontrado, neste caso tente rodar esse comando `npm run dck:composev2`.



Se não ocorreu nenhum erro, no Windows você pode acessar a interface e verá algo parecido com isso:


preview docker

Imagem do Docker mostrando os serviços ativos


Apos realizar todas essas operações, você poderá acessar atráves do endereço http://localhost:3000/



ACESSAR APLICAÇÃO