Meniu
Menú digital por QR para restaurantes.
Descripción general
Meniu es una propuesta de plataforma para restaurantes donde los clientes pueden escanear un código QR desde su mesa y visualizar el menú digital sin instalar aplicaciones.
Lógica del sistema
La lógica del sistema se basa en mostrar categorías, productos, precios, descripciones, imágenes, alérgenos o ingredientes relevantes. También puede permitir ocultar productos agotados, actualizar precios y enviar pedidos al flujo del restaurante.
Tecnologías utilizadas
- React y TypeScript para la construcción de la interfaz.
- Vite como entorno de desarrollo y compilación del frontend.
- Tailwind CSS para el diseño visual y responsive.
- React Router DOM para la navegación entre vistas.
- PWA para permitir una experiencia similar a una aplicación instalable.
- NestJS con TypeScript para el desarrollo del backend.
- MySQL como base de datos relacional.
- TypeORM para la conexión entre el backend y la base de datos.
- JWT para autenticación de usuarios.
- Swagger para documentación y prueba de endpoints.
- Socket.IO para comunicación en tiempo real en módulos como pedidos.
Requisitos previos
- Navegador web moderno.
- Visual Studio Code u otro editor de código.
- Git instalado para clonar los repositorios.
- Node.js y npm instalados.
- MySQL instalado y en ejecución.
- Acceso a los repositorios del proyecto.
- Repositorio Frontend: FrontEnd Meniu
- Repositorio BackEnd: BackEnd Meniu
Guía de instalación paso a paso
-
Clonar los repositorios del frontend y backend:
git clone https://github.com/estvn/Meniu_Frontend git clone https://github.com/RND322/Meniu_Backend - Abrir ambas carpetas en Visual Studio Code o en el editor de preferencia.
-
Crear la base de datos en MySQL:
CREATE DATABASE sistema_meniu; -
Ejecutar el script de base de datos incluido en el backend, ubicado en la carpeta:
Este script crea las tablas principales del sistema, como restaurantes, usuarios, mesas, categorías, productos, órdenes, planes y suscripciones.BD/scriptDBmeniu.txt -
Configurar las variables de entorno del backend creando un archivo .env en la raíz del proyecto backend:
DB_TYPE=mysql DB_HOST=localhost DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=password123 DB_NAME=sistema_meniu DB_SYNCHRONIZE=true JWT_SECRET=super_secret_jwt_key NODE_ENV=development -
Instalar las dependencias del backend:
cd Meniu_Backend npm install -
Compilar y ejecutar el backend:
npm run build npm run start:dev -
Verificar que el backend esté funcionando desde:
http://localhost:3000 -
Acceder a la documentación de la API mediante Swagger:
http://localhost:3000/api -
Instalar las dependencias del frontend:
cd Meniu_Frontend npm install -
Ejecutar el frontend en modo desarrollo:
npm run dev -
Abrir el proyecto en el navegador desde la ruta generada por Vite, normalmente:
http://localhost:5173
Comandos de instalación o ejecución
# Backend
cd Meniu_Backend
npm install
npm run build
npm run start:dev
# Frontend
cd Meniu_Frontend
npm install
npm run dev
# Vista previa de producción del frontend
npm run build
npm run preview
Configuración importante
Para que Meniu funcione correctamente, primero debe estar activa la base de datos en MySQL y luego debe ejecutarse el backend. Después de iniciar el backend, el frontend puede conectarse a la API para gestionar restaurantes, usuarios, productos, mesas y pedidos.
Si se desea ejecutar todo de forma local, se debe revisar la configuración de conexión del frontend hacia la API, ya que algunas rutas pueden estar apuntando a un servidor desplegado. En ese caso, se debe cambiar la URL de la API por la ruta local del backend:
http://localhost:3000
Conclusión técnica
Meniu demuestra una solución tecnológica orientada a restaurantes, integrando menú digital, administración de productos, gestión de mesas, autenticación de usuarios y manejo de pedidos en tiempo real. El proyecto combina frontend moderno, backend escalable y base de datos relacional, mostrando una propuesta funcional para mejorar la experiencia de clientes y la operación interna de un restaurante.