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.