O MottuGrid Java é uma aplicação completa desenvolvida em Java com Spring Boot para o gerenciamento inteligente de motocicletas em pátios distribuídos por filiais. O sistema oferece uma API REST robusta com interface web integrada, proporcionando controle total sobre o ciclo de vida das motocicletas desde o cadastro até a movimentação entre pátios.
- 🏢 Gerenciamento de Filiais: Cadastro e controle de filiais por cidade/estado
- 🏭 Administração de Pátios: Gestão de pátios vinculados às filiais
- 🏍️ Controle de Motocicletas: CRUD completo com rastreamento de localização
- 🔄 Movimentação de Veículos: Sistema de transferência entre pátios
- 🔐 Sistema de Autenticação: Login seguro com Spring Security
- 📊 Interface Web: Páginas interativas com Thymeleaf
- 📖 Documentação API: Swagger/OpenAPI integrado
Nome | RM | GitHub |
---|---|---|
Pedro Henrique dos Santos | RM559064 | - |
Thiago Thomaz Sales Conceição | RM557992 | - |
Vinícius de Oliveira Coutinho | RM556182 | - |
- Java 17+ - Linguagem de programação
- Spring Boot 3.2.5 - Framework principal
- Spring Data JPA - Persistência de dados
- Spring Security - Autenticação e autorização
- Spring Cache - Cache de dados
- Hibernate - ORM
- Flyway - Versionamento de banco
- Thymeleaf - Template engine
- HTML5/CSS3 - Interface web
- Bootstrap - Framework CSS (implícito)
- Oracle Database - Banco principal
- HikariCP - Pool de conexões
- Swagger/OpenAPI 3 - Documentação da API
- JUnit 5 - Testes unitários
- Spring Boot Test - Testes de integração
- Maven - Gerenciamento de dependências
- Lombok - Redução de boilerplate
- Maven Wrapper - Execução sem instalação do Maven
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ branches │ │ yards │ │ motorcycles │
├─────────────┤ ├─────────────┤ ├─────────────┤
│ id (PK) │◄──┤ branch_id │◄──┤ yard_id │
│ name │ │ id (PK) │ │ id (PK) │
│ city │ │ name │ │ model │
│ state │ └─────────────┘ │ plate │
│ phone │ │ manufacturer│
└─────────────┘ │ year │
└─────────────┘
- Java 17 ou superior
- Acesso ao Oracle Database (FIAP)
- Git
-
Clone o repositório
git clone https://github.com/MottuChallenge/java.git cd java
-
Configure o banco de dados
As configurações já estão definidas em
application.properties
para o ambiente FIAP:spring.datasource.url=jdbc:oracle:thin:@oracle.fiap.com.br:1521:ORCL spring.datasource.username=rm556182 spring.datasource.password=101003
-
Execute as migrações do banco
./mvnw flyway:clean flyway:migrate
-
Inicie a aplicação
./mvnw spring-boot:run
-
Acesse a aplicação
- Interface Web: http://localhost:8080
- API Documentation: http://localhost:8080/swagger-ui/index.html
- Endpoints da API: http://localhost:8080/api/
GET /api/branches
- Listar todas as filiaisGET /api/branches/{id}
- Buscar filial por IDPOST /api/branches
- Criar nova filialPUT /api/branches/{id}
- Atualizar filialDELETE /api/branches/{id}
- Excluir filial
GET /api/yards
- Listar todos os pátiosGET /api/yards/{id}
- Buscar pátio por IDPOST /api/yards
- Criar novo pátioPUT /api/yards/{id}
- Atualizar pátioDELETE /api/yards/{id}
- Excluir pátio
GET /api/motorcycles
- Listar todas as motocicletasGET /api/motorcycles/{id}
- Buscar motocicleta por IDPOST /api/motorcycles
- Cadastrar nova motocicletaPUT /api/motorcycles/{id}
- Atualizar motocicletaDELETE /api/motorcycles/{id}
- Excluir motocicletaPATCH /api/motorcycles/{id}/move
- Mover motocicleta entre pátios
A aplicação possui uma interface web completa acessível em http://localhost:8080
com:
- Dashboard Principal - Visão geral do sistema
- Gestão de Filiais - CRUD completo via formulários
- Gestão de Pátios - Administração de pátios por filial
- Gestão de Motocicletas - Controle completo do estoque
- Sistema de Login - Autenticação segura
Acesse http://localhost:8080/swagger-ui/index.html
para:
- 📋 Visualizar todos os endpoints disponíveis
- 🧪 Testar requisições diretamente no navegador
- 📝 Ver exemplos de request/response
- 🔍 Explorar modelos de dados
src/main/java/br/com/mottugrid_java/
├── controller/ # Controllers REST e Web
├── domainmodel/ # Entidades JPA
├── dto/ # Data Transfer Objects
├── infrastructure/ # Configurações de infraestrutura
├── repository/ # Repositories JPA
└── service/ # Regras de negócio
src/main/resources/
├── db/migration/ # Scripts Flyway
├── templates/ # Templates Thymeleaf
└── application.properties
# Executar todos os testes
./mvnw test
# Executar testes com relatório de cobertura
./mvnw test jacoco:report
A aplicação utiliza cache em memória para otimizar consultas frequentes.
- Autenticação baseada em sessão
- Proteção CSRF habilitada
- Senhas criptografadas com BCrypt
- Migrações versionadas com Flyway
Este projeto foi desenvolvido para fins acadêmicos na FIAP - Faculdade de Informática e Administração Paulista.
Desenvolvido pela equipe MottuGrid