Giter VIP home page Giter VIP logo

hotel-manager's Introduction

Hotel Manager

Projeto que simula uma API de controle de cadastro de hóspedes e realização de check-in e check-out.

💻 Pré-requisitos para executá-lo em seu ambiente local.

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.

🐳 Instalando o Hotel Manager via Docker

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.

🚀 Instalando o Hotel Manager em ambiente local

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

☕ Usando o Hotel Manager

Para levantar a aplicação, execute mvn spring-boot-run

Para realizar chamadas REST à API, temos as seguintes rotas:

📝 Para inserir um hóspede:

URL: http://<host>:<porta>/guests/save

Verbo: POST

Corpo da requisição: { "cpf": <CPF válido*>, "name": <nome>, "phone": <n° de telefone>" } JSON

🔎 Para listar todos os hóspedes cadastrados

URL: http://<host>:<porta>/guests

Verbo: GET

Corpo da requisição: N/A

🔎 Para buscar um hóspede por CPF, nome ou n° de telefone

URL: http://<host>:<porta>/guests/<cpf | name | phone>/<cpf | nome | n° de telefone>

Verbo: GET

Corpo da requisição: N/A

📝 Para atualizar dados de um hóspede:

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

❌ Para deletar um hóspede do sistema:

URL: http://<host>:<porta>/guests/delete/<CPF do hóspede>

Verbo: DELETE

Corpo da requisição: N/A

✅ Para realizar um Check-in (Criar uma estadia):

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

✅ Para realizar um Check-out:

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

🔎 Para listar todos os check-ins (estadias) já feitos no sistema

URL: http://<host>:<porta>/stays

Verbo: GET

Corpo da requisição: N/A

🔎 Para buscar uma estadia pelo Id

URL: http://<host>:<porta>/stays/<id>

Verbo: GET

Corpo da requisição: N/A

🔎 Para listar todos os hóspedes que estão no hotel

URL: http://<host>:<porta>/stays/currentGuests

Verbo: GET

Corpo da requisição: N/A

🔎 Para listar todos os hóspedes que possuem pelo menos uma estadia no hotel (ex-hóspedes)

URL: http://<host>:<porta>/stays/formerGuests

Verbo: GET

Corpo da requisição: N/A

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.