Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/felipecezar01/back-api-cars
A project led by me, Felipe Cezar, and my colleague Cauã Galdencio, using Java, Spring, Swagger, PostgreSQL, IntelliJ, for an automotive retail system.
https://github.com/felipecezar01/back-api-cars
api-rest java mvc postman spring-boot swagger
Last synced: 1 day ago
JSON representation
A project led by me, Felipe Cezar, and my colleague Cauã Galdencio, using Java, Spring, Swagger, PostgreSQL, IntelliJ, for an automotive retail system.
- Host: GitHub
- URL: https://github.com/felipecezar01/back-api-cars
- Owner: felipecezar01
- Created: 2024-10-05T16:28:52.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-25T20:16:29.000Z (4 months ago)
- Last Synced: 2024-12-17T19:13:40.247Z (about 2 months ago)
- Topics: api-rest, java, mvc, postman, spring-boot, swagger
- Language: Java
- Homepage:
- Size: 74.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sistema de Gestão de Loja de Carros
Esse é um projeto desenvolvido durante o curso de Análise e Desenvolvimento de Sistemas, na disciplina de Desenvolvimento de Aplicações Corporativas. O objetivo foi aplicar conceitos de desenvolvimento backend e práticas de mercado, usando um sistema corporativo em Java.
## Ferramentas Utilizadas
Para o desenvolvimento do projeto, utilizamos as seguintes tecnologias:
- **Git e GitHub**: Versionamento do código;
- **Postman e Swagger**: Testes e documentação da API;
- **PostgreSQL**: Banco de dados relacional;
- **Java**: Linguagem de programação principal;
- **IntelliJ IDEA**: Ambiente de desenvolvimento integrado (IDE);
- **Arquitetura MVC**: Organização do código seguindo a arquitetura Modelo-Visão-Controlador.![Tools](https://www.dropbox.com/scl/fi/lpc448hk2d05kxmt3jl1i/MVC.png?rlkey=uqrn6iygbfo0ou8dk1s1hoyv2&st=wcvrxrsg&raw=1)
## Sobre o Projeto
Este projeto consiste na criação de uma API para o sistema de uma loja de carros, com foco na construção do backend. O sistema é composto por duas tabelas principais (Carros e Usuários) e implementa funcionalidades de autenticação e autorização, além de criptografia. O sistema permite diferentes níveis de acesso com base no tipo de usuário:
- **Usuários**: possuem permissões limitadas;
- **Admins**: têm acesso total às funcionalidades do sistema.[Imagem das tabelas do banco de dados](#estrutura-do-banco-de-dados)
## Funcionalidades
O sistema conta com as seguintes funcionalidades:
### Autenticação
- A aplicação só permite acesso a usuários autenticados.
### Permissões do Usuário
Uma vez autenticado, o usuário pode:
1. **Registrar-se e Logar**;
2. **Visualizar todos os carros** com filtros de busca;
3. **Atualizar suas próprias informações** de perfil;
4. **Gerar um QR Code** com suas informações pessoais.### Permissões do Admin
O administrador tem permissões mais amplas, incluindo:
1. **Registrar-se e Logar**;
2. **Gerenciar o catálogo de carros** (Criar, Atualizar, Deletar e Listar);
3. **Atualizar informações de outros usuários**;
4. **Gerar QR Codes** com informações de veículos;
5. **Gerar relatórios em PDF** contendo a lista de carros e suas especificações completas.## Estrutura do Banco de Dados
### Tabela Usuários
| Campo | Tipo | Descrição |
|---------------|-------------|----------------------------------|
| id | Integer | Identificador único do usuário |
| email | String | E-mail do usuário |
| name | String | Nome completo |
| password | String | Senha criptografada |
| role | String | Tipo de usuário (user/admin) |
| username | String | Nome de usuário único |### Tabela Carros
| Campo | Tipo | Descrição |
|---------------|-------------|--------------------------------------|
| id | Integer | Identificador único do carro |
| brand | String | Marca do carro |
| city | String | Localização do carro |
| license_plate | String | Placa do carro |
| model | String | Modelo do carro |
| name | String | Nome do carro |
| price | Decimal | Preço do carro |
| year | Integer | Ano de fabricação |
| color | String | Cor do carro |
| kilometers | Integer | Quilometragem do carro |