Plataforma web de gestão de viagens com reservas, pagamentos e vendas.
Projeto acadêmico desenvolvido na disciplina de Engenharia de Software.
O Projeto VVV é uma aplicação web desenvolvida em Spring Boot 4 com interface Thymeleaf. O sistema gerencia o ciclo completo de viagens, incluindo:
- cadastro e autenticação de usuários
- controle de clientes, funcionários e transportadoras
- gestão de cidades, pontos de venda e modais de transporte
- criação e consulta de reservas e rotas
- emissão de tickets e processamento de pagamentos
A aplicação combina páginas server-side com APIs REST para atender diferentes cenários de uso.
- Autenticação e cadastro de clientes e funcionários
- Dashboard administrativo
- Gestão de clientes, funcionários, transportadoras, modais e pontos de venda
- Cadastro e consulta de cidades, rotas e reservas
- Emissão de tickets
- Processamento de pagamentos e cancelamento de transações
- Aprovação de vendas online
- Java 21
- Spring Boot 4.0.5
- Spring MVC
- Thymeleaf
- Spring Data JPA
- Spring Security
- PostgreSQL
- H2 (testes)
- Maven
- Docker / Docker Compose
Projeto-VVV/
└── demo/
├── pom.xml
├── docker-compose.yaml
├── dockerfile
├── mvnw
├── mvnw.cmd
└── src/
├── main/
│ ├── java/com/projectvvv/
│ │ ├── DemoApplication.java # Classe principal
│ │ └── domain/
│ │ ├── controller/ # Controllers REST e de página
│ │ ├── dto/ # Objetos de transferência de dados
│ │ ├── exception/ # Tratamento de erros
│ │ ├── model/ # Entidades de domínio
│ │ ├── repository/ # Repositórios JPA
│ │ └── service/ # Lógica de negócio
│ └── resources/
│ ├── application.properties # Configurações da aplicação
│ └── templates/ # Views Thymeleaf
└── test/
└── java/ # Testes unitários e de integração
O arquivo de configuração principal está em demo/src/main/resources/application.properties.
spring.application.name=demo
spring.datasource.url=jdbc:postgresql://localhost:5432/projectvvv
spring.datasource.username=admin
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialectAjuste os valores de conexão conforme seu ambiente local.
cd demo
docker compose up --buildAbra no navegador:
http://localhost:8080
Para encerrar:
docker compose downcd demo
./mvnw clean spring-boot:runcd demo
.\mvnw.cmd spring-boot:run "-Dmaven.test.skip=true"Ou, se você tiver Maven instalado:
cd demo
mvn clean spring-boot:runExecutar todos os testes:
cd demo
./mvnw testExecutar um único teste:
cd demo
./mvnw -Dtest=NomeDaClasseTest testO projeto usa
spring-boot-webmvc-testespring-boot-data-jpa-testpara suportar os testes do Spring Boot 4.
/— Página inicial/dashboard— Dashboard/auth/login— Login/auth/cadastro-cliente— Cadastro de cliente/auth/cadastro-funcionario— Cadastro de funcionário/cidades— Gestão de cidades/gerente/funcionarios— Gestão de funcionários/funcionario/clientes— Gestão de clientes/transportadoras— Gestão de transportadoras/pontos-venda— Gestão de pontos de venda/modais— Gestão de modais/reservas/nova— Nova reserva/reservas/consultar— Consulta de reservas/reservas/detalhe— Detalhe de reserva/tickets— Gestão de tickets/vendas-online/aprovacao— Aprovação de vendas online
/api/cidades/api/clientes/api/funcionarios/api/modais/api/pontos-venda/api/pagamentos/api/transportadoras/api/reservas/api/rota/api/rota-da-reserva/api/tickets
- Combina controllers de interface (
@Controller) e APIs REST (@RestController). - PostgreSQL é o banco principal; H2 é usado apenas nos testes.
- Projeto com foco acadêmico para demonstrar fluxo de gestão de viagens.
Licenciado sob MIT License.