Este é um projeto de Trabalho de Conclusão de Curso (TCC) que implementa um sistema completo de aluguel de motos. O sistema permite que usuários comuns façam reservas de motos, visualizem planos de aluguel e gerenciem suas reservas. Além disso, inclui um painel administrativo para gerenciar motos, usuários, planos e relatórios de aluguel.
O projeto é dividido em duas partes principais:
- Frontend: Interface web responsiva desenvolvida com HTML, CSS e JavaScript puro.
- Backend: API REST desenvolvida em Java utilizando Spring Boot.
- Cadastro e login de usuários
- Visualização de motos disponíveis
- Detalhes das motos (marca, modelo, cilindrada, etc.)
- Seleção de planos de aluguel
- Reserva de motos com datas de retirada
- Visualização de reservas ativas e históricas
- Relatórios de aluguel
- Perfil do usuário
- Dashboard com estatísticas
- Gerenciamento de motos (cadastrar, editar, remover)
- Gerenciamento de usuários (visualizar, editar status)
- Gerenciamento de planos de aluguel
- Relatórios de aluguel e reservas
- Controle de permissões
- Java 17
- Spring Boot 3.4.5
- Spring Data JPA para persistência de dados
- Spring Security para autenticação e autorização
- JWT (JSON Web Tokens) para gerenciamento de sessões
- MySQL como banco de dados
- Lombok para redução de código boilerplate
- Maven para gerenciamento de dependências
- HTML5
- CSS3 (com estilos responsivos)
- JavaScript (ES6+)
- Estrutura organizada em módulos
- MySQL 8.0
- Scripts de inicialização em
data.sql
TCC-Aluguel-de-motos/
├── frontend/ # Interface web
│ ├── Admin/ # Páginas administrativas
│ │ ├── css/
│ │ ├── html/
│ │ └── javascript/
│ └── Publico/ # Páginas públicas
│ ├── css/
│ ├── html/
│ ├── img/
│ └── javascript/
├── RideMoto/ # Backend Java
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/InoDev/ # Código fonte Java
│ │ │ └── resources/ # Configurações e dados
│ │ └── test/ # Testes
│ ├── target/ # Arquivos compilados
│ ├── pom.xml # Dependências Maven
│ └── mvnw # Wrapper Maven
└── README.md # Este arquivo
Antes de executar o projeto, certifique-se de ter instalado:
- Java 17 ou superior
- Maven 3.6+ (ou use o wrapper
mvnwincluído) - MySQL 8.0 ou superior
- Git para clonar o repositório
git clone https://github.com/JoaoLucasdCB/TCC-Aluguel-de-motos.git
cd TCC-Aluguel-de-motos- Instale e inicie o MySQL
- Crie um banco de dados chamado
RideMoto:CREATE DATABASE RideMoto;
- Opcionalmente, ajuste as credenciais no arquivo
RideMoto/src/main/resources/application.properties:spring.datasource.username=seu_usuario spring.datasource.password=sua_senha
-
Navegue até a pasta do backend:
cd RideMoto -
Execute o projeto com Maven:
./mvnw spring-boot:run
Ou, se estiver no Windows:
mvnw.cmd spring-boot:run
-
O servidor iniciará na porta 8080 (http://localhost:8080)
- Abra o navegador
- Navegue até as páginas HTML no diretório
frontend/Publico/html/oufrontend/Admin/html/ - Para desenvolvimento local, você pode servir os arquivos estáticos ou usar uma extensão do VS Code como "Live Server"
- Um usuário administrador é criado automaticamente com o email
admin@admin.come senhaadmin123 - Faça login como administrador para acessar o painel admin
- Acesse a página inicial (
landing.html) - Faça cadastro ou login
- Visualize as motos disponíveis (
motos.html) - Selecione um plano (
planos.html) - Faça uma reserva (
aluguel.html) - Visualize suas reservas (
minhas-reservas.html)
O backend fornece uma API REST com os seguintes endpoints principais:
POST /api/auth/login- AutenticaçãoGET /api/motos- Listar motosPOST /api/reservas- Criar reservaGET /api/admin/dashboard- Dados do dashboard (admin)- E outros endpoints para CRUD completo
cd RideMoto
./mvnw testcd RideMoto
./mvnw clean packageO banco de dados inclui as seguintes tabelas principais:
usuarios- Dados dos usuáriosmotos- Informações das motosplanos- Planos de aluguelreservas- Reservas realizadasaluguel- Registros de aluguel ativolocalizacao- Locais de retirada/devoluçãoadmins- Dados específicos de administradores
Os dados iniciais são populados através do arquivo data.sql.
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto é parte de um Trabalho de Conclusão de Curso e não possui licença específica para distribuição comercial.
João Lucas - JoaoLucasdCB
- Orientador do TCC
- Comunidade Spring Boot
- Documentação oficial das tecnologias utilizadas