Skip to content
 
 

Repository files navigation

🍽️ Sistema Integral de Restaurante — Restobar

Logo

Sistema integral de gestión para restaurantes
Desarrollado como proyecto académico en el curso de Ingeniería y Procesos de Software (IPS) — UNSA 2026-A

CI/CD GitHub Pages License: MIT


Tabla de Contenidos


Sobre el Proyecto

Restobar es un fork del sistema open source matias-rivera/restobar (licencia MIT), extendido y reestructurado como un Monorepo con Turborepo para el desarrollo paralelo de seis módulos funcionales orientados a automatizar las operaciones críticas de un restaurante.

El proyecto aborda la gestión de pedidos, mesas, pagos, cocina, delivery y administración, con énfasis en la integración entre módulos mediante eventos en tiempo real.

Repositorio del proyecto: github.com/Arg128/Proyecto-IPS-restobar
Documentación del equipo: arg128.github.io
Demo desplegada: Arg128.github.io/Proyecto-IPS-restobar


Módulos del Sistema

🧑‍💼 Módulo de Administrador

Panel de control de mayor nivel de acceso. Permite visualizar métricas de todos los módulos, gestionar usuarios y roles, y acceder al modo editor por módulo mediante un login temporizado del responsable del área (sesión de 5 minutos). Incluye dashboard con estadísticas y gráficas de desempeño.

Ver capturas
Descripción Captura
Módulo de gestión de usuarios: visualización, búsqueda y administración de cuentas cap1
Formulario de registro/edición de usuarios con datos personales y credenciales cap2
Panel de administración de roles: define funciones y restricciones de acceso cap3
Sección de permisos: establece acciones disponibles por rol cap4

💰 Módulo de Caja — Facturas

Centraliza todas las operaciones financieras del restaurante. Soporta pagos por efectivo, tarjeta, transferencia bancaria y Yape. Genera automáticamente facturas o boletas por cada transacción. Incluye un panel de estadísticas con filtros por día, semana, mes y año, gráficos de barras y diagramas circulares (plato más vendido, ingresos por período), y una sección separada de gestión de gastos (almacén, mantenimiento, alquiler, impuestos).

Ver capturas
Descripción Captura
Panel principal: resumen de ingresos, gastos, ganancias y pagos cap1
Gestión de pagos: registro y consulta de transacciones cap2
Pantalla de generación de comprobantes de pago cap3
Formulario de emisión de boletas o facturas cap4
Confirmación y listado de comprobantes emitidos cap5
Vista detallada del comprobante de venta cap6
Previsualización del comprobante antes de imprimir cap7
Gestión de gastos: registro y control de egresos cap8
Estadísticas: indicadores de ingresos, gastos y utilidad neta cap9
Gráficos de métodos de pago y categorías de gasto cap10

🍳 Módulo de Cocina — Almacén — Menú

Gestiona el proceso completo de preparación de alimentos. Cada plato en cola muestra sus etapas de cocción con temporizadores configurables (ej. Bistec: Cociendo 4min → Terminado). Al completar un paso, el sistema actualiza automáticamente el queue y calcula el promedio acumulado de tiempos por plato. El módulo de menú incluye el stock de insumos por plato, actualizado en tiempo real conforme se preparan los pedidos.

Ver capturas
Descripción Captura
Panel de cocina: pedidos pendientes, en preparación y completados cap1
Configuración de tiempos de preparación por producto cap2
Menú y stock de provisiones: gestión de ingredientes por plato cap3

🛵 Módulo de Delivery

Gestiona pedidos para despacho a domicilio. En la implementación actual funciona como simulación interna de pedidos por llamada. Incluye soporte para pagos con efectivo, tarjeta y transferencia bancaria, con interfaz rediseñada para mayor claridad operativa.

Ver capturas
Descripción Captura
Pantalla principal del módulo Delivery cap1
Lista de pedidos delivery: estado, cliente y acciones cap2
Detalle de pedido: productos, datos del cliente y total cap3
Pago con tarjeta cap4
Pago en efectivo: confirmación de entrega cap5
Pago por transferencia bancaria cap6
Confirmación de pago exitoso cap7
Formulario de nuevo pedido delivery cap8

🪑 Módulo de Mesas

Centro de comunicación entre módulos. Gestiona el ciclo de vida de las mesas: creación, edición y eliminación; visualización en tiempo real del estado de ocupación; y detección/emisión de eventos hacia los módulos de Mozo, Caja y Cocina.

Ver capturas
Descripción Captura
Panel principal: estado de mesas en tiempo real, contador de libres/ocupadas y asignación de clientes cap1

🧑‍🍳 Módulo de Mozo (Sprint 3 — En planificación)

