Skip to content

API REST: Controle Financeiro através de faturas. Desenvolvida em NodeJS com Typescript e MongoDB (utilizando-se do ODM Mongoose). Testada com Jest.

License

Notifications You must be signed in to change notification settings

freirart/desafio-tecnico-music-playce

Repository files navigation

REST API - Controle Financeiro

TL;DR: API Documentation

Proposta

Desafio técnico proposto pela MusicPlayce - plataforma brasileira para publicação de músicas e composições inéditas fundada em 2018 - cuja proposta era desenvolver uma solução de controle financeiro que detivesse de um sistema de autorização baseado em token.

A aplicação consiste em uma API REST desenvolvida em NodeJS com Typescript. Utiliza-se do Banco Não Relacional MongoDB e seu método de autorização é baseado no JWT (JSON Web Token).

Tecnologias

Arquitetura da aplicação

Segurança

Testes

Deploy

A aplicação está disponibilizada gratuitamente pela Heroku no endereço:

https://desafio-tecnico-mp.herokuapp.com/

Por ser uma hospedagem gratuita, passado um tempo sem receber requisições a aplicação entra em estado de "hibernação", demorando mais que o comum para responder (na primeira requisição somente).

Certifique-se que a aplicação esteja "acordada" antes de rodar testes ou consumir endpoints acessando o endereço acima. Ao acessar, você deverá receber um JSON contendo um erro informando que o endpoint em questão é inválido e o link para a documentação oficial da aplicação.

Modo de usar

Para obter o código fonte da aplicação em sua máquina é necessário ter instalado o Node e um gerenciador de pacotes da sua preferência (npm e yarn são os principais atualmente).

Execute o seguinte comando em seu terminal para verificar se já os possui:

$ node -v
$ npm -v // OU yarn -v

Se uma mensagem de erro aparecer, o node e/ou o gerenciador de pacotes não está(ão) instalado(s).

  • Clique aqui para baixar a última versão estável do Node (escolher a opção LTS, o npm vem junto).
  • (opcional) Clique aqui para baixar o yarn.

Com o gerenciador de pacotes de sua preferência e o Node instalados, basta digitar os seguintes comandos no CLI do Git ou em seu terminal:

$ git clone https://github.com/freirart/desafio-tecnico-music-playce.git/
$ cd desafio-tecnico-music-playce/
$ npm install // OU yarn install

Consumindo Endpoints

O consumo dos endpoins são baseados nas requições enviadas ao endereço onde a aplicação está disponibilizada:

https://desafio-tecnico-mp.herokuapp.com/

Executar localmente a aplicação com npm start ou npm run dev é impossível uma vez que se observa a inexistência de variáveis de ambiente que contêm informações sigilosas, tais como senhas de acesso ao banco de dados ou segredos de encriptação.

Clique aqui para descobrir os endpoints disponíveis!

Testando a aplicação

Para testar a aplicação é necessário ter o MongoDB instalado em sua máquina.

Para verificar se o possui, rode o seguinte comando:

$ mongo --version

Caso não o possua, clique neste link para baixar a versão gratuita (Community).

Se estiver enfrentando problemas ao executar o comando mongo --version no Sistema Operacional Windows, verifique este tutorial!

Com o Mongo instalado, execute o comando abaixo no diretorio raiz para rodar os testes:

$ npm test

Os testes duram, em média, 40 segundos.

Certifique-se de que a aplicação não está "hibernando" como foi mencionado na seção Deploy, caso contrário o teste falhará.

Licença MIT

Direitos Reservados 2020 Artur Freire

Permissão é garantida por este meio, livre de ônus, para qualquer pessoa que obtenha uma cópia desde software e arquivos de documentação associados, para lidar com o Software sem restrições, incluindo nenhuma limitação de direitos de uso, cópia, modificação, fusão, publicação, distribuição, sublicenciamento, e/ou venda de cópias do Software, e para permitir que pessoas a quem foi fornecido o Software façam o mesmo, sujeitos às seguintes condições:

A nota de direitos reservados acima, e a nota de permissão devem ser incluídas em todas as cópias ou porções substanciais do Software.

O SOFTWARE É FORNECIDO “COMO É”, SEM QUALQUER TIPO DE GARANTIAS, EXPRESSA OU IMPLÍCITA, INCLUINDO PORÉM AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUADAS PARA UM DETERMINADO PROPÓSITO E NÃO VIOLAÇÃO. EM NENHUMA HIPÓTESE DEVERÃO OS AUTORES OU DETENTORES DOS DIREITOS AUTORAIS SEREM RESPONSÁVEIS POR ALGUMA RECLAMAÇÃO, DANO OU OUTRA SUSCETIBILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTES, DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS AÇÕES DO SOFTWARE.