Identificar problemas de los consumidores, ofrecer encuestas que les entreguen valor y recursos de ayuda según sus respuestas, y obtener sus datos para guardarlos en una base de datos. Integrar con Beehiv para segmentación y envío de emails, y Plausible para análisis de comportamiento del usuario.
- Backend:
- Framework: Spring Boot (Java)
- Despliegue: Railway
- Base de Datos:
- Base de Datos: PostgreSQL
- Proveedor: Supabase
- Frontend:
- Framework: Next.js 14
- Despliegue: Vercel (Inicialmente gratuito, luego considerar Railway o un VPS)
- Terceros:
- Email Marketing: Beehiv
- Análisis de Comportamiento: Plausible
-
Usuarios (users):
CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email VARCHAR(255) NOT NULL UNIQUE, name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
Encuestas (surveys):
CREATE TABLE surveys ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title VARCHAR(255) NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
Preguntas (questions):
CREATE TABLE questions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), survey_id UUID REFERENCES surveys(id) ON DELETE CASCADE, question_text TEXT NOT NULL, question_type VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
Respuestas (responses):
CREATE TABLE responses ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(id) ON DELETE CASCADE, survey_id UUID REFERENCES surveys(id) ON DELETE CASCADE, question_id UUID REFERENCES questions(id) ON DELETE CASCADE, response_text TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Estructura del Proyecto:
- Configura un proyecto Spring Boot con las dependencias necesarias.
- Crea controladores, servicios y repositorios para manejar las encuestas y respuestas.
Configuración en application.properties
:
spring.datasource.url=jdbc:postgresql://<SUPABASE_DB_URL>:5432/<DATABASE_NAME>
spring.datasource.username=<SUPABASE_DB_USERNAME>
spring.datasource.password=<SUPABASE_DB_PASSWORD>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
Endpoints Básicos:
- Crear Encuesta
- Obtener Encuestas
- Enviar Respuestas de Encuestas
Formulario de Encuesta:
- Crea componentes de React para manejar los formularios de encuestas.
- Configura los endpoints para enviar y recibir datos del backend.
Envio de Emails:
- Crea un servicio en Spring Boot para integrar con la API de Beehiv.
- Utiliza el servicio para añadir suscriptores y enviar emails segmentados según las respuestas.
Integración de Plausible:
- Añade el script de seguimiento de Plausible a tu aplicación Next.js para rastrear el comportamiento del usuario.
- Hobby Plan: $5/mes por servicio
- Pro Plan: $20/mes por asiento
- Free Tier: Gratis (Incluye 500 MB de almacenamiento y 2 GB de transferencia)
- Pro Plan: $25/mes (Incluye 8 GB de almacenamiento y 500 GB de transferencia)
- Free Tier: Gratis inicialmente
- Pro Plan: Desde $20/mes si se decide mover a un VPS o a Railway en el futuro.
- Launch Plan: $0 (Gratis hasta 2,500 suscriptores)
- Scale Plan: $39/mes
- Plausible Analytics: $9/mes para el plan básico
- Configurar proyectos en Railway, Supabase y Vercel.
- Configurar las bases de datos y despliegues iniciales.
- Desarrollar la lógica de encuestas en Spring Boot.
- Desarrollar la interfaz de usuario en Next.js.
- Integrar ambos con endpoints RESTful.
- Configurar la integración con Beehiv para la gestión de emails.
- Configurar Plausible para el análisis de comportamiento del usuario.
- Realizar pruebas exhaustivas de todas las funcionalidades.
- Desplegar la aplicación en producción.