Skip to content

Release Notes v2.0.0

Latest

Choose a tag to compare

@ericshantos ericshantos released this 07 Jun 13:21
· 3 commits to main since this release

🌍 Overview | Visão Geral

This release introduces a complete architectural restructuring, transforming a monolithic script into a modular structure following SOLID principles and design patterns.
Esta release introduz uma reestruturação completa da arquitetura da aplicação, transformando um script monolítico em uma estrutura modular seguindo princípios SOLID e padrões de projeto.


🏗 Architectural Improvements | Melhorias na Arquitetura

1. Reorganized Directory Structure | Estrutura de Diretórios Reorganizada

app/
├── controllers/    # Request handling logic | Lógica de tratamento de requisições
├── models/         # Data models and schemas | Modelos de dados e schemas
├── routers/        # Route definitions | Definição de rotas
├── services/       # Business logic | Lógica de negócio
├── utils/          # Helper utilities | Utilitários e ferramentas
└── views/          # Response rendering | Renderização de respostas

2. Component Standardization | Padronização de Componentes

  • Controllers: Introduced BaseController for response standardization
    Introdução de BaseController para padronização de respostas
  • Services: Business logic separation (e.g. TrackService)
    Separação da lógica de negócio (ex: TrackService)
  • Routers: Modular routing system with Router class
    Implementação de sistema de roteamento modular com a classe Router

3. Dependency Management | Gestão de Dependências

  • Centralized configuration via AppFactory
    Configuração centralizada via AppFactory
  • Dependency injection in services (e.g. EmailReporter receives EmailSender)
    Injeção de dependências nos serviços (ex: EmailReporter recebe EmailSender)

🛠 New Technical Features | Novos Recursos Técnicos

1. Enhanced Tracking System | Sistema de Rastreamento Aprimorado

  • Thread-safe VisitTracker with:
    Classe VisitTracker com:
    • Lock synchronization
      Thread-safe usando Lock
    • Daily data reset methods
      Métodos para reset diário de dados

2. Report Scheduler | Agendador de Relatórios

  • Precise next-report time calculation
    Cálculo preciso do tempo até o próximo relatório
  • Robust error handling
    Tratamento de erros robusto

3. Modular Email System | Sistema de E-mails Modular

Component Functionality Funcionalidade
EmailSender Pure SMTP logic Lógica SMTP pura
EmailNotificator Env var config Configuração via env vars
EmailReporter Report composition Composição do relatório
VisitReportRenderer HTML generation Geração do HTML

⚠️ Breaking Changes | Mudanças Incompatíveis

  1. Entry point changed from app.py to run.py
    Arquivo de entrada mudou de app.py para run.py
  2. New required AppFactory configuration
    Estrutura de configuração agora via AppFactory
  3. Simplified to single / endpoint
    Endpoint único simplificado para apenas /

📈 Benefits | Benefícios

English Português
✔ Better maintainability ✔ Melhor manutenibilidade
✔ Improved testability ✔ Maior testabilidade
✔ Enhanced extensibility ✔ Melhor extensibilidade
✔ Robust error handling ✔ Tratamento de erros robusto

For questions: ericshantos13@gmail.com
Para dúvidas: ericshantos13@gmail.com