How marcomazanti/mesa-do-campo-back works
Mesa do Campo is a Spring Boot/PostgreSQL marketplace API. Buyers register or log in, manage delivery and payment details, browse products, and check out; checkout validates current product prices and stock and creates an order, its items, and a simulated approved payment. Sellers manage products and advance item fulfillment; buyers can track orders and submit evaluations. The README documents hybrid encryption for protected routes. Checkout, item permissions, customer account behavior, and crypto internals are sampled; other product branches are represented from the tree and README, so their internal wiring is not asserted.
Main entry points: Repository JPA repositories · PedidoService.java Checkout and orders · CryptoService.java Hybrid crypto · ClienteController.java Customer API
Components 26
HTTP API
- Customer API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/ClienteController.java - Seller API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/VendedorController.java - Catalog API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/ProdutoController.java - Address API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/EnderecoController.java - Order API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/PedidoController.java - Order-item API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/ItemPedidoController.java - Payment API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/PagamentoController.java - Review API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/AvaliacaoController.java
Accounts and marketplace
- Customer accounts
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/ClienteService.java - Seller accounts
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/VendedorService.java - Product catalog
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/ProdutoService.java - Delivery addresses
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/EnderecoService.java - Product evaluations
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/AvaliacaoService.java
Orders and payment
- Checkout and orders
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/PedidoService.java - Item fulfillment
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/ItemPedidoService.java - Payment records
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/PagamentoService.java - Saved payment methods
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/CartaoCreditoController.java
Persistence
- JPA repositories
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Repository
Request security
- Public-key API
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/CryptoController.java - Request decryption
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/Advice/DecryptRequestInterceptor.java - Response encryption
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Controller/Advice/EncryptResponseInterceptor.java - Hybrid crypto
src/main/java/Trabalho_de_Graduacao/Mesa_do_Campo_Back/Service/Security/CryptoService.java
Other components
- Buyer
- Seller
- PostgreSQL
- Frontend
Connections 26
- Buyer → Customer API: registers or logs in
- Customer API → Customer accounts: invokes account operations
- Buyer → Catalog API: browses products
- Catalog API → Product catalog: routes catalog requests
- Seller → Seller API: manages seller account
- Seller API → Seller accounts: routes seller operations
- Buyer → Address API: manages delivery address
- Address API → Delivery addresses: routes address operations
- Buyer → Order API: checks out
- Order API → Checkout and orders: calls checkout
- Checkout and orders → JPA repositories: reads products and saves order
- Checkout and orders → JPA repositories: saves items and payment
- Seller → Order-item API: updates fulfillment
- Order-item API → Item fulfillment: calls item operations
- Item fulfillment → JPA repositories: checks ownership and updates items
- Buyer → Payment API: views payment records
- Payment API → Payment records: routes payment operations
- Buyer → Saved payment methods: manages saved cards
- Buyer → Review API: submits evaluation
- Review API → Product evaluations: routes evaluation
- JPA repositories → PostgreSQL: reads and writes
- Frontend → Public-key API: fetches public key
- Frontend → Request decryption: sends encrypted request
- Request decryption → Hybrid crypto: decrypts envelope
- Response encryption → Hybrid crypto: encrypts response
- Hybrid crypto → Frontend: returns encrypted envelope