Cadáver Exquisito - Plataforma de Creación Poética Colaborativa
Cadáver Exquisito: Únete al Camposanto Literario de Almas Errantes
Enlace al Sitio: https://www.cadaverexquisito.cl/
Resumen del Proyecto
"Cadáver Exquisito" es una plataforma web lúdico-creativa diseñada para fomentar la creación poética colaborativa dentro de la comunidad de la Universidad de Chile y un círculo selecto de invitados. Inspirada en el clásico juego surrealista, la aplicación permite a los participantes construir poemas verso a verso, conociendo solo una pequeña pista del aporte anterior, culminando en la revelación de una obra colectiva única y siempre inesperada.
El proyecto busca ofrecer un espacio digital exclusivo y seguro para la experimentación literaria, promoviendo la creación colaborativa anónima (durante el proceso creativo) o bajo seudónimos. Además se busca entregar a cada miembro de la comunidad la confianza para poder lanzarse a la escritura poética por medio de una experiencia lúdica, en un mundo donde la lectura y escritura de poesía parecieran estar cada vez más alejados de la población.
Objetivos del Proyecto
Los principales objetivos detrás de "Cadáver Exquisito" son:
- Proveer un espacio digital interactivo y seguro para la experimentación poética y la escritura colaborativa.
- Fomentar la participación creativa dentro de la comunidad universitaria, extendiéndose a invitados.
- Generar obras colectivas (poemas y, futuramente, otros formatos) con resultados sorprendentes e impredecibles.
- Facilitar una experiencia de juego que reduzca la aprensión hacia la escritura poética, haciéndola accesible y divertida.
- Construir una galería digital donde estas creaciones colaborativas puedan ser compartidas y apreciadas.
Características Principales
La plataforma cuenta con una serie de funcionalidades diseñadas para hacer la experiencia de creación colaborativa fluida y atractiva:
- Creación Colaborativa de Poemas: Los usuarios contribuyen versos de forma secuencial, viendo solo una pista del verso anterior.
- Salas de Creación Temáticas ("Patios"): Diferentes espacios con reglas variables (ej. longitud máxima de poemas, tiempo por verso) para diversificar la experiencia.
- Sistema de Turnos con Bloqueo Temporal: Asegura que un solo usuario escriba por vez en un "lienzo" (poema en progreso).
- Autenticación Segura: Integración con Google OAuth 2.0 a través de NextAuth.js, con validación de dominios institucionales y una lista blanca para invitados.
- Perfiles de Usuario y Seudónimos: Los usuarios pueden gestionar un seudónimo para sus contribuciones, manteniendo un balance entre reconocimiento y privacidad.
- Galería de Obras Completadas: Un espacio para leer y apreciar los poemas finalizados, mostrando los colaboradores.
- Proceso de Titulación Comunitario: Los poemas completados entran en una fase donde los colaboradores proponen títulos, y luego la comunidad (o los colaboradores) vota por el definitivo.
- Reacciones a Poemas: Sistema de "Like/Dislike" para que los usuarios expresen su apreciación por las obras en la galería.
- Interfaz de Usuario Temática y Personalizable: Uso de DaisyUI con múltiples temas seleccionables por el usuario.
- Navegación y Filtrado Avanzado: Paginación y múltiples opciones de filtro en la galería para facilitar el descubrimiento de poemas y la interacción con estos cuando es posible.
- Mantenimiento Automatizado: Tareas programadas (Cron Jobs) para gestionar los ciclos de vida de los poemas (deadlines de propuestas, votaciones, limpieza de turnos expirados).
- Landing Page Pública: Presenta el proyecto a nuevos visitantes y gestiona la redirección para usuarios ya autenticados.
Stack Tecnológico Utilizado
La plataforma "Cadáver Exquisito" se construyó utilizando un conjunto de tecnologías modernas y robustas, seleccionadas para ofrecer una experiencia de desarrollo eficiente y un producto final performante y escalable:
- Framework Fullstack: Next.js 14 (utilizando el App Router). Esto permite una combinación de Server Components para la eficiencia en la carga de datos y Client Components para la interactividad.
- Lenguaje de Programación: TypeScript en todo el proyecto (frontend, backend y lógica de negocio), asegurando un tipado fuerte y una mejor mantenibilidad del código.
- Estilizado y UI:
- Tailwind CSS: Framework CSS utility-first para un diseño rápido y personalizable.
- DaisyUI: Plugin para Tailwind CSS que proporciona un conjunto de componentes UI pre-estilizados y un sistema de temas personalizables, facilitando la coherencia visual y la selección de temas por el usuario.
- Base de Datos: Vercel Postgres (impulsado por NeonDB). Una base de datos PostgreSQL serverless totalmente gestionada y optimizada para el entorno de Vercel.
- Autenticación: NextAuth.js, configurado con el proveedor Google OAuth 2.0 para un inicio de sesión seguro y familiar, con lógica personalizada para la validación de dominios y gestión de usuarios.
- Validación de Datos (Backend): Zod, una librería de declaración y validación de esquemas basada en TypeScript, utilizada para asegurar la integridad y corrección de los datos recibidos por los API Route Handlers.
- Despliegue y Hosting: Vercel. Plataforma optimizada para Next.js que provee despliegue continuo desde GitHub, funciones serverless para el backend, red de entrega de contenido (CDN) y gestión de variables de entorno.
- Lógica de Backend: Implementada como módulos TypeScript y consumida por los API Route Handlers de Next.js, manteniendo una clara separación de concerns.
Consideraciones de Diseño y Desarrollo
El desarrollo de "Cadáver Exquisito" se abordó con un enfoque en la creación de una experiencia de usuario fluida y segura, junto con una base de código mantenible y robusta.
- Experiencia de Usuario (UX): Se priorizó una interfaz intuitiva que facilitara la participación incluso para usuarios no familiarizados con el juego original. Esto incluyó una navegación clara, feedback visual a través de notificaciones (toasts), y la personalización de la apariencia mediante temas. La meta fue hacer el proceso creativo lo más ágil y disfrutable posible.
- Seguridad de la Aplicación: Desde el inicio, la seguridad fue un componente integral del diseño. Se implementaron múltiples capas para proteger la aplicación y los datos de los usuarios:
- Autenticación Robusta: Utilización de Google OAuth 2.0 a través de NextAuth.js, con validación estricta de dominios de correo y listas blancas para controlar el acceso.
- Autorización Cuidadosa: El acceso a funcionalidades y datos se gestiona en el backend, asegurando que los usuarios solo puedan realizar las acciones permitidas según su estado y participación.
- Validación de Entradas: Todas las entradas de datos provenientes del cliente hacia el backend son validadas rigurosamente (utilizando Zod) para asegurar su integridad y prevenir vulnerabilidades comunes.
- Protección contra Inyección SQL: El uso de consultas parametrizadas a la base de datos es una práctica estándar en todo el proyecto.
- Manejo Seguro de Secretos: Todas las claves de API y credenciales sensibles se gestionan como variables de entorno y no se exponen en el código fuente.
- Configuraciones de Seguridad HTTP: Básicamente headers de seguridad para mitigar riesgos como clickjacking y sniffing de tipo MIME.
Lecciones Aprendidas y Evolución Futura
El desarrollo de "Cadáver Exquisito" ha sido una experiencia de aprendizaje continua, reforzando la importancia de varios aspectos clave en la creación de aplicaciones web modernas:
- Seguridad desde el Inicio: Integrar consideraciones de seguridad desde las primeras etapas del diseño y desarrollo es crucial, en lugar de tratarla como un añadido posterior. La validación exhaustiva de entradas y una autorización cuidadosa son fundamentales.
- Claridad en la Lógica de Negocio: Definir claramente las reglas del juego y los flujos de estado de los poemas (propuestas, votaciones) fue vital para implementar las funcionalidades de manera correcta y robusta. Esto está explicado en la sección de "Cómo Jugar" para que no sea simplemente una colección de reglas internas entendibles para quien lea el código, sino que para los usuarios.
- Experiencia de Usuario (UX): Pequeños detalles, como la consistencia en la visualización de información, la persistencia de filtros, y el feedback claro a través de notificaciones, impactan significativamente la percepción y usabilidad de la aplicación.
- Elección del Stack Tecnológico: La combinación de Next.js, TypeScript, Vercel y PostgreSQL demostró ser una base sólida y productiva para este tipo de proyecto, permitiendo un desarrollo rápido y un despliegue eficiente.
Próximos Pasos y Visión a Futuro
"Cadáver Exquisito" tiene potencial para seguir creciendo y enriqueciendo la experiencia creativa de su comunidad. Algunas de las futuras expansiones y mejoras consideradas incluyen:
- Nuevos Formatos Creativos:
- Microcuentos Colaborativos: Expandir la plataforma para permitir la creación colaborativa de microcuentos, siguiendo una mecánica similar a la de los poemas.
- Mejoras en la Galería y Descubrimiento:
- Filtro de Ordenamiento Avanzado: Permitir a los usuarios ordenar la galería por criterios como "más populares" (basado en reacciones) o "más antiguos".
- Sistema de Rankings Básico: Introducir clasificaciones sencillas para los poemas más valorados o los usuarios más participativos, fomentando la interacción y lógicas de gamificación un poco más avanzadas.
- Funcionalidades Comunitarias:
- Explorar la posibilidad de seguir a otros autores o recibir notificaciones sobre nuevos poemas en salas de interés.
- Optimización y Mantenimiento Continuo:
- Monitoreo constante del rendimiento y la seguridad.
- Implementación de rate limiting más granular para APIs críticas si el tráfico lo requiere. Por ahora esto no significa un gran problema porque la aplicación se encuentra acotada a la comunidad de la Universidad de Chile y es manejable con otras medidas implementadas desde ya en el backend.
- Respuesta al feedback de los usuarios y corrección de errores.
- Soporte y Sostenibilidad:
- Adición de un botón de donaciones para ayudar a cubrir los costos de mantenimiento y desarrollo futuro, si la comunidad lo valora.
Este proyecto se concibe como una plataforma viva, con la intención de evolucionar y seguir ofreciendo un espacio único para la creatividad compartida, además de un enorme proceso de aprendizaje y desarrollo profesional.