Subida da versão estável

This commit is contained in:
2026-03-21 22:45:10 -03:00
parent 12cf7f4649
commit d2b05ec1c9
21 changed files with 1914 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
# Sistema de Agendamento Multi-Canal
Este projeto é um sistema completo de agendamento que permite aos clientes marcarem horários de forma automatizada via WhatsApp (integrações Twilio e UltraMsg) e Telegram. O sistema inclui também um painel administrativo web para gestão da agenda e um serviço de lembretes automáticos.
## 🚀 Funcionalidades
* **Agendamento via Chatbot:** Fluxo automatizado onde o cliente escolhe o período (Manhã/Tarde/Noite) e o horário disponível.
* **Múltiplos Canais de Atendimento:**
* **WhatsApp:** Suporte via API oficial (Twilio) e não-oficial (UltraMsg).
* **Telegram:** Bot nativo para agendamentos.
* **Painel Administrativo (Dashboard):** Interface visual desenvolvida em Streamlit para que o prestador de serviço possa:
* Visualizar agendamentos em formato de calendário.
* Criar, editar e excluir eventos manualmente.
* **Lembretes Automáticos (`Lembrator`):** Serviço em segundo plano que notifica os clientes sobre seus horários com antecedência de 24h, 12h e 3h.
* **Banco de Dados:** Persistência de dados utilizando MySQL (com suporte legado/local para SQLite).
## 📂 Estrutura de Arquivos
### Principais
* **`Main_Receiver-Twilio01.py`**: Servidor Flask que atua como Webhook para o Twilio (WhatsApp).
* **`Main_Receiver-Whatsapp.py`**: Servidor Flask para integração com a API UltraMsg (WhatsApp).
* **`Main_Receiver_Telegram.py`**: Bot do Telegram que utiliza a biblioteca `python-telegram-bot`.
* **`Painel_Prestador_Mysql.py`**: Aplicação Streamlit para gestão da agenda pelo prestador.
* **`Lembrator.py`**: Script de automação para envio de lembretes.
### Banco de Dados
* **`BD_manager_Mysql.py`**: Gerenciador de conexão e queries para MySQL (usado em produção).
* **`BD_manager.py`**: Versão SQLite (uso local/teste).
## 🛠️ Instalação e Configuração
1. **Instale as dependências:**
```bash
pip install -r requirements.txt
```
2. **Configuração de Ambiente:**
Crie um arquivo `.env` na raiz do projeto para armazenar suas credenciais sensíveis:
```env
# Twilio
TWILIO_ACCOUNT_SID=seu_sid
TWILIO_AUTH_TOKEN=seu_token
TWILIO_WHATSAPP_NUMBER=whatsapp:+14155238886
# Banco de Dados (se não usar st.secrets)
DB_HOST=seu_host
DB_USER=seu_user
DB_PASSWORD=sua_senha
DB_NAME=agenda
DB_PORT=porta
```
*Nota: O painel Streamlit utiliza `st.secrets` para configuração do banco.*
3. **Banco de Dados:**
Certifique-se de que as tabelas `events`, `acompanhamento` e `agenda` estejam criadas no seu banco de dados MySQL conforme esperado pelos scripts `BD_manager_Mysql.py`.
## ▶️ Como Executar
### 1. Iniciar os Chatbots
Para ativar o atendimento automático, execute o script correspondente à plataforma desejada:
* **WhatsApp (Twilio):**
```bash
python Main_Receiver-Twilio01.py
```
* **Telegram:**
```bash
python Main_Receiver_Telegram.py
```
### 2. Painel Administrativo
Para abrir a interface de gestão:
```bash
streamlit run Painel_Prestador_Mysql.py
```
### 3. Serviço de Lembretes
Para iniciar o monitoramento e envio de avisos:
```bash
python Lembrator.py
```
## 📦 Dependências Principais
* `Flask`: Servidor web para os webhooks.
* `mysql-connector-python`: Driver de conexão com o MySQL.
* `streamlit` & `streamlit-calendar`: Interface do painel administrativo.
* `twilio`: SDK para envio de mensagens via Twilio.
* `python-telegram-bot`: SDK para o bot do Telegram.