Car Management API é um projeto que fornece uma API RESTful para gerenciar informações sobre carros e usuários. Ele inclui funcionalidades como cadastro, consulta, atualização e remoção de carros, bem como autenticação de usuários com diferentes níveis de permissão.
- Cadastro de Carros: Permite cadastrar carros com informações detalhadas.
- Consulta de Carros: Possibilita buscar carros cadastrados com filtros específicos.
- Atualização de Carros: Atualiza informações de carros existentes.
- Remoção de Carros: Remove carros do sistema.
- Gerenciamento de Usuários: Cadastro, autenticação e gerenciamento de usuários.
- Criptografia: Os dados são criptografados antes de serem armazenados no banco de dados.
- Autenticação: Uso de autenticação para proteger as operações da API.
- Controle de Acesso: Diferencia permissões entre usuários comuns e administradores.
- Paginação e limitação de registros exibidos: Para o método que lista todos os carros é realizado uma limitação da quantidade de dados exibidos.
- Java 17
- Spring Boot 3.3.3
- Spring Security para autenticação e autorização
- JPA/Hibernate para persistência de dados
- PostgreSQL como banco de dados
- MongoDB para armazenar imagens e informações relacionadas
- Maven como gerenciador de dependências
- JUnit e Mockito para testes automatizados
- Swagger para documentação da API
- Java 17 ou superior
- Maven instalado
- PostgreSQL e MongoDB em execução
- Git para clonar o repositório
-
Clone o repositório:
git clone https://github.com/Leonardobern10/Car-management-api.git
-
Navegue até o diretório do projeto:
cd Car-management-api -
Configure o banco de dados PostgreSQL:
- Crie um banco de dados chamado
car_management. - Atualize as configurações em
src/main/resources/application.propertiescom as credenciais do seu banco de dados.
- Crie um banco de dados chamado
-
Configure o MongoDB:
- Certifique-se de que o MongoDB esteja em execução.
- Atualize as configurações do MongoDB em
application.propertiesse necessário.
-
Compile e instale as dependências do projeto com Maven:
mvn clean install
-
Execute o projeto:
mvn spring-boot:run
-
A documentação da API está disponível através do Swagger em:
http://localhost:8080/swagger-ui.html -
Endpoints:
- Carros:
GET /cars: Lista todos os carros.POST /cars: Cadastra um novo carro (apenas administradores).PUT /cars/{id}: Atualiza um carro existente (apenas administradores).DELETE /cars/{id}: Remove um carro (apenas administradores).
- Usuários:
POST /users/create: Cria um novo usuário.POST /auth/login: Autentica um usuário e retorna um token JWT.
- Carros:
Contribuições são bem-vindas! Para contribuir com este projeto, siga os passos abaixo:
- Faça um fork do projeto.
- Crie uma nova branch para a sua feature:
git checkout -b minha-feature
- Faça commit das suas alterações:
git commit -m 'Adicionando nova feature' - Envie para o repositório remoto:
git push origin minha-feature
- Abra um Pull Request.
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
- Nome: Leonardo Bernardo
- LinkedIn: linkedin.com/in/leonardobern10
- Email: leonardo.bernardo2658@gmail.com