Volver a proyectos
Sitio Web Restaurante De La Finca
RestauranteDuración: 4 semanas + evolución continuaEstado: En producción

Sitio web en producción del restaurante De La Finca (Quepos, Costa Rica), bilingüe ES/EN, con menú por categorías exportable a PDF, galería editorial, reseñas reales de Google y reservas que se envían por WhatsApp validadas en hora de Costa Rica y quedan registradas para el restaurante. Incluye un panel de administración propio para las reservas, el menú, las imágenes del sitio y la galería, protegido con contraseña y doble factor (TOTP), sesiones revocables y límite de intentos en Postgres. En 2026 pasó por una auditoría de seguridad, accesibilidad y rendimiento: CSP sin unsafe-eval, datos estructurados, imágenes renderizadas en el servidor y 36 dependencias sin uso eliminadas.
Tecnologías
- Next.js 14
- TypeScript
- Tailwind CSS
- Drizzle ORM
- PostgreSQL (Supabase)
- Supabase Storage
- jose (JWT)
- TOTP
- Google Places API
- Framer Motion
- Zod
- Vitest
- Vercel Cron
Funcionalidades
- Sitio bilingüe ES/EN con detección automática del idioma del navegador
- Menú por categorías en orden fijo, con exportación a PDF y categorías vacías ocultas
- Galería con su propia tabla: categorías, pie de foto ES/EN, filtros y lightbox con teclado y swipe
- Reservas por WhatsApp validadas en hora de Costa Rica: sin horas pasadas, última a las 9:30 PM y almuerzo o cena según la hora
- Panel /admin/reservas: cada reserva queda registrada para confirmarla o cancelarla; las reglas se validan igual en el formulario y en el servidor, y se borran a los 90 días
- Reseñas reales de Google Places en caché de 12 h para no pagar cada visita
- Panel admin: menú (crear, reordenar, activar), imágenes del sitio y galería con subida múltiple
- Login del admin con contraseña (scrypt) + doble factor TOTP de un solo uso
- Sesiones revocables ('cerrar todas') y límite de intentos por IP y global en Postgres
- Subidas validadas por los bytes reales del archivo, no por la extensión
- CSP endurecida (sin unsafe-eval), HSTS y datos estructurados JSON-LD de restaurante
- Imágenes de la home renderizadas en el servidor con caché; assets de 57 a 20 MB
- Monitoreo de errores propio sin servicios externos y cron diario de mantenimiento
- Correcciones de accesibilidad WCAG (contraste, foco, etiquetas) y SEO con sitemap y Open Graph
- Pruebas con Vitest del horario, las reglas de reserva y la validación de subidas