63ebf09fb6ba870e0234672171a28d7d346f5fbc
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 Baseusuario.py: Modelo de usuáriomilitante.py: Modelo de militantecota_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çãousuario_controller.py: Operações com usuáriosmilitante_controller.py: Operações com militanteshome_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 bancousuario_service.py: Acesso a dados de usuáriosmilitante_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 principaisauth.py: Rotas de autenticaçãoadmin.py: Rotas administrativasmilitante.py: Rotas para gerenciamento de militantes- etc.
Instalação
-
Clone o repositório:
git clone [URL_DO_REPOSITORIO] -
Crie e ative um ambiente virtual:
python -m venv myenv source myenv/bin/activate # Linux/Mac myenv\Scripts\activate # Windows -
Instale as dependências:
pip install -r requirements.txt -
Inicialize o banco de dados:
python app.py --init -
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:
- Crie modelos necessários em
models/entities/ - Implemente serviços para acesso a dados em
services/ - Crie controladores com lógica de negócio em
controllers/ - Adicione rotas em módulos existentes ou crie novos em
routes/ - Desenvolva templates em
templates/
Testes
Execute os testes usando pytest:
python -m pytest
Ou use o script de teste:
./run_tests.sh
Description
Languages
JavaScript
36.6%
HTML
33%
Python
30.3%