Gestión para Restaurantes
Realizado durante el año 2023
Proyecto realizado para la materia Programación III de la carrera Técnico Universitario en Programación bajo la tutela de Maximiliano Sar Fernandez.
El proyecto es un sistema web de gestión para establecimientos gastronómicos, desarrollado como práctica académica. Su función principal es digitalizar y administrar el flujo de trabajo operativo de un restaurante, desde el momento en que se habilita una mesa hasta su facturación final.
La aplicación resuelve la necesidad de coordinar procesos concurrentes: la asignación de mesas al personal, el registro de pedidos en tiempo real, la actualización del inventario de insumos y el control de acceso mediante perfiles de usuario (gerencia y servicio). Sirve como una demostración práctica de cómo modelar y resolver problemas de lógica comercial utilizando un entorno relacional.
Arquitectura y Tecnologías
La aplicación está construida sobre ASP.NET Web Forms (C#) y utiliza SQL Server 2019 como motor de base de datos. El código se divide en cinco capas principales:
- Presentación (RestoApp): Formularios web (
.aspx) que manejan la interacción del usuario. - Negocio: Contiene las reglas comerciales, como la validación del estado de las mesas y la disponibilidad de insumos.
- Acceso a Datos (SQLDB): Centraliza la comunicación con la base de datos mediante la ejecución de consultas y el manejo de conexiones.
- Dominio: Define las entidades del sistema (Mesas, Pedidos, Usuarios, Insumos).
- Helper: Provee funcionalidades transversales de asistencia.
Modelado de Datos y Lógica Comercial
La integridad del sistema recae en un diseño relacional. SQL Server gestiona el ciclo de vida de los pedidos:
- Transacciones y Estado: Las mesas actúan como entidades dinámicas que transicionan entre distintos estados (Libre, Ocupada, Cerrada). Los pedidos se vinculan al mesero asignado y a los insumos consumidos.
- Gestión de Insumos: El stock se actualiza conforme se agregan productos a un pedido activo.
Seguridad Basada en Roles
El sistema implementa un control de acceso estratificado:
- Gerente: Posee privilegios de administración global, gestión de insumos, asignación de mesas y visualización de facturación.
- Mesero: Su interfaz está restringida a la visualización y modificación exclusiva de las mesas que le fueron asignadas.
Perspectiva Técnica
El desarrollo en ASP.NET Web Forms permite consolidar conceptos del ciclo de vida de una aplicación web y la persistencia de datos relacionales. Esta base arquitectónica orientada a objetos y la estructuración en capas facilitan la comprensión de sistemas heredados y establecen los fundamentos necesarios para migrar estas lógicas hacia frameworks modernos como ASP.NET Core, profundizando en arquitecturas limpias y SQL avanzado.