Ir al contenido
PaqueteAuditoría de arquitectura: revisión independiente y plan de migración paso a paso en 5-7 días laborables
Proyectos
Detalle del proyecto

MERSIN HATAY RESTAURANT · 2025 – ACTUALIDAD

Mersin Hatay Restaurant

La web en tres idiomas de un restaurante de cocina de Hatay en Mersin. Una carta con precios e información sobre alérgenos, blog, preguntas frecuentes y contacto; la carta y los precios se gestionan desde un panel de administración propio.

Mi función: Diseño, desarrollo y mantenimiento: toda la responsabilidad técnica es mía.

turco, inglés, ruso
3 idiomas
platos en la carta
200+
ley turca que cumple la web
4207
tests automatizados
~320

El problema

Entre los clientes del restaurante hay turistas que no hablan turco y visitantes de habla rusa. La carta tenía que estar completa en cada idioma, y cada idioma debía poder encontrarse en los buscadores como una página propia.

Los precios cambian en la carta QR del sistema de caja; actualizarlos a mano uno por uno en la web lleva tiempo y da lugar a errores. Además, en Turquía la publicidad de bebidas alcohólicas está limitada por la ley n.º 4207.

Arquitectura

Web

  • Tailwind CSS

TR · EN · RU

Panel de administración

  • Tailwind CSS

Carta, precios y blog

Laravel 13

  • Laravel

Blade y Eloquent

Base de datos

  • PostgreSQL

Carta, contenido y cola

Carta QR

Importación de precios desde la caja

Las traducciones están en la misma fila, en una columna aparte por idioma; para el orden alfabético turco, la base de datos usa una collation ICU.

Lo que he construido

  • Carta en tres idiomas

    Categorías, platos, raciones y extras en turco, inglés y ruso; si falta una traducción al ruso, se muestra el campo en inglés.

  • Precios y alérgenos

    Precio, información sobre alérgenos, raciones y extras en cada plato.

  • Importación de precios desde la carta QR

    Los precios de la carta QR del sistema de caja se asocian a los productos en el panel, se revisan antes y se aplican en la web en una sola operación.

  • SEO multilingüe

    Cada idioma en su propia dirección (/en, /ru); etiquetas hreflang, un sitemap dinámico con variantes de idioma y datos schema.org de tipo Restaurant.

  • Formulario de contacto con protección antispam

    Protección por capas contra bots con Cloudflare Turnstile, un control de tiempo en el formulario y limitación de envíos.

  • Panel de administración

    Categorías de la carta, platos, imágenes, opciones y entradas del blog se gestionan en un solo lugar.

Problemas difíciles que he resuelto

  1. 1

    Sincronizar precios con el sistema de caja

    Escribí un flujo de importación que lee la carta QR de la caja y asocia sus líneas a los platos de la web: sugerencias, asociación manual, vista previa y aplicación en una sola transacción de base de datos.

  2. 2

    Cumplir la prohibición de publicidad del alcohol

    Reduje los textos sobre bebidas alcohólicas a pura información de producto según la ley n.º 4207, añadí un aviso de +18 y aseguré la regla con un test automatizado.

  3. 3

    Un tercer idioma en producción

    Añadí el ruso con la web en funcionamiento: 7 categorías, 212 platos, 594 nombres de opciones, 10 preguntas frecuentes y 10 entradas del blog. Las traducciones que faltan recurren al inglés, para que ninguna página quede vacía.

  4. 4

    Sin sistema de reservas, a propósito

    El restaurante tiene tanta afluencia que ningún sistema de reservas digital puede llevar el control de la sala sin errores. Por eso eliminé la reserva online y dirijo a los clientes al teléfono. Una etiqueta sobre los botones de llamada muestra, en la hora local del restaurante, si está abierto ahora y cuándo vuelve a abrir.

Tecnologías

  • Laravel
  • PHP
  • PostgreSQL
  • Tailwind CSS
  • Vite
  • GitHub Actions

Servicios relacionados

¿Está construyendo un sistema similar? Podemos trabajar juntos desde la arquitectura hasta la puesta en producción.

Contactar