0% acharam este documento útil (0 voto)
62 visualizações5 páginas

Boot 222

O documento descreve a estrutura e funcionalidades de uma aplicação de monitoramento de vistos, incluindo serviços de autenticação, gestão de candidatos e notificações em tempo real. Ele detalha os requisitos do sistema, dependências, configuração do ambiente e a arquitetura do sistema, além de listar as funcionalidades implementadas e pendentes. Também inclui exemplos de uso da API e a estrutura do banco de dados.

Enviado por

grgtr1404
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
62 visualizações5 páginas

Boot 222

O documento descreve a estrutura e funcionalidades de uma aplicação de monitoramento de vistos, incluindo serviços de autenticação, gestão de candidatos e notificações em tempo real. Ele detalha os requisitos do sistema, dependências, configuração do ambiente e a arquitetura do sistema, além de listar as funcionalidades implementadas e pendentes. Também inclui exemplos de uso da API e a estrutura do banco de dados.

Enviado por

grgtr1404
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 5

├── services/

│ ├── backup_service.py # Serviço de backup


│ ├── import_service.py # Importação de candidatos
│ └── notification_service.py # Sistema de notificações
├── static/
│ ├── css/
│ │ └── style.css # Estilos personalizados
│ └── js/
│ ├── main.js # JavaScript principal
│ └── notifications.js # Lógica de notificações
├── templates/
│ ├── base.html # Template base
│ ├── dashboard.html # Dashboard principal
│ ├── index.html # Página inicial
│ ├── login.html # Página de login
│ └── register.html # Página de registro
├── auth.py # Autenticação
├── bot.py # Bot de verificação
├── config.py # Configurações
├── main.py # Aplicação principal
└── models.py # Modelos do banco
```

## Guia de Instalação

### 1. Requisitos do Sistema


- Python 3.8+
- PostgreSQL
- Redis
- Navegador moderno com suporte a SSE

### 2. Dependências Python


```bash
# Instalar dependências
pip install flask-wtf flask flask-sqlalchemy flask-login gunicorn
pip install psycopg2-binary requests selenium sqlalchemy
pip install beautifulsoup4 email-validator werkzeug redis
```

### 3. Configuração do Ambiente


```bash
# Variáveis de ambiente necessárias
export DATABASE_URL="postgresql://user:password@localhost:5432/dbname"
export REDIS_HOST="localhost"
export REDIS_PORT="6379"
export SESSION_SECRET="your-secret-key"
```

### 4. Banco de Dados


```sql
-- Criar banco de dados
CREATE DATABASE visto_bot;

-- Criar usuário (se necessário)


CREATE USER visto_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE visto_bot TO visto_user;
```

## Funcionalidades Principais
### 1. Autenticação e Usuários
- Registro e login de usuários
- Gerenciamento de sessões
- Controle de acesso baseado em roles
- Proteção contra CSRF

### 2. Monitoramento de Slots


- Bot automatizado (VFSBot)
- Configuração de intervalos
- Múltiplos tipos de visto
- Logging detalhado

### 3. Gestão de Candidatos


- Cadastro individual
- Importação em massa (CSV)
- Validação de dados
- Gestão multi-candidato

### 4. Notificações
- Tempo real via SSE
- Interface no cabeçalho
- Contagem não-lidas
- Histórico completo

### 5. Dashboard
- Estatísticas em tempo real
- Gráficos interativos
- Histórico de verificações
- Métricas de sucesso

## Estado Atual e Próximos Passos

### Implementado:
1. ✅ Sistema de autenticação completo
2. ✅ Bot de verificação de slots
3. ✅ Dashboard com estatísticas
4. ✅ Sistema de notificações em tempo real
5. ✅ Backup automático
6. ✅ API REST

### Pendente:
1. ⏳ Melhorias na interface do bot
2. ⏳ Sistema de agendamento automático
3. ⏳ Relatórios avançados
4. ⏳ Integração com mais serviços externos

## Arquitetura do Sistema

### Componentes Principais:


1. **Frontend**:
- Templates Flask (Jinja2)
- Bootstrap Dark Theme
- JavaScript para notificações em tempo real
- Chart.js para gráficos

2. **Backend**:
- Flask Framework
- SQLAlchemy ORM
- Redis para eventos em tempo real
- Sistema de autenticação Flask-Login

3. **Base de Dados**:
- PostgreSQL para dados persistentes
- Redis para cache e eventos
- Sistema de backup automatizado

4. **Serviços**:
- Bot de verificação (Selenium)
- Sistema de notificações
- Importação de dados
- Backup automático

## API REST

### Endpoints de Candidatos


```
GET /api/applicants
POST /api/applicants
GET /api/applicants/{id}
PUT /api/applicants/{id}
DELETE /api/applicants/{id}
```

### Endpoints de Logs


```
GET /api/logs
GET /api/logs/{id}
```

### Endpoints de Backup


```
GET /api/backups
POST /api/backups/create
GET /api/backups/{filename}
```

## Exemplos de Uso

### 1. Criar Usuário via API


```python
import requests

response = requests.post('http://localhost:5000/api/users', json={


'username': 'test_user',
'email': '[email protected]',
'password': 'secure_password'
})
```

### 2. Iniciar Monitoramento


```python
from bot import VFSBot

config = {
'email': '[email protected]',
'password': 'password',
'visa_type': 'tourist',
'check_interval': 300
}

bot = VFSBot(config)
bot.start_monitoring()
```

### 3. Enviar Notificação


```python
from services.notification_service import NotificationService

NotificationService.send_slot_notification(config)
```

## Estrutura do Banco de Dados

### User
```sql
CREATE TABLE user (
id INTEGER PRIMARY KEY,
username VARCHAR(64) UNIQUE NOT NULL,
email VARCHAR(120) UNIQUE NOT NULL,
password_hash VARCHAR(256),
is_admin BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
last_login TIMESTAMP,
session_token VARCHAR(64) UNIQUE,
session_expiry TIMESTAMP
);
```

### BookingConfig
```sql
CREATE TABLE booking_config (
id INTEGER PRIMARY KEY,
user_id INTEGER REFERENCES user(id),
email VARCHAR(120) NOT NULL,
password VARCHAR(256) NOT NULL,
visa_type VARCHAR(50) NOT NULL,
applicants INTEGER DEFAULT 1,
preferred_location VARCHAR(100),
check_interval INTEGER DEFAULT 300,
is_active BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

### Applicant
```sql
CREATE TABLE applicant (
id INTEGER PRIMARY KEY,
config_id INTEGER REFERENCES booking_config(id),
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
passport_number VARCHAR(20) NOT NULL,
birth_date DATE NOT NULL,
passport_expiry DATE NOT NULL,
gender VARCHAR(10) NOT NULL,
nationality VARCHAR(100) NOT NULL,
phone_code VARCHAR(10) NOT NULL,
phone_number VARCHAR(20) NOT NULL,
email VARCHAR(120) NOT NULL,
visa_type VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

### BookingLog
```sql
CREATE TABLE booking_log (
id INTEGER PRIMARY KEY,
config_id INTEGER REFERENCES booking_config(id),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
message TEXT NOT NULL,
slots_found BOOLEAN DEFAULT FALSE,
error BOOLEAN DEFAULT FALSE
);

Você também pode gostar