Neste guia, orientarei você na construção de um sistema seguro de feedback anônimo usando Django, Twilio para notificações por SMS, Pinata para uploads de mídia seguros e TailwindCSS para estilo responsivo. Ao final deste tutorial, você terá um sistema de feedback totalmente funcional onde os usuários podem enviar feedback, opcionalmente fazer upload de mídia e receber notificações por SMS – tudo com segurança e privacidade em mente.
Demonstração: link ao vivo
1.1. Crie e configure um ambiente virtual
Comece configurando o ambiente do seu projeto. Certifique-se de ter o Python instalado e configurar um ambiente virtual:
python3 -m venv venv source venv/bin/activate
No Windows:
venv\Scripts\activate
Instale os pacotes necessários:
pip install django twilio python-decouple requests gunicorn
1.2. Inicie um projeto Django
Inicialize um novo projeto e aplicativo Django:
django-admin startproject config . python manage.py startapp feedback
2.1. Crie um modelo de feedback
Defina um modelo para armazenar envios de feedback em feedback/models.py:
from django.db import models class Feedback(models.Model): message = models.TextField() sender_email = models.EmailField() sender_phone = models.CharField(max_length=15) media_url = models.URLField(null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"Feedback from {self.sender_email}"
Este modelo captura feedback, e-mail, número de telefone e URLs de mídia opcionais.
2.2. Crie visualizações para lidar com feedback e notificações por SMS
Em feedback/views.py, crie visualizações para processar feedback e enviar notificações por SMS:
from django.shortcuts import render from django.http import HttpResponse from .models import Feedback from twilio.rest import Client from django.conf import settings import requests def upload_to_pinata(file): url = "https://api.pinata.cloud/pinning/pinFileToIPFS" headers = { 'pinata_api_key': settings.PINATA_API_KEY, 'pinata_secret_api_key': settings.PINATA_SECRET_API_KEY, } files = {'file': file} response = requests.post(url, files=files, headers=headers) return response.json().get('IpfsHash') def submit_feedback(request): if request.method == 'POST': message = request.POST.get('message') sender_email = request.POST.get('sender_email') sender_phone = request.POST.get('sender_phone') file = request.FILES.get('media_file', None) media_url = None if file: media_url = upload_to_pinata(file) feedback = Feedback.objects.create( message=message, sender_email=sender_email, sender_phone=sender_phone, media_url=media_url ) # Send SMS using Twilio client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN) client.messages.create( body=f"Feedback received from {sender_phone}: {message}", from_=settings.TWILIO_PHONE_NUMBER, to=sender_phone ) return HttpResponse("Feedback submitted successfully!") return render(request, 'feedback_form.html')
Esta visualização lida com envios de formulários, carrega mídia opcional para Pinata e envia SMS usando Twilio.
2.3. Criando o Formulário de Feedback
Crie um formulário HTML para enviar comentários. Na sua pasta de modelos, crie feedback_form.html:
{% load static %}Submit Feedback Submit Feedback
Imagem do front-end
Imagem do painel Pinata mostrando os arquivos enviados
3.1. Configurar variáveis de ambiente
Crie um arquivo .env no diretório raiz do seu projeto para armazenar informações confidenciais, como chaves de API Twilio e Pinata:
SECRET_KEY=your-django-secret-key DEBUG=True TWILIO_ACCOUNT_SID=your_twilio_account_sid TWILIO_AUTH_TOKEN=your_twilio_auth_token TWILIO_PHONE_NUMBER=your_twilio_phone_number PINATA_API_KEY=your_pinata_api_key PINATA_SECRET_API_KEY=your_pinata_secret_api_key
Certifique-se de adicionar .env ao seu arquivo .gitignore para que ele não seja enviado ao GitHub:
.env
3.2. Atualize settings.py para usar variáveis de ambiente
Use python-decouple para carregar variáveis de ambiente com segurança do arquivo .env:
from decouple import config SECRET_KEY = config('SECRET_KEY') DEBUG = config('DEBUG', default=False, cast=bool) TWILIO_ACCOUNT_SID = config('TWILIO_ACCOUNT_SID') TWILIO_AUTH_TOKEN = config('TWILIO_AUTH_TOKEN') TWILIO_PHONE_NUMBER = config('TWILIO_PHONE_NUMBER') PINATA_API_KEY = config('PINATA_API_KEY') PINATA_SECRET_API_KEY = config('PINATA_SECRET_API_KEY')
4.1. Inicialize o Git e envie para o GitHub
git init git add . git commit -m "Initial commit for feedback system"
git remote add origin https://github.com/yourusername/feedback-system.git
git push -u origin main
Neste tutorial, você construiu um sistema seguro de feedback anônimo usando Django, Twilio para notificações por SMS e Pinata para uploads de mídia. Você também aprendeu como enviar seu projeto para o GitHub e proteger informações confidenciais usando variáveis de ambiente. Este sistema garante a privacidade ao mesmo tempo que permite que os usuários enviem comentários e recebam notificações por SMS.
Sinta-se à vontade para expandir ainda mais o sistema adicionando mais recursos ou melhorando a segurança. Se você achou este guia útil, compartilhe seus comentários ou perguntas nos comentários!
O Repo do Projeto pode ser encontrado aqui: Repo
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3