Files
controles/README.md

116 lines
2.7 KiB
Markdown
Raw Normal View History

# Sistema de Controles
2025-01-08 00:19:49 -03:00
Sistema de gestão para controle de militantes, pagamentos, cotas e relatórios.
2025-01-08 00:19:49 -03:00
## 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:
2025-01-08 00:19:49 -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
## Instalação
2025-03-27 14:49:29 -03:00
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
```
2025-03-27 14:49:29 -03:00
4. Inicialize o banco de dados:
```
python app.py --init
```
2025-03-27 14:49:29 -03:00
5. Execute a aplicação:
```
python app.py
```
2025-03-27 14:49:29 -03:00
## Credenciais padrão
2025-03-27 14:49:29 -03:00
- **Administrador**:
- Usuário: admin
- Senha: admin123
2025-03-27 14:49:29 -03:00
## 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
2025-01-08 00:19:49 -03:00
```
Ou use o script de teste:
```
./run_tests.sh
```