Giter VIP home page Giter VIP logo

mateusngf / invoices Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.38 MB

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.

JavaScript 61.84% Dockerfile 0.62% TypeScript 22.75% HTML 2.91% CSS 11.89%
docker nest nodejs postgresql react

invoices's Introduction

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:

DATABASE_URL='postgres://admin:admin@localhost:5432/invoice-production'
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.

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/



invoices's People

Contributors

mateusngf avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.