Files
controles/README.md
LS 62aaec3fbe refactor: Implementa arquitetura MVC limpa
- Separa modelos em entidades individuais
- Cria camada de serviços para acesso a dados
- Implementa controladores para lógica de negócio
- Organiza rotas em blueprints por funcionalidade
- Adiciona documentação de arquitetura no README
- Cria script para preparação da estrutura

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-04-22 16:35:08 -03:00

2.7 KiB

Sistema de Controles

Sistema de gestão para controle de militantes, pagamentos, cotas e relatórios.

Arquitetura MVC

O projeto segue a arquitetura Model-View-Controller (MVC) para separação de responsabilidades:

Models

Os modelos representam as entidades do sistema e estão organizados em:

  • models/entities/: Classes de entidades do banco de dados (SQLAlchemy)
    • base.py: Configuração do SQLAlchemy e classe Base
    • usuario.py: Modelo de usuário
    • militante.py: Modelo de militante
    • cota_mensal.py: Modelo de cota mensal
    • etc.

Controllers

Os controladores contêm a lógica de negócio e manipulam os dados dos modelos:

  • controllers/: Implementação dos controladores
    • auth_controller.py: Controle de autenticação
    • usuario_controller.py: Operações com usuários
    • militante_controller.py: Operações com militantes
    • home_controller.py: Controlador da página inicial
    • etc.

Views

As views são os templates que exibem os dados para o usuário:

  • templates/: Templates Jinja2
    • Organizados por funcionalidade (admin, militantes, cotas, etc.)

Services

Camada adicional para encapsular a lógica de acesso a dados:

  • services/: Serviços para acesso a dados
    • database_service.py: Gerenciamento de conexões com o banco
    • usuario_service.py: Acesso a dados de usuários
    • militante_service.py: Acesso a dados de militantes
    • etc.

Routes

Rotas da aplicação organizadas em blueprints:

  • routes/: Módulos de rotas (Flask Blueprints)
    • main.py: Rotas principais
    • auth.py: Rotas de autenticação
    • admin.py: Rotas administrativas
    • militante.py: Rotas para gerenciamento de militantes
    • etc.

Instalação

  1. Clone o repositório:

    git clone [URL_DO_REPOSITORIO]
    
  2. Crie e ative um ambiente virtual:

    python -m venv myenv
    source myenv/bin/activate  # Linux/Mac
    myenv\Scripts\activate     # Windows
    
  3. Instale as dependências:

    pip install -r requirements.txt
    
  4. Inicialize o banco de dados:

    python app.py --init
    
  5. Execute a aplicação:

    python app.py
    

Credenciais padrão

  • Administrador:
    • Usuário: admin
    • Senha: admin123

Desenvolvimento

Para adicionar novos recursos, siga a arquitetura MVC:

  1. Crie modelos necessários em models/entities/
  2. Implemente serviços para acesso a dados em services/
  3. Crie controladores com lógica de negócio em controllers/
  4. Adicione rotas em módulos existentes ou crie novos em routes/
  5. Desenvolva templates em templates/

Testes

Execute os testes usando pytest:

python -m pytest

Ou use o script de teste:

./run_tests.sh