REQUISITOS FUNCIONALES Y NO FUNCIONALES - migueltovarb/ISWElectiva110202-17 GitHub Wiki
REQUISITOS FUNCIONALES
1. Registro e inicio de sesión de clientes y personal
El sistema debe permitir el registro y autenticación del personal (administradores, meseros) mediante credenciales asignadas por el admin restaurante.
El sistema debe permitir solamente el registro de personal de restaurante (administrador y mesero) desde el panel de administrador.
El sistema debe permitir el registro de clientes mediante correo electrónico y contraseña.
El sistema debe permitir que tanto el personal como los clientes inicien y cierren sesión según su tipo de cuenta.
El sistema debe permitir la recuperación de contraseña de los clientes mediante correo electrónico.
2. Visualización del menú (cliente, personal)
El cliente debe poder visualizar el menú completo del restaurante, con nombre, descripción, precio, estado (disponible/no disponible) e imagen de los productos y las promociones visualizando si están activas o no junto a sus productos, el precio de cada uno, el precio total sin el descuento y con su respectivo descuento.
Los productos deben poder ser clasificados por categoría (entradas, platos principales, postres, bebidas, etc.).
Los meseros deben poder acceder al menú, filtrar productos por categoría, buscar por nombre o descripción.
Los meseros con permiso pueden editar la información de productos, incluyendo estado y precio.
3. Gestión del carrito y personalización de pedidos (cliente)
El cliente debe poder agregar productos al carrito y personalizar detalles como tamaño, términos de cocción o aderezos.
El cliente debe poder eliminar productos del carrito antes de finalizar el pedido.
El cliente debe poder ver un resumen del carrito con los precios e impuestos calculados.
4. Proceso de pedido y pago (cliente)
El cliente debe poder elegir entre recogida o entrega a domicilio.
El cliente debe poder seleccionar un método de pago entre tarjeta, Nequi o efectivo.
Al confirmar el pedido, debe mostrarse un resumen final antes de enviarlo al restaurante.
5. Notificaciones (cliente personal)
El cliente debe recibir notificaciones sobre:
Confirmación del pedido.
Pedido listo para recogida o envío.
Cambios de estado (por ejemplo, retrasos).
El administrador debe recibir notificaciones de nuevos pedidos y actualizaciones en el estado.
6. Seguimiento de pedidos en tiempo real
El cliente debe poder visualizar en tiempo real el estado de su pedido (En preparación, Listo para recoger, En camino, Entregado).
El administrador y el mesero debe poder ver una lista en tiempo real de los pedidos en curso, con número de orden, productos, estado actual y tiempo transcurrido.
El administrador y el mesero debe poder cambiar manualmente el estado del pedido.
La lista de pedidos debe actualizarse automáticamente sin recargar la página.
7. Historial de pedidos (cliente y personal)
El cliente y el personal deben poder acceder a un historial de pedidos anteriores, incluyendo fecha, productos y estados finales.
8. Gestión del inventario y disponibilidad
El sistema debe permitir indicar la disponibilidad de cada producto en el menú (disponible o no disponible).
Solo el administrador puede modificar el estado de disponibilidad.
9. Gestión de promociones (administrador)
El administrador debe poder crear promociones con nombre, descripción, productos incluidos, porcentaje de descuento, estado (activa/inactiva), fechas de inicio y fin.
El formulario de creación de promociones debe tener validaciones estrictas: porcentaje entre 1% y 100%, fecha de fin posterior a la de inicio, al menos un producto seleccionado.
Las promociones deben poder editarse, activarse, desactivarse y eliminarse desde el panel de administración.
Las promociones visibles para los meseros deben incluir nombre, productos incluidos, descuento y tiempo restante.
10. Panel de administración
El administrador debe tener acceso exclusivo a una vista para gestionar todos los pedidos, promociones, productos y estados.
El panel debe incluir la capacidad de filtrar, buscar, editar y eliminar registros.
El administrador debe poder ver tarjetas detalladas por promoción, incluyendo estado visual (activa, inactiva, expirada o urgente).
REQUISITOS NO FUNCIONALES
1. Seguridad
Las contraseñas deben almacenarse de forma cifrada.
La información personal y de pago debe estar protegida contra accesos no autorizados.
2. Escalabilidad
El sistema debe ser capaz de manejar múltiples usuarios y pedidos simultáneamente sin degradación del rendimiento.
3. Disponibilidad
El sistema debe estar disponible 24/7.
Debe garantizar tiempos de respuesta aceptables, incluso en horas pico.
4. Usabilidad
La interfaz debe ser amigable, clara y funcional tanto en dispositivos móviles como en escritorio.
El diseño debe contemplar accesibilidad para personas con discapacidad visual (uso de colores, contraste, textos legibles).
5. Integraciones
El sistema debe integrarse con servicios de pago como Nequi y métodos tradicionales como efectivo.
Debe permitir integración futura con sistemas de entrega externos si se requiere.
6. Mantenimiento y soporte
El sistema debe permitir actualizaciones periódicas para mantener la seguridad y corregir errores.
Debe contar con soporte técnico accesible para el personal autorizado del restaurante.