Capítulo 20: Projeto Integrador II: Aplicação Comercial Desktop Completa (CustomTkinter + SQLite + DAO + Auditoria)
Especialização em Sistemas com Python & POO com Type Hints • Capítulo 20
🗺️ Mapa Conceitual do Tópico
flowchart TD
subgraph VIEW["Camada de Apresentação (GUI Desktop)"]
V1["Formulário de Cadastro"]
V2["Tabela de Clientes (Treeview)"]
end
subgraph SERVICE["Camada de Serviços (Regras de Negócio)"]
S1["Validador de CPF e E-mail"]
S2["Auditor de Eventos"]
end
subgraph DATA["Camada de Persistência (DAO / SQLite)"]
D1["ClienteDAO (Queries Parametrizadas)"]
D2["Banco 'erp_comercial.db'"]
end
VIEW --> SERVICE --> DATA --> D2
SERVICE --> AUDIT["reports/YYYY-MM-DD_HH-MM-SS_auditoria.json"]
style VIEW fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style SERVICE fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style DATA fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
style AUDIT fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
🏢 1. Sistema Comercial Desktop Integrado Completo
O Projeto Integrador II consolida a arquitetura completa da especialização:
- Camada View (GUI): Interface desktop moderna com formulário e tabela de listagem.
- Camada Service: Validações de CPF, regras de negócio e limites de crédito.
- Camada DAO: Persistência em banco relacional SQLite3 com queries parametrizadas.
- Auditoria Corporativa: Registro histórico de todas as operações em relatórios JSON imutáveis.
💻 Exemplo Prático e Tipado
"""
exemplo_20_projeto_desktop_crud_sqlite.py - Arquitetura Comercial em Camadas
"""
from dataclasses import dataclass
from decimal import Decimal
@dataclass(frozen=True, slots=True)
class ClienteERP:
id_cliente: int | None
nome: str
cpf: str
limite_credito: Decimal
if __name__ == "__main__":
c = ClienteERP(id_cliente=1, nome="Juliana Dias", cpf="111.222.333-44", limite_credito=Decimal("5000.00"))
print(f"Cliente Carregado: #{c.id_cliente} - {c.nome} (Limite: R$ {c.limite_credito:,.2f})")
🔗 Recursos Pedagógicos do Capítulo 20
| Recurso Didático | Finalidade | Link de Acesso |
|---|---|---|
| 📊 Slides de Aula | Apresentação visual interativa com Dark Mode e suporte a teclado | Ver Slides |
| 🧠 Quiz Formativo | Teste interativo de fixação com feedback imediato por alternativa | Fazer Quiz |
| 💻 Exemplos de Código | Demonstrações funcionais com Type Hints e saída no console | Ver Exemplos |
| 🧩 Exercícios em 4 Níveis | Lista progressiva de fixação com gabarito em bloco colapsável | Resolver Exercícios |
| ♟️ Capítulo Anterior | 📚 Sumário de Tópicos | 🏁 Conclusão do Curso |