An open API service indexing awesome lists of open source software.

https://github.com/isinhah/api-reserva-voos

API REST desenvolvida para um sistema de reserva de passagens aéreas, em que os clientes podem reservar assentos e obter tickets
https://github.com/isinhah/api-reserva-voos

java spring-boot

Last synced: 11 months ago
JSON representation

API REST desenvolvida para um sistema de reserva de passagens aéreas, em que os clientes podem reservar assentos e obter tickets

Awesome Lists containing this project

README

          

# ✈️ Sistema de Reserva de Passagens Aéreas

## 📄 Descrição

API REST desenvolvida para gerenciar a reserva de passagens aéreas. Através desta API, passageiros podem buscar voos disponíveis, reservar assentos e obter tickets para suas reservas.

---

## ⚙️ Funcionalidades

- **Busca de voos**: Passageiros podem pesquisar voos disponíveis com base em critérios específicos.
- **Seleção de assentos**: Permite a visualização e escolha de assentos disponíveis em um voo.
- **Criação de reservas**: Possibilita a criação de uma reserva associando o assento e o voo escolhidos.
- **Geração automática de tickets**: Um ticket é gerado automaticamente após a confirmação da reserva, incluindo detalhes importantes.
- **Consulta de tickets**: Passageiros podem consultar informações sobre seus tickets a qualquer momento.

---

## 🛠️ Tecnologias

- **Linguagem**: Java
- **Framework**: Spring Boot (Web, JPA, Security)
- **Gerenciador de Dependências**: Maven
- **Banco de Dados**: PostgreSQL
- **Migração de Banco**: Flyway Migrations
- **Segurança**: Java JWT
- **Testes**: JUnit 5, Mockito
- **Documentação da API**: SpringDoc

---

## 📝 Endpoints

**Documentação local**: http://localhost:8080/swagger-ui/index.html

---

## 📈 Diagramas

    Diagrama de Classes
    Diagrama de Classes

    Diagrama de Entidade e Relacionamento
    Diagrama de Entidade e Relacionamento

---

## 🗂️ Imagens do Projeto

    Voos
    Voos

    Assentos
    Assentos

    Reservas
    Reservas

    Tickets
    Tickets

---

## ➡️ Fluxo da Aplicação

1. O passageiro busca voos disponíveis.
2. O passageiro seleciona um voo e consulta os assentos disponíveis.
3. O passageiro cria uma reserva informando o ID do voo e o ID do assento.
4. A disponibilidade do assento é atualizada e um ticket é gerado automaticamente com os dados da reserva.
5. O passageiro consulta o ticket utilizando o ID da reserva.

---

## ⚙️ Configuração e Execução

**Pré-requisitos**:

- **Java 17**
- **Maven**
- **PostgreSQL**

**Passos para Configuração**:

1. Clone o repositório
2. Acesse o diretório do projeto
3. Configure o banco de dados no arquivo `application.yml` (URL, usuário, senha)

```bash
# Executar a aplicação
mvn spring-boot:run

# Para parar a aplicação, pressione Ctrl + C no terminal.
```

---

## 🙋‍♀️ Autor

👩‍💻 Projeto desenvolvido por [Isabel Henrique](https://www.linkedin.com/in/isabel-henrique/)

🤝 Fique à vontade para contribuir!