Giter Site home page Giter Site logo

greenacessobackend's Introduction

Candidato Dev. Renan Torres

Trabalho do Renan Torres para o processo seletivo da Green Acesso na vaga de Backend Nodejs Pleno.

Tecnologias

Node Js

Nest Js

TypeScript

mySQL

Prisma ORM

docker

Descrição

Green Acesso Teste do processo seletivo para vaga de Backend Nodejs na Green Acesso.

Pré-requisitos

Para rodar o app é preciso ter o Docker e o seu pluguin Docker-compose.

Verifique se as portas 3000 e 3306 da sua máquina estão liberadas. O app irá rodar na 3000 e o BD na 3306

Lista dos Desafios Propostos pelo processo seletivo

  • Prazo: 4 dias corridos. Data final: 23:59 de 15/07/2023
  • Atividade 1: Receber arquivo csv do síndico e converter os dados para db
  • Atividade 2: Tratar as diferenças entre os dados da Portaria e do Financeiro
  • Atividade 3: Receber o pdf de boletos na ordem proposta pelo síndico e salvar em arquivos separados com nome pelo id.
  • Atividade 4: Criar endpoint para receber o boletos
  • Ativedade 4 extra: Criar opções de filtro no get boletos
  • Atividade 5: Criar opção relatório para gerar um retorno em base64 com a tabela de boletos
  • Extras propostos por mim: Documentação
  • Extras propostos por mim: Refatorações com aplicação de Princíos SOLID
  • Extras propostos por mim: Utilização do NestJs
  • Extras propostos por mim: Utilização do ORM Prisma
  • Extras propostos por mim: Testes unitários

Instalação

Download do app pelo git

$ git clone https://github.com/engRenanTorres/greenAcessoBackend.git

Edite o nome do arquivo .env.exemple. Retire o '.exemple'. Ficando só .env

Copie os arquivos boleto.pdf e boleto.csv localizados na raíz do projeto para enviar nas API das atividades sugeridas.

$ docker-compose up --build
  • É possível que dê erro na ao rodar pela primeira vez, pois o app pode subir enquanto o banco de dados ainda está carregando as informações iniciais.

  • Se houver erro procurando pacotes do prisma, teste dar um npm install antes de rodar o container.

Rodando o app

Pode utilizar as apis pela própria documentação swagger.

O arquivo de boletos em csv enviado pelo síndico se encontra na raís do projeto com nome de boletos.csv

O arquivo de boletos em pdf enviado pelo síndico se encontra na raís do projeto com nome de boletos.pdf

Os arquivos pdf salvos ficam na pasta uploads/boletos

Siga a documentação para rodar o API. Coloquei os nomes sugeridos para evitar conflitos.

# development
# A documentação ficará disponível em localhost:3000/api-docs
# Pode gerenciar o bd pelo prisma client em localhost:5555
# ou pelo phpmyadmin pelo localhost:8081
# usuario root senha dbgreen

Rodando o app fora do container

Se achar um modo mais fácil encontrar os arquivos de upload, você pode rodar o app fora do container.

Primeiro você terá que alterar no arquivo .env, comentando o endereço do banco de dados.

Em seguida, no mesmo arquivo, descomente o endereço do banco de dados com o localhost.

Para isso, utilize os seguintes comandos:

npm i
npm run build
npm -r nome_modules
npm i --omit=dev #instala apenas os pacotes de produção.
npx prisma generate #para rodar as migrations iniciais e gerar as tabelas iniciais
npm run start

Pode utilizar as apis pela própria documentação swagger.

O arquivo de boletos em csv enviado pelo síndico se encontra na raís do projeto com nome de boletos.csv

O arquivo de boletos em pdf enviado pelo síndico se encontra na raís do projeto com nome de boletos.pdf

Os arquivos pdf salvos ficam na pasta uploads/boletos

Siga a documentação para rodar o API. Coloquei os nomes sugeridos para evitar conflitos.

# development
# A documentação ficará disponível em localhost:3000/api-docs
# Pode gerenciar o bd pelo prisma client em localhost:5555
# ou pelo phpmyadmin pelo localhost:8081
# usuario root senha dbgreen

Testes

# em andamento

Suporte

Só me procurar meu linkedin.

Stay in touch

greenacessobackend's People

Contributors

engrenantorres 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.