3.5 KiB
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 bibliotecapython-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
-
Instale as dependências:
pip install -r requirements.txt -
Configuração de Ambiente: Crie um arquivo
.envna raiz do projeto para armazenar suas credenciais sensíveis:# 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=portaNota: O painel Streamlit utiliza
st.secretspara configuração do banco. -
Banco de Dados: Certifique-se de que as tabelas
events,acompanhamentoeagendaestejam criadas no seu banco de dados MySQL conforme esperado pelos scriptsBD_manager_Mysql.py.
▶️ Como Executar
1. Iniciar os Chatbots
Para ativar o atendimento automático, execute o script correspondente à plataforma desejada:
- WhatsApp (Twilio):
python Main_Receiver-Twilio01.py - Telegram:
python Main_Receiver_Telegram.py
2. Painel Administrativo
Para abrir a interface de gestão:
streamlit run Painel_Prestador_Mysql.py
3. Serviço de Lembretes
Para iniciar o monitoramento e envio de avisos:
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.