Um sistema web completo e elegante para gerenciamento de confirmações de presença (RSVP) em casamentos, desenvolvido com Flask e PostgreSQL.
- Busca Inteligente: Encontre seu nome e confirme presença facilmente
- Confirmação em Grupo: Confirme presença para toda a família de uma só vez
- Lista de Presentes: Visualize a lista de presentes com links para lojas
- Interface Responsiva: Funciona perfeitamente em celulares e computadores
- Painel Completo: Dashboard com estatísticas e controle total
- Gestão de Convidados: Adicione, edite e organize convidados em grupos/famílias
- Gestão de Grupos: Organize convidados por famílias ou categorias
- Informações do Local: Configure detalhes do evento, endereço e mapas
- Lista de Presentes: Gerencie presentes com preços e links para lojas
- Envio de WhatsApp: Integração com Twilio para envio de convites e lembretes
- Python 3.11+
- PostgreSQL
- Conta Twilio (opcional, para WhatsApp)
git clone <seu-repositorio>
cd sistema-rsvp-casamentopip install -r requirements.txtCrie um arquivo .env na raiz do projeto:
# Configuração do Banco de Dados
DATABASE_URL=postgresql://usuario:senha@localhost:5432/wedding_rsvp
# Chave Secreta da Aplicação
SESSION_SECRET=sua-chave-secreta-super-segura
# Configuração Twilio (Opcional)
TWILIO_ACCOUNT_SID=seu_account_sid
TWILIO_AUTH_TOKEN=seu_auth_token
TWILIO_PHONE_NUMBER=+5511999999999# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib
# macOS
brew install postgresqlsudo -u postgres psql
CREATE DATABASE wedding_rsvp;
CREATE USER wedding_user WITH PASSWORD 'sua_senha';
GRANT ALL PRIVILEGES ON DATABASE wedding_rsvp TO wedding_user;
\qpython main.pyA aplicação estará disponível em http://localhost:5000
-
Fork o Projeto: Importe este projeto no Replit
-
Configure as Variáveis: No painel de Secrets do Replit, adicione:
SESSION_SECRET: Uma chave secreta únicaTWILIO_ACCOUNT_SID: (opcional) Seu SID da TwilioTWILIO_AUTH_TOKEN: (opcional) Seu token da TwilioTWILIO_PHONE_NUMBER: (opcional) Seu número do WhatsApp Business
-
Execute: Clique em "Run" - o PostgreSQL será configurado automaticamente
O projeto está pronto para deploy no Replit Deployments:
- Clique no botão "Deploy" no Replit
- Configure seu domínio personalizado (opcional)
- O sistema será hospedado automaticamente com HTTPS e certificados SSL
- Armazena credenciais dos administradores
- Senhas criptografadas com Werkzeug
- Organiza convidados em famílias ou grupos
- Permite confirmação em lote
- Informações dos convidados
- Status de confirmação (pendente, confirmado, não confirmado)
- Números de telefone para WhatsApp
- Detalhes do local do evento
- Data, hora e links do Google Maps
- Lista de presentes
- Preços e links para lojas
- Usuário:
admin - Senha:
admin123
- Acesse
/admin/login - Faça login com as credenciais padrão
- No dashboard, vá em "Configurações" para alterar a senha
- Acesse twilio.com
- Crie uma conta gratuita
- Verifique seu número de telefone
- No Console Twilio, vá em "Messaging" > "Try it out" > "Send a WhatsApp message"
- Siga as instruções para configurar o WhatsApp Business
- Anote suas credenciais (Account SID, Auth Token, Phone Number)
No Replit, vá em "Secrets" e adicione:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_PHONE_NUMBER
Edite o arquivo static/style.css para personalizar:
- Cores do tema
- Fontes
- Espaçamentos
- Animações
Os templates estão em templates/:
base.html: Layout baseindex.html: Página inicialrsvp.html: Formulário de confirmaçãogifts.html: Lista de presentesadmin_*.html: Painéis administrativos
Edite send_whatsapp.py para personalizar as mensagens automáticas.
- API REST para busca em tempo real
- Exibição automática de famílias/grupos
- Confirmação individual ou em lote
- Quando um membro da família confirma, o sistema sugere confirmar todos
- Gestão automática de relacionamentos familiares
- Total de convidados confirmados
- Porcentagem de confirmações
- Grupos com mais/menos confirmações
RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set.
Solução: Verifique se a variável DATABASE_URL está configurada corretamente.
RuntimeError: The session is unavailable because no secret key was set.
Solução: Configure a variável SESSION_SECRET com uma chave única.
- Verifique se as credenciais Twilio estão corretas
- Confirme se o número está no formato internacional (+5511999999999)
- Verifique se sua conta Twilio tem créditos
Para suporte técnico ou dúvidas:
- Verifique a seção de solução de problemas
- Consulte a documentação do Flask: flask.palletsprojects.com
- Documentação do Twilio: twilio.com/docs
- Exporte a lista de convidados confirmados
- Envie lembretes via WhatsApp 1-2 dias antes
- Prepare um QR Code com o link do RSVP para convidados de última hora
- Use a lista exportada para controle de entrada
- O sistema pode ser usado em tablets para check-in em tempo real
Este projeto é de código aberto. Sinta-se livre para usar, modificar e distribuir.
Desenvolvido com ❤️ para tornar seu casamento ainda mais especial!