Esta es una aplicación web para gestionar invitaciones de cumpleaños, construida con Next.js y desplegada en Cloudflare Workers.
- Fondo de video/imagen personalizable
- Sistema de invitaciones basado en tokens
- Formulario de confirmación de asistencia
- Registro de número de adultos y placa de vehículo
- Interfaz responsive y moderna
-
Clona el repositorio
-
Instala las dependencias:
nvm use yarn install make env
-
Agrega tus archivos de medios:
- Coloca tu video de fondo en
public/background.mp4 - Coloca tu imagen de fondo en
public/background.jpg
- Coloca tu video de fondo en
-
Configura las variables de entorno:
cp .dev.vars.example .dev.vars
Edita
.dev.varscon tus configuraciones.
Para ejecutar la aplicación en modo desarrollo:
yarn dev
yarn previewLa aplicación está configurada para desplegar en Cloudflare Workers. Para desplegar:
yarn deploy- Genera tokens únicos para cada invitado
- Comparte la URL de la invitación con el token:
https://tu-dominio.com?token=TOKEN_UNICO - Los invitados pueden confirmar su asistencia y proporcionar información adicional
- Edita
src/app/page.tsxpara modificar el contenido de la invitación - Modifica los estilos en
src/app/globals.css - Actualiza los componentes en
src/app/components/
Actualmente la aplicación usa una base de datos en memoria para demostración. Para producción, deberías:
- Configurar una base de datos real (por ejemplo, Cloudflare D1)
- Actualizar los endpoints en
src/app/api/para usar la base de datos - Implementar un sistema de autenticación seguro para los tokens
La aplicación utiliza Cloudflare D1 como base de datos SQL serverless. Para configurar y gestionar la base de datos:
-
Crea una base de datos D1 en tu cuenta de Cloudflare:
npx wrangler d1 create birthday-invitations
-
Actualiza tu archivo
wrangler.tomlcon la información de la base de datos. -
Inicializa el esquema de la base de datos:
npx wrangler d1 execute birthday-invitations --file=./schema.sql
-
Para consultar datos localmente durante el desarrollo:
npx wrangler d1 execute birthday-invitations --local --command="SELECT * FROM invitation"
La aplicación interactúa con D1 a través de los endpoints API en src/app/api/guests/.
MIT