https://github.com/jvictornascimento/springboot-backend-ecommerce
Este projeto é um backend para um sistema de e-commerce desenvolvido com Java e Spring Boot. Ele fornece funcionalidades essenciais como cadastro de produtos, usuários, pedidos e muito mais.
https://github.com/jvictornascimento/springboot-backend-ecommerce
java lombok maven model-mapper mysql spring-boot
Last synced: 3 months ago
JSON representation
Este projeto é um backend para um sistema de e-commerce desenvolvido com Java e Spring Boot. Ele fornece funcionalidades essenciais como cadastro de produtos, usuários, pedidos e muito mais.
- Host: GitHub
- URL: https://github.com/jvictornascimento/springboot-backend-ecommerce
- Owner: jvictornascimento
- Created: 2025-06-04T02:52:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-05T02:29:16.000Z (about 1 year ago)
- Last Synced: 2025-06-13T14:16:26.443Z (about 1 year ago)
- Topics: java, lombok, maven, model-mapper, mysql, spring-boot
- Language: Java
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Spring Boot Backend Ecommerce




## Resumo do Projeto
Este projeto é um backend para um sistema de e-commerce desenvolvido com Java e Spring Boot. Ele fornece funcionalidades essenciais como cadastro de produtos, usuários, pedidos e muito mais.
## Diagrama de Classe
```mermaid
classDiagram
class User {
- id : Long
- email : String
- firstName : String
- lastName : String
- password : String
- cart : Cart
- orders : Order[]
- roles : Role[]
}
class Role {
- id : Long
- name : String
- users : User[]
}
class UserRole {
+userId : Long
+roleId : Long
}
class Cart {
- id : Long
- totalAmount : BigDecimal
- user : User
- items : CartItem[ ]
+ void removeItem(cartItem : CartItem)
+ void addItem(cartItem : CartItem)
+ void update()
- void updateTotalAmount()
+ void clearCart()
}
class CartItem {
- id : Long
- quantity : int
- unitPrice : BigDecimal
- totalPrice : BigDecimal
- product : Product
- cart : Cart
+ void setTotalPrice()
}
class Category {
- id : Long
- name : String
- products : Product[ ]
}
class Product {
- id : Long
- name : String
- brand : String
- description : String
- inventory : int
- price : BigDecimal
- category : Category
- images : Image[]
}
class Image {
- id : Long
- fileName : String
- fileType : String
- downloadUrl : String
- image : Blob
- product : Product
}
class Order {
- orderId : Long
- orderDate : Date
- orderStatus : Enum
- totalAmount : BigDecimal
- user : User
- orderItems : OrderItem[]
}
class OrderItem {
- id : Long
- price : BigDecimal
- quantity : int
- order : Order
- Product : Product
}
%% Relacionamentos
User "1" --> "1" Cart : has
User "1" --> "*" Order : places
User "*" -- "*" Role : via UserRole
Cart "1" --> "*" CartItem : contains
CartItem "*" --> "1" Product : references
Product "1" --> "*" Image : has
Category "1" --> "*" Product : classifies
Order "1" --> "*" OrderItem : contains
OrderItem "*" --> "1" Product : references
````
## Funcionalidades Atuais
- CRUD de Produtos
- Cadastro de Imagens e associação com Produto
- Cadastro e Listagem de Pedidos
- Cadastro e Listagem de Carrinhos
- Associação de pedidos com usuários
- Integração com banco Mysql
- Mapeamento de Dto Com Model Mapper
- Autenticação e Autorização com Spring Security
- Controle de acesso por perfil
- Token com Jwt
## Atualizações Futuras
- Spring AI. (em fase de pesquisa)
- Containerização do projeto com Docker
## Tecnologias
- `Intellij`
- `Java 21`
- `Maven`
- `Spring Boot, Spring Web, Spring Data JPA`
- `Mysql`
- `Lombok`
- `Model Mapper`