"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Creación de un sistema seguro de comentarios anónimos con Django, Twilio y Pinata

Creación de un sistema seguro de comentarios anónimos con Django, Twilio y Pinata

Publicado el 2024-11-06
Navegar:730

En esta guía, lo guiaré en la creación de un sistema seguro de comentarios anónimos utilizando Django, Twilio para notificaciones por SMS, Pinata para cargas seguras de medios y TailwindCSS para un estilo responsivo. Al final de este tutorial, tendrá un sistema de comentarios completamente funcional donde los usuarios pueden enviar comentarios,, opcionalmente, cargar medios y recibir notificaciones por SMS, todo teniendo en cuenta la seguridad y la privacidad.

Demostración: Enlace en vivo

Características clave:

  • Envío anónimo de comentarios: los usuarios pueden enviar comentarios o solicitudes de soporte de forma anónima.
  • Cargas multimedia seguras: los usuarios pueden cargar archivos multimedia de forma segura a través de Pinata, almacenados en IPFS.
  • Notificaciones por SMS de Twilio: envía automáticamente confirmación por SMS a los usuarios a través de Twilio.
  • IU responsiva: diseñada con TailwindCSS para un diseño moderno y fluido.

Tecnologías utilizadas:

  • Django: Framework backend para el sistema de retroalimentación.
  • Twilio: maneja notificaciones por SMS.
  • Piñata: proporciona almacenamiento multimedia seguro basado en IPFS.
  • TailwindCSS: para un estilo de interfaz responsivo.

Paso 1: configuración del proyecto y dependencias

1.1. Crear y configurar un entorno virtual
Comience configurando el entorno de su proyecto. Asegúrese de tener Python instalado y configurar un entorno virtual:


python3 -m venv venv
source venv/bin/activate


En Windows:


venv\Scripts\activate


Instalar los paquetes necesarios:


pip install django twilio python-decouple requests gunicorn


1.2. Iniciar un proyecto Django
Inicialice un nuevo proyecto y aplicación Django:


django-admin startproject config .
python manage.py startapp feedback


Paso 2: crear el sistema de envío de comentarios

2.1. Crear un modelo de comentarios
Defina un modelo para almacenar los envíos de comentarios en 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 comentarios, correos electrónicos, números de teléfono y URL de medios opcionales.

2.2. Crear vistas para gestionar comentarios y notificaciones por SMS
En feedback/views.py, cree vistas para procesar comentarios y enviar notificaciones 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 vista maneja envíos de formularios, carga medios opcionales a Pinata y envía SMS usando Twilio.

2.3. Creando el formulario de comentarios
Cree un formulario HTML para enviar comentarios. En su carpeta de plantillas, cree feedback_form.html:


{% load static %}



    Submit Feedback

Submit Feedback

{% csrf_token %}

Building a Secure Anonymous Feedback System with Django, Twilio, and Pinata
Imagen del front-end

Building a Secure Anonymous Feedback System with Django, Twilio, and Pinata
Imagen de Pinata Dashboard que muestra los archivos subidos

Paso 3: Configurar Twilio y Pinata

3.1. Configurar variables de entorno
Cree un archivo .env en el directorio raíz de su proyecto para almacenar información confidencial como claves API de Twilio y 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


Asegúrate de agregar .env a tu archivo .gitignore para que no se envíe a GitHub:


.env


3.2. Actualice settings.py para usar variables de entorno
Utilice python-de Couple para cargar de forma segura variables de entorno desde el archivo .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')


Paso 4: ingresar a GitHub

4.1. Inicializar Git y enviar a GitHub

  1. Inicializa un repositorio Git en la raíz de tu proyecto:

git init
git add .
git commit -m "Initial commit for feedback system"


  1. Agrega tu repositorio de GitHub como remoto y envía tu proyecto:

git remote add origin https://github.com/yourusername/feedback-system.git
git push -u origin main




Conclusión

En este tutorial, has creado un sistema seguro de comentarios anónimos utilizando Django, Twilio para notificaciones por SMS y Pinata para cargas multimedia. También aprendió cómo enviar su proyecto a GitHub y proteger información confidencial utilizando variables de entorno. Este sistema garantiza la privacidad y permite a los usuarios enviar comentarios y recibir notificaciones por SMS.

Siéntete libre de ampliar aún más el sistema añadiendo más funciones o mejorando la seguridad. Si esta guía le resultó útil, ¡comparta sus comentarios o preguntas en los comentarios!

El repositorio del proyecto se puede encontrar aquí: Repo

Declaración de liberación Este artículo se reproduce en: https://dev.to/chidoziemanagwu/building-a-secure-anonymous-feedback-system-with-django-twilio-and-pinata-4bh?1 Si hay alguna infracción, comuníquese con Study_golang @163.com eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3