2025-04-22 16:35:08 -03:00
|
|
|
# Sistema de Controles
|
2025-01-08 00:19:49 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Sistema de gestão para controle de militantes, pagamentos, cotas e relatórios.
|
2025-01-08 00:19:49 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
## Arquitetura MVC
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
O projeto segue a arquitetura Model-View-Controller (MVC) para separação de responsabilidades:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
### Models
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Os modelos representam as entidades do sistema e estão organizados em:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
- **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.
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
### Controllers
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Os controladores contêm a lógica de negócio e manipulam os dados dos modelos:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
- **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.
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
### Views
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
As views são os templates que exibem os dados para o usuário:
|
2025-01-08 00:19:49 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
- **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.
|
2025-01-08 00:19:49 -03:00
|
|
|
|
2025-04-03 15:58:07 -03:00
|
|
|
## Instalação
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
1. Clone o repositório:
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-04-22 16:35:08 -03:00
|
|
|
git clone [URL_DO_REPOSITORIO]
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-04-22 16:35:08 -03:00
|
|
|
|
|
|
|
|
2. Crie e ative um ambiente virtual:
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-04-22 16:35:08 -03:00
|
|
|
python -m venv myenv
|
|
|
|
|
source myenv/bin/activate # Linux/Mac
|
|
|
|
|
myenv\Scripts\activate # Windows
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-04-22 16:35:08 -03:00
|
|
|
|
|
|
|
|
3. Instale as dependências:
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-04-22 16:35:08 -03:00
|
|
|
pip install -r requirements.txt
|
2025-04-03 15:58:07 -03:00
|
|
|
```
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
4. Inicialize o banco de dados:
|
|
|
|
|
```
|
|
|
|
|
python app.py --init
|
|
|
|
|
```
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
5. Execute a aplicação:
|
|
|
|
|
```
|
|
|
|
|
python app.py
|
|
|
|
|
```
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
## Credenciais padrão
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
- **Administrador**:
|
|
|
|
|
- Usuário: admin
|
|
|
|
|
- Senha: admin123
|
2025-03-27 14:49:29 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
## Desenvolvimento
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Para adicionar novos recursos, siga a arquitetura MVC:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
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/`
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
## Testes
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Execute os testes usando pytest:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
```
|
|
|
|
|
python -m pytest
|
2025-01-08 00:19:49 -03:00
|
|
|
```
|
|
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
Ou use o script de teste:
|
2025-04-03 15:58:07 -03:00
|
|
|
|
2025-04-22 16:35:08 -03:00
|
|
|
```
|
|
|
|
|
./run_tests.sh
|
|
|
|
|
```
|