Boot 222
Boot 222
## Guia de Instalação
## 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
### 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
### 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
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
## Exemplos de Uso
config = {
'email': '[email protected]',
'password': 'password',
'visa_type': 'tourist',
'check_interval': 300
}
bot = VFSBot(config)
bot.start_monitoring()
```
NotificationService.send_slot_notification(config)
```
### 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
);