Projeto que simula uma API de controle de cadastro de hóspedes e realização de check-in e check-out.
Antes de começar, verifique se você atendeu aos seguintes requisitos:
- Você possui o
Java 8
instalado - Você possui o
Maven
instalado - Você possui um esquema de banco de dados
MySQL
Caso não vá instalar via Docker, verifique se:
- Você possui a variável de ambiente
CLEARDB_DATABASE_URL
definida. - Você possui a variável de ambiente
HOTEL_MANAGER_DATABASE_USERNAME
definida. - Você possui a variável de ambiente
HOTEL_MANAGER_DATABASE_PASSWORD
definida.
Antes de começar, verifique se você atendeu aos seguintes requisitos:
- Você possui o
Docker
instalado - Você possui o
docker-compose
instalado
Para instalar o Hotel Manager em um contêiner docker, siga estas etapas:
Clone o projeto para o seu ambiente local:
-
Selecione o diretório desejado em seu computador e execute
git clone https://github.com/Agostinh0/hotel-manager.git
. -
Dentro do diretório do projeto clonado, execute
docker-compose up
e aguarde alguns minutos até que o contêiner seja criado e inicie a execução
Nota: Esse mecanismo ainda está em processo de melhoria.
Durante a primeira execução do docker-compose up, você pode se deparar com
uma mensagem avisando que o Hotel Manager não conseguiu se conectar ao banco de dados.
Isso acontece porque o banco de dados MySQL presente no contêiner leva um pouco mais de tempo
do que o esperado para estar pronto para aceitar conexões.
É esperado que, após a primeira reinicialização automática, o Hotel Manager consiga se conectar
ao banco de dados normalmente.
Para instalar o Hotel Manager em seu ambiente local, siga estas etapas:
Clone o projeto para o seu ambiente local:
- Selecione o diretório desejado em seu computador e execute
git clone https://github.com/Agostinh0/hotel-manager.git
.
E para gerar uma build do projeto:
- Execute dentro do diretório do projeto
mvn clean install
Para levantar a aplicação, execute mvn spring-boot-run
Para realizar chamadas REST à API, temos as seguintes rotas:
URL: http://<host>:<porta>/guests/save
Verbo: POST
Corpo da requisição: { "cpf": <CPF válido*>, "name": <nome>, "phone": <n° de telefone>" }
JSON
- Você pode gerar um CPF para teste aqui: https://www.4devs.com.br/gerador_de_cpf
URL: http://<host>:<porta>/guests
Verbo: GET
Corpo da requisição: N/A
URL: http://<host>:<porta>/guests/<cpf | name | phone>/<cpf | nome | n° de telefone>
Verbo: GET
Corpo da requisição: N/A
URL: http://<host>:<porta>/guests/update?cpf=<cpf do hóspede a editar>&name=<novo nome>&phone=<novo telefone>
Verbo: PUT
Corpo da requisição: N/A
URL: http://<host>:<porta>/guests/delete/<CPF do hóspede>
Verbo: DELETE
Corpo da requisição: N/A
URL: http://<host>:<porta>/stays/checkIn
Verbo: POST
Corpo da requisição: { "guest": { "cpf": <CPF do hóspede>, "name": <nome>, "phone": <n° de telefone> }, "roomId": <número do quarto>, "checkInDateTime": "<data e hora do check-in *>", "garageNeeded": <true | false> }
JSON
- Formato de datas =
yyyy-MM-ddTHH:mm
URL: http://<host>:<porta>/stays/checkOut?stayId=<Id da estadia (check-in)>&checkOutDateTime=<data e hora do check-out>
Verbo: PUT
Corpo da requisição: N/A
- Formato de datas =
yyyy-MM-ddTHH:mm
URL: http://<host>:<porta>/stays
Verbo: GET
Corpo da requisição: N/A
URL: http://<host>:<porta>/stays/<id>
Verbo: GET
Corpo da requisição: N/A
URL: http://<host>:<porta>/stays/currentGuests
Verbo: GET
Corpo da requisição: N/A
URL: http://<host>:<porta>/stays/formerGuests
Verbo: GET
Corpo da requisição: N/A