Git Product home page Git Product logo

desafio-finnet's Introduction

Desafio Finnet

Uma empresa precisa importar faturas por meio de um arquivo CSV e notificar os clientes que ela está disponível para ser paga. Essa empresa necessita agrupar as faturas pelo CPF ou CNPJ do cliente. Para cada fatura agrupada o cliente receberá um email informando que a consolidação dessas faturas está disponível. A empresa pode posteriormente consultar essas faturas disponíveis mediante a autenticação.

Solução

Com base nos requisitos deste projeto, observamos que:

  • Podemos utilizar o MailTrap para fazer o envio dos emails de notificação;
  • Podemos utilizar JWT para fazer a autenticação da empresa;
  • Não precisa ser uma arquitetura/framework robusto para resolver o problema.

Desenho da solução


(Diagrama de Casos de Uso)

Projeto de Dados


(Modelo Lógico do Banco de Dados)

Ferramentas e Tecnologias Utilizadas

Seguindo esses requisitos, iremos trabalhar com as seguintes ferramentas e tecnologias:

  • PHP 7.2
  • Slim 3 Framework
  • Banco de dados SQLite

Nossas dependências:

"slim/slim": "3.*",
"doctrine/orm": "^2.7",
"oscarotero/psr7-middlewares": "^3.21",
"monolog/monolog": "^2.1",
"firebase/php-jwt": "^5.2",
"tuupola/slim-jwt-auth": "^3.4",
"phpmailer/phpmailer": "^6.1"

Instalação com Docker

Baixe a imagem desafio-finnet.tar. Carrege a imagem com esse comando:

docker load -i desafio-finnet.tar

Copie o IMAGE ID da imagem carregada com o comando:

docker images

Cole o IMAGE ID da imagem nesse último comando:

docker run -d -p 8000:8000 <IMAGE ID>

Pronto.

Instalação sem Docker

Para instalar o sistema basta executar os seguintes comandos:

#Baixar o projeto
git clone https://github.com/leonammp/desafio-finnet/
cd desafio-finnet

#Instalar as dependências
composer install

Para executar, na pasta do sistema, vamos criar um servidor php no localhost na porta 8000 com este comando:

php -S localhost:8000

Postman

Agora já está tudo rodando.

No Postman, vamos importar as rotas que iremos utilizar. Siga os passos:

  • Clique em Import;
  • Escolha o arquivo 'desafio-finnet.postman_collection.json' que se encontra nesse link;
  • Pronto.

Rotas

No total, temos 6 rotas na aplicação. Todas elas estão na versão 1 (/v1/).

Para adicionar uma empresa no banco:

Para fazer login:

Para importar o CSV (/public/upload) para o banco de dados:

Para enviar os email notificando os clientes:

Para visualizar as faturas consolidadas por CPF/CNPJ dos clientes:

desafio-finnet's People

Contributors

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