Interfaz optimizada para móvil. Mostrará mesas disponibles y emitirá notificaciones visuales/sonoras con ventana emergente al recibir un llamado de mesa. Requiere WebSockets para la capa de tiempo real; desarrollo programado para Sprint 3.


Stack Tecnológico

Capa Tecnología
Frontend ReactJS + Redux
Backend Node.js + Express (API REST)
Base de datos MySQL + Sequelize (ORM)
Servidor web Nginx (reverse proxy)
Contenedores Docker + docker-compose
Monorepo Turborepo (pnpm workspaces)
CI/CD GitHub Actions
UI Base AdminLTE

Arquitectura

El sistema sigue el patrón MVC organizado en una arquitectura Monorepo con Turborepo:

Proyecto-IPS-restobar/
├── apps/
│   ├── backend/        # Node.js + Express — API REST (puerto 5003)
│   └── frontend/       # React + Redux — SPA (puerto 3002)
├── packages/           # Código compartido entre apps
├── turbo.json          # Configuración de tareas y caché incremental
└── docker-compose.yml  # Orquestación de servicios

El frontend se comunica con el backend vía API REST. Nginx actúa como proxy inverso en el puerto 80. Todo el stack se orquesta con Docker Compose para garantizar la reproducibilidad del entorno.


Instalación y Ejecución

Prerrequisitos

Pasos

  1. Clonar el repositorio

    git clone https://github.com/Arg128/Proyecto-IPS-restobar.git
    cd Proyecto-IPS-restobar
  2. Instalar pnpm (si no lo tienes)

    npm install -g pnpm
  3. Instalar dependencias (desde la raíz del monorepo)

    pnpm install
  4. Configurar variables de entorno

    Ve a apps/backend/, copia .env.example y renómbralo a .env:

    NODE_ENV=development
    PORT=5003
    JWT_SECRET=tu_secreto
    DB_USER=root
    DB_NAME=restobar
    DB_PASSWORD=tu_password
    DB_HOST=localhost
    DB_DIALECT=mysql
    
  5. Crear la base de datos y poblarla

    cd apps/backend
    npx sequelize-cli db:migrate
    npx sequelize-cli db:seed:all
  6. Ejecutar el proyecto (desde la raíz)

    pnpm run dev

    El frontend estará disponible en http://localhost:3002 y el backend en http://localhost:5003.


Deploy con Docker

  1. Instalar Docker

  2. Clonar el repositorio

    git clone https://github.com/Arg128/Proyecto-IPS-restobar.git
    cd Proyecto-IPS-restobar
  3. Levantar los servicios

    docker-compose up --build

    El sistema estará disponible en http://localhost:80.


Pipeline CI/CD

El proyecto cuenta con un pipeline de integración y despliegue continuo configurado con GitHub Actions en .github/workflows/. Se activa automáticamente en cada push a main:

Etapa Descripción
Trigger Push o Pull Request a main
Install Instalación de dependencias (pnpm install)
Build Compilación del frontend
Deploy Publicación en GitHub Pages

Demo en vivo: Arg128.github.io/Proyecto-IPS-restobar


Equipo

Proyecto desarrollado en el curso Ingeniería y Procesos de Software — UNSA, Semestre 2026-A
Docente: Ing. Oscar Alberto Ramírez Valdez

Rol Integrante Módulo
Product Owner / Dev Sarmiento Tico Limberg Froilan Administrador
Scrum Master / Dev Retamozo Calatayud Angel Julio Cocina — Almacén
Developer Quispesayhua Hancco Joseph Brayan Caja — Facturas
Developer Quispe Rupaylla Fabrizio Alonso Delivery
Developer Mamani Solorzano Efrain Alex Mesas

Estado del Proyecto

Hito actual: Hito 2 (Sprint 1 y 2) — 60% de avance

Módulo Responsable Estado Avance
Caja — Facturas Quispesayhua H. J.B. 🔄 En desarrollo 65%
Mesas Mamani Solorzano E.A. ✅ Ready 70%
Delivery Quispe Rupaylla F.A. ✅ Ready 70%
Cocina — Almacén Retamozo Calatayud A.J. 🔄 En desarrollo 60%
Mozo 📋 Backlog (Sprint 3) 0%
Administrador Sarmiento Tico L.F. 📋 Backlog (Sprint 3–4) 0%

Roadmap:

  • Hito 3 (Sprint 3 y 4 — Jul 2026): Módulos Mozo, Administrador, integración WebSockets, pruebas end-to-end y despliegue en producción.

Licencia

Distribuido bajo la Licencia MIT. Ver LICENSE para más información.


Agradecimientos

Basado en el trabajo original de Matías Rivera.

About

Restaurant Management App made with NodeJS, Express, SQLite + Drizzle, ReactJS and Redux.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages