Volver a Proyectos

🎊 MBA — RSVP Evento

Gestor de confirmaciones para eventos: enlace con token, reparto de la compra y control de pagos

En producción Recordatorio WhatsApp Enlace con token

Escala del Proyecto

2Roles
11Archivos
1.6kLíneas

Descripción General

Organizar un evento con treinta invitados tiene tres problemas que siempre se resuelven mal: saber cuántos vienen de verdad, decidir quién trae qué, y cobrar. Los tres acaban en un grupo de mensajería donde nadie confirma.

MBA lo resuelve con una aplicación mínima y directa. El organizador crea el evento y obtiene un enlace público con token que puede repartir; cada invitado entra, confirma si va o no, y opcionalmente indica qué producto lleva. Todo queda en base de datos.

A partir de ahí el panel resuelve lo demás: la lista de compra se reparte automáticamente entre los asistentes confirmados, hay control de pagos con lo cobrado y lo pendiente, y un botón que abre WhatsApp con el mensaje de recordatorio ya escrito. Dos roles: admin edita y coorganizador solo consulta.

Tecnologías Utilizadas


PHP

MySQL

WhatsApp

CSS3

Vista móvil

Tokens

Estructura del Proyecto

🔐 Login del panel

admin/login.php — acceso al área de administración.

📋 Dashboard

admin/dashboard.php — creación y listado de eventos, con botón para copiar el enlace público.

✅ Respuestas

admin/event_responses.php — vistas separadas de quién viene y quién no, con el control de pagos.

🌐 Formulario público

index.php?token=… — confirmación de asistencia sin necesidad de cuenta.

🛒 Lista de compra

shopping_list.php — reparto automático entre los asistentes confirmados.

🧩 Núcleo

includes/ con auth.php, config.php, db.php y functions.php.

🎨 Tema

assets/js/theme.js para el cambio de tema de la interfaz.

Arquitectura

Estructura PHP clásica y deliberadamente pequeña: una parte pública sin autenticación — el formulario al que se llega por token — y un panel privado con dos roles. El núcleo compartido vive en includes/ y el esquema en sql/.

mba/
├── index.php              # formulario público (?token=…)
├── shopping_list.php      # reparto de la compra
├── admin/
│   ├── login.php · logout.php
│   ├── dashboard.php      # eventos y enlace público
│   └── event_responses.php # asistentes y pagos
├── includes/               # auth, config, db, functions
├── assets/                 # app.css, theme.js
└── sql/schema.sql

Del Evento al Cobro

  1. Crear el evento: el organizador da nombre, fecha y descripción desde el panel.
  2. Obtener el enlace: el sistema genera un enlace público con token y un botón para copiarlo.
  3. Repartir: el enlace se envía por el canal que sea; el invitado no necesita cuenta.
  4. Confirmar: cada persona indica si va o no, y opcionalmente qué producto lleva.
  5. Ver el reparto: el panel separa a los que vienen de los que no, en dos vistas distintas.
  6. Repartir la compra: la lista de la compra se divide automáticamente entre los confirmados.
  7. Controlar los pagos: se marca quién ha pagado y queda visible lo pendiente por cobrar.
  8. Recordar: un botón abre WhatsApp con el mensaje prearmado para los que faltan.

Seguridad Implementada

  • El acceso público es por token único por evento: sin el enlace correcto no se llega al formulario.
  • Panel de administración protegido por login en includes/auth.php.
  • Dos roles: admin con permiso de edición y coorganizador en solo lectura.
  • Credenciales y configuración centralizadas en includes/config.php.
  • Las credenciales iniciales documentadas en el README deben cambiarse antes de usarlo en producción.

Retos Técnicos y Decisiones de Diseño

El token elimina la barrera de entrada

Pedir registro a treinta invitados para que digan si vienen a una cena garantiza que no responda ni la mitad. El enlace con token da acceso directo al formulario: un clic y confirmado. Es la decisión que hace que la herramienta se use.

Reparto automático sobre los confirmados

Dividir la compra entre los invitados es fácil; dividirla entre los que han confirmado es lo útil, porque el número cambia cada día hasta la víspera. shopping_list.php recalcula sobre las confirmaciones actuales.

Un rol de solo lectura resuelve un problema real

En un evento suele haber más de un organizador, pero no todos deben poder borrar cosas. El rol coorganizador permite que otra persona consulte quién viene y quién ha pagado sin riesgo de que modifique nada por error.

Mi Rol

Desarrollador full stack — autor único.

Modelo de datos, formulario público con token, panel con dos roles, reparto de la lista de compra, control de pagos y despliegue.

Estado del Proyecto

En producción en mba.valentindg.com, usado para gestionar eventos reales.

Código y Enlaces

El código está en el repositorio Proyectos-Personales, dentro de la carpeta mba/.