Skip to content

anderolimar/reservation-api

Repository files navigation

Reservation API

Reservation API unit tests status

Api para registro de reservas em geral.

Essa aplicação tem como finalidade o registro de reservar de qualquer natureza, suportando multiplos clientes e produtos de reserva.

Para cada cliente é gerado uma APIKEY, ao qual é necessária para qualquer interação com a aplicação.

As reservas podem ser registradas com data de finalização e status atual da reserva.

Também é possível registrar um histórico referente as interação da reserva.

Por se tratar de um projeto simples, algumas configurações também são simples ao que se refere a segurança. Sendo que em um ambiente real de produção, deveria-se optar por soluções mais robustas quanto a segurança.

🚧 Reservation API 🚀 Em construção... 🚧

Conteúdo


Definições do Projeto

As definições de projeto estão aqui :


Features

  • Cadastro de cliente
  • Listagem de cliente
  • Cadastro de produto
  • Edição de produto
  • Cadastro de reserva
  • Edição de reserva
  • Listagem de reserva
  • Histórico de reserva

Requisitos

Deve ter instalado em um computador as versões minimas abaixo:

Node Js 12

Npm 6

Docker 19

Docker Compose 3.8


Banco de dados

Para banco de dados, será utilizado o Postgres

A bilbioteca para acesso ao banco é o Knex.

As configurações do banco de dados ficam no arquivo knexfile.js

  • em um ambinte de produção as configurações do banco de dados deveria vir de um local mais seguro.

Iniciar API localmente

Como um servidor local

Para rodar como um servidor local, é utilizado o docker-compose que irá criar as imagens docker e iniciará a seguinte estrutura :

  • db: Banco de dados Postgres
  • nginx: Api Gateway para aplicação
  • reservation: API de reservas

O comando abaixo irá rodar o docker-compose, além de rodar as migrations e seed:

$ npm run server

Url Local http://localhost:3000

Para teste local, foi adicionado o nginx para adicionar uma camada de autenticação simples nas rotas /admin com as seguintes credenciais :

Acesso Admin :

user: admin

password: 54321

  • Em um ambiente de produção, deveria-se utilizar uma forma de autenticação mais robusta. (Ex: JWT, Oauth)

Como uma aplicação local

Para rodar como uma aplicaçao local, é utilizado o docker-compose que iniciará o Postgres :

  • db: Banco de dados Postgres

O comando abaixo irá rodar o docker-compose, além de rodar as migrations e seed:

$ npm run local

Url Local http://localhost:3001


Testes

Testes rodam utilizando a biblioteca Mocha.

Estrutura

Os testes estão estruturados em duas partes:

  • Testes Unitário (tests/unit)
  • Teste de Integração (tests/integration)

Rodando testes

Para rodar os testes utilize o comando abaixo :

$ npm test

Rodando cobertura de testes

Para rodar a cobertura de testes utilize o comando abaixo :

$ npm run coverage

Documentação

Documentação online

Documentação online da Reservation API aqui

Documentação swagger para teste

Documentação da API em swagger http://localhost:3000/docs.


Issues

Débito Técnico : Cadastro de Produtos


Autor



Anderson Oliveira


Linkedin Badge Gmail Badge

About

Api para registro de reservas em geral.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published