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.
- Definições do Projeto
- Features
- Requisitos
- Banco de dados
- Iniciar API localmente
- Testes
- Documentação
- Issues
- Autor
As definições de projeto estão aqui :
- 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
Deve ter instalado em um computador as versões minimas abaixo:
Node Js 12
Npm 6
Docker 19
Docker Compose 3.8
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.
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)
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 rodam utilizando a biblioteca Mocha.
Os testes estão estruturados em duas partes:
- Testes Unitário (tests/unit)
- Teste de Integração (tests/integration)
Para rodar os testes utilize o comando abaixo :
$ npm test
Para rodar a cobertura de testes utilize o comando abaixo :
$ npm run coverage
Documentação online da Reservation API aqui
Documentação da API em swagger http://localhost:3000/docs.
- necessário que a api estaja rodando localmente
Débito Técnico : Cadastro de Produtos