🏗️ Arquitetura do Sistema
Arquitetura em Camadas
Presentation Layer - REST Controllers
↓
Business Logic Layer - Services
↓
Data Access Layer - Repositories
↓
Persistence Layer - SQL Server
Princípios Arquiteturais:
- Separação de Responsabilidades: Cada camada tem uma função específica
- Inversão de Dependência: Uso de interfaces e injeção de dependência
- SOLID Principles: Código limpo e manutenível
- RESTful Design: APIs seguem padrões REST
🛠️ Stack Tecnológico
☕ Java 21 LTS
Recursos Utilizados:
- Record Classes para DTOs
- Switch Expressions
- Text Blocks para SQL
- Optional e Stream API
- Virtual Threads (Project Loom)
🌱 Spring Boot 3.5.5
Módulos Implementados:
- Spring Web (REST APIs)
- Spring Security (JWT)
- Spring Data JPA
- Spring Boot Actuator
- Spring Boot DevTools
🗄️ SQL Server
Recursos do Banco:
- 8 Tabelas relacionais
- Constraints e Índices
- Stored Procedures
- Triggers para auditoria
- Connection Pooling (HikariCP)
🔒 Spring Security + JWT
Segurança Implementada:
- Autenticação Stateless
- Autorização por Roles
- Senha criptografada (BCrypt)
- CORS configurado
- Rate Limiting
📊 JPA/Hibernate
ORM Features:
- Entity Relationships
- Lazy/Eager Loading
- Query Methods
- Native Queries
- Database Migration
📝 Documentação
APIs Documentadas:
- Swagger/OpenAPI 3
- Postman Collections
- JavaDoc
- README detalhado
- Guias de uso
🚀 APIs REST Implementadas
Sistema completo com 40+ endpoints RESTful:
👤 Authentication & Users API
POST /auth/login
POST /auth/register
GET /users
PUT /users/{id}
DELETE /users/{id}
🏢 Clientes API
GET /clientes
POST /clientes
PUT /clientes/{id}
DELETE /clientes/{id}
GET /clientes/search
💰 Vendas API
GET /vendas
POST /vendas
PUT /vendas/{id}
GET /vendas/cliente/{id}
GET /vendas/relatorio
🎫 Cupons API
GET /cupons
POST /cupons
POST /cupons/aplicar
PUT /cupons/{id}/status
📊 Performance e Métricas
Otimizações Implementadas:
📈 Connection Pooling
HikariCP com 20 conexões máximas
💾 Cache JPA
Second-level cache para consultas frequentes
📊 Lazy Loading
Carregamento sob demanda de relacionamentos
🔍 Índices Otimizados
Índices em campos de busca frequente
🧪 Testes e Qualidade
Desenvolvido por: Leandro - QA Specialist
🧪 Testes Unitários
Cobertura: 85%+
- JUnit 5
- Mockito para mocks
- TestContainers
- 80+ casos de teste
🔗 Testes de Integração
Scenarios: 25+
- Spring Boot Test
- MockMvc para APIs
- H2 Database para testes
- Testes de segurança
🔍 Testes de Performance
Load Testing
- JMeter scripts
- 1000 usuários simultâneos
- Stress testing
- Memory leak detection
📁 Estrutura do Projeto
src/main/java/com/faculdae/maiconsoft_api/
├── MaiconsoftApiApplication.java
├── config/
│ ├── SecurityConfig.java
│ ├── JwtConfig.java
│ └── SwaggerConfig.java
├── controllers/
│ ├── AuthController.java
│ ├── ClienteController.java
│ ├── VendaController.java
│ └── CupomController.java
├── services/
│ ├── UserService.java
│ ├── ClienteService.java
│ └── VendaService.java
├── repositories/
│ ├── UserRepository.java
│ ├── ClienteRepository.java
│ └── VendaRepository.java
├── entities/
│ ├── User.java
│ ├── Cliente.java
│ └── Venda.java
└── dto/
├── UserDTO.java
├── ClienteDTO.java
└── VendaDTO.java
🔒 Segurança e Autenticação
🔑 Autenticação JWT
Tokens seguros com expiração de 24h
🛡️ Autorização RBAC
Roles: FUNCIONARIO, ADMIN, DIRETOR
🔐 Senha Criptografada
BCrypt com salt factor 12
🌐 CORS Configurado
Headers seguros para frontend
⏱️ Rate Limiting
Proteção contra ataques DDoS
📊 Logs de Auditoria
Rastreamento de ações críticas
🚀 Deploy e Produção
📦 Build & Package
- Maven 3.9+
- JAR executável
- Profiles (dev, prod)
- Docker ready
📊 Monitoramento
- Spring Boot Actuator
- Health checks
- Métricas Micrometer
- Logs estruturados
🔄 CI/CD Ready
- GitHub Actions
- Testes automatizados
- Quality gates
- Deploy automático
✨ Backend Robusto e Escalável
Desenvolvido com as melhores práticas de engenharia de software,
o backend do Maiconsoft API é uma solução completa e profissional.
💯 Desenvolvido por: Denise - Dev Full Stack/DBA
Especialista em Java, Spring Boot, Arquitetura de Software e Banco de Dados