Skip to content

01JoaoLucasDev/TCC-RideMoto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCC-Aluguel-de-motos

Descrição

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.

Funcionalidades

Para Usuários Comuns:

  • 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

Para Administradores:

  • 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

Tecnologias Utilizadas

Backend:

  • 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

Frontend:

  • HTML5
  • CSS3 (com estilos responsivos)
  • JavaScript (ES6+)
  • Estrutura organizada em módulos

Banco de Dados:

  • MySQL 8.0
  • Scripts de inicialização em data.sql

Estrutura do Projeto

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

Pré-requisitos

Antes de executar o projeto, certifique-se de ter instalado:

  • Java 17 ou superior
  • Maven 3.6+ (ou use o wrapper mvnw incluído)
  • MySQL 8.0 ou superior
  • Git para clonar o repositório

Instalação e Configuração

1. Clonagem do Repositório

git clone https://github.com/JoaoLucasdCB/TCC-Aluguel-de-motos.git
cd TCC-Aluguel-de-motos

2. Configuração do Banco de Dados

  1. Instale e inicie o MySQL
  2. Crie um banco de dados chamado RideMoto:
    CREATE DATABASE RideMoto;
  3. Opcionalmente, ajuste as credenciais no arquivo RideMoto/src/main/resources/application.properties:
    spring.datasource.username=seu_usuario
    spring.datasource.password=sua_senha

3. Inicialização do Backend

  1. Navegue até a pasta do backend:

    cd RideMoto
  2. Execute o projeto com Maven:

    ./mvnw spring-boot:run

    Ou, se estiver no Windows:

    mvnw.cmd spring-boot:run
  3. O servidor iniciará na porta 8080 (http://localhost:8080)

4. Acesso ao Frontend

  1. Abra o navegador
  2. Navegue até as páginas HTML no diretório frontend/Publico/html/ ou frontend/Admin/html/
  3. Para desenvolvimento local, você pode servir os arquivos estáticos ou usar uma extensão do VS Code como "Live Server"

Como Usar

Primeiro Acesso

  • Um usuário administrador é criado automaticamente com o email admin@admin.com e senha admin123
  • Faça login como administrador para acessar o painel admin

Fluxo Básico para Usuários:

  1. Acesse a página inicial (landing.html)
  2. Faça cadastro ou login
  3. Visualize as motos disponíveis (motos.html)
  4. Selecione um plano (planos.html)
  5. Faça uma reserva (aluguel.html)
  6. Visualize suas reservas (minhas-reservas.html)

API Endpoints

O backend fornece uma API REST com os seguintes endpoints principais:

  • POST /api/auth/login - Autenticação
  • GET /api/motos - Listar motos
  • POST /api/reservas - Criar reserva
  • GET /api/admin/dashboard - Dados do dashboard (admin)
  • E outros endpoints para CRUD completo

Desenvolvimento

Executando Testes

cd RideMoto
./mvnw test

Build do Projeto

cd RideMoto
./mvnw clean package

Estrutura do Banco de Dados

O banco de dados inclui as seguintes tabelas principais:

  • usuarios - Dados dos usuários
  • motos - Informações das motos
  • planos - Planos de aluguel
  • reservas - Reservas realizadas
  • aluguel - Registros de aluguel ativo
  • localizacao - Locais de retirada/devolução
  • admins - Dados específicos de administradores

Os dados iniciais são populados através do arquivo data.sql.

Contribuição

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -am 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Licença

Este projeto é parte de um Trabalho de Conclusão de Curso e não possui licença específica para distribuição comercial.

Autor

João Lucas - JoaoLucasdCB

Agradecimentos

  • Orientador do TCC
  • Comunidade Spring Boot
  • Documentação oficial das tecnologias utilizadas

About

Este projeto é um sistema web desenvolvido como Trabalho de Conclusão de Curso (TCC), com o objetivo de facilitar o processo de aluguel de motocicletas. A aplicação permite que usuários consultem motos disponíveis, realizem reservas, gerenciem aluguéis e acompanhem seus históricos.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors