Aplicación móvil¶
Registro¶
RF-U-01¶
Registro con número de teléfono
Selector de país con +505 preseleccionado y campo de ocho dígitos sin
separadores. El sistema normaliza el número quitando espacios y guiones antes de
validarlo. Envía un código de seis dígitos por SMS con vigencia de cinco minutos;
el botón de reenvío se habilita a los sesenta segundos y admite un máximo de
cinco envíos por hora al mismo número, contados desde el primer envío. Tras tres
canjes fallidos del mismo código, el código se invalida y hay que solicitar uno
nuevo.
RF-U-02¶
Registro con correo electrónico
Correo y contraseña de mínimo ocho caracteres con al menos una mayúscula y un número. La verificación se hace con un código de seis dígitos o con un enlace de un solo uso, ambos con vigencia de veinticuatro horas. Una cuenta sin ningún canal verificado puede iniciar sesión y explorar, pero no puede reservar; la aplicación muestra de forma persistente la acción pendiente de verificación.
RF-U-03¶
Datos obligatorios de perfil
Nombre y apellido, cada uno de uno a cien caracteres. Al menos un canal verificado, teléfono o correo. El segundo canal es opcional y puede vincularse después con verificación propia. El sistema no admite una cuenta sin ningún canal de contacto ni permite desvincular el único canal verificado que quede.
RF-U-04¶
Unicidad de cuenta
Un teléfono pertenece a una sola cuenta y un correo pertenece a una sola cuenta, comparando el correo sin distinguir mayúsculas. Cuando el dato ya existe, la aplicación ofrece iniciar sesión o recuperar el acceso en lugar de crear un duplicado, sin revelar datos de la cuenta existente más allá de que el identificador está en uso.
RF-U-05¶
Aceptación de términos
Casilla obligatoria de Términos de uso y Política de Privacidad antes de completar el registro. Se registra la versión exacta del documento aceptado, la fecha, la hora y la dirección de origen. Cuando se publica una versión nueva, la aplicación exige aceptarla en el siguiente ingreso antes de permitir reservar.
Autenticación¶
RF-U-06¶
Inicio de sesión multicanal
Dos caminos hacia la misma cuenta: teléfono con código de un solo uso, o correo con contraseña. Si ambos canales están vinculados, cualquiera de los dos abre la misma sesión. Los intentos fallidos se registran con el identificador tal como se tecleó, y el mensaje de error no distingue entre cuenta inexistente y credencial incorrecta.
RF-U-07¶
Sesión persistente
Token de sesión con vigencia absoluta de treinta días y renovación automática mediante un token de refresco mientras la aplicación se use. El cierre de sesión manual revoca ambos. Un cambio de contraseña revoca todas las sesiones abiertas de la cuenta, incluida la que lo ejecutó.
RF-U-08¶
Recuperación de acceso
Restablecimiento por enlace de un solo uso al correo verificado, o por código de un solo uso al teléfono verificado si el registro fue telefónico. Si el identificador no corresponde a ninguna cuenta, la respuesta es idéntica a la del caso exitoso para no revelar qué correos y teléfonos están registrados.
RF-U-09¶
Inicio de sesión con Google
Acceso federado vinculado a la cuenta por el identificador estable del proveedor, no por el correo, de modo que un cambio de correo en el proveedor no permita tomar una cuenta ajena. Si el correo devuelto ya pertenece a una cuenta local, la aplicación pide iniciar sesión con la contraseña una vez para vincular ambos métodos.
Cuenta¶
RF-U-10¶
Modo exploración sin registro
Mapa, lista, filtros, ficha de comercio y detalle de oferta con precios visibles sin cuenta. Al pulsar reservar, la aplicación pide registro o ingreso y regresa a la misma oferta con la cantidad seleccionada intacta. El recorrido previo al registro se atribuye a un identificador de sesión anónima que la aplicación genera en la primera apertura.
RF-U-11¶
Edición de perfil
Edición de nombre, apellido y foto. Cambiar o agregar teléfono o correo exige verificar el dato nuevo antes de que sustituya al anterior; hasta entonces el canal vigente sigue siendo el antiguo. La foto se comprime del lado del servidor y no puede exceder cinco megabytes.
RF-U-12¶
Eliminación de cuenta
Solicitud desde la aplicación con confirmación explícita. Desde el envío, la cuenta no puede crear reservas nuevas. La ejecución anonimiza nombre, apellido, correo, teléfono y foto, y conserva el historial transaccional sin datos personales para que las cifras del comercio y del piloto no cambien. No se ejecuta mientras la cuenta tenga reservas vivas.
Ubicación¶
RF-U-13¶
Permiso de ubicación
Pantalla explicativa previa que indica para qué se usa la ubicación antes de lanzar el diálogo del sistema operativo. Uso exclusivo en primer plano; la aplicación no rastrea en segundo plano y no guarda historial de posiciones, solo la última ubicación conocida.
RF-U-14¶
Ubicación manual alternativa
Si el permiso se niega o no está disponible, el usuario fija su ubicación arrastrando un pin en el mapa o eligiendo una zona de una lista administrada. La elección persiste entre sesiones y puede cambiarse en cualquier momento desde el encabezado de la pantalla de exploración.
RF-U-15¶
Aviso de fuera de cobertura
Si la ubicación del usuario queda fuera del área habilitada del piloto, la aplicación lo informa con un mensaje claro, permite seguir explorando la zona cubierta y ofrece dejar el correo para avisarle cuando la cobertura se amplíe.
Rendimiento¶
RF-U-16¶
Modo bajo consumo de datos
Imágenes servidas en versiones comprimidas y cargadas de forma diferida. Caché local de la última consulta de ofertas y de las reservas activas con su código, de modo que la pantalla de retiro funcione sin conexión. La caché indica de forma visible cuándo fue la última actualización.
Exploración¶
RF-U-17¶
Mapa interactivo
Pines de los comercios con al menos una oferta reservable, con agrupación al alejar el zoom y botón de centrado en la ubicación del usuario. Tocar un pin abre una vista previa con el nombre del comercio, la oferta más barata, el precio y la ventana de retiro.
RF-U-18¶
Vista de lista alternable
Alternador entre mapa y lista que conserva los filtros aplicados. Cada tarjeta muestra comercio, tipo de oferta, precio, valor de referencia, porcentaje de descuento, distancia, ventana de retiro y unidades restantes.
RF-U-19¶
Filtros
Distancia de 1, 3, 5 o 10 kilómetros; tipo de comida entre las categorías activas; tipo de oferta entre pack sorpresa y oferta específica; rango de precio; franja horaria de retiro; y solo disponibles. Los filtros son combinables y persisten durante la sesión. La aplicación muestra el número de resultados y un control para limpiarlos todos.
RF-U-20¶
Ordenamiento
Por distancia ascendente, menor precio, mayor porcentaje de descuento y cierre de ventana más próximo. El orden predeterminado es por distancia. Cuando la ubicación no está disponible, el orden por distancia se deshabilita y el predeterminado pasa a ser el cierre más próximo.
RF-U-21¶
Búsqueda por texto
Búsqueda por nombre de comercio o nombre de oferta, insensible a mayúsculas y tildes y tolerante a errores de escritura. Los resultados se reflejan a la vez en el mapa y en la lista. Una búsqueda sin resultados se registra con su texto, filtros y ubicación para orientar el reclutamiento de comercios.
RF-U-22¶
Visibilidad condicionada de ofertas
Se muestran las ofertas cuya ventana de retiro no ha cerrado. Las que tienen disponibilidad cero se marcan como agotadas y no admiten reserva, pero siguen visibles hasta el cierre de su ventana. Las cerradas desaparecen del listado. Una oferta programada puede mostrarse como disponible más tarde sin permitir reserva.
RF-U-23¶
Stock en tiempo real
La disponibilidad se refresca automáticamente al menos cada treinta segundos mientras la pantalla está abierta, al volver a la aplicación desde segundo plano y siempre antes de confirmar una reserva. La cifra mostrada indica unidades disponibles, no unidades publicadas.
Detalle¶
RF-U-24¶
Ficha de oferta
Foto, nombre, tipo, descripción, precio, valor de referencia, porcentaje de descuento, unidades disponibles, ventana de retiro, dirección, referencias de llegada, distancia y calificación del comercio con su número de valoraciones. La descripción se muestra tal como el comercio la escribió, con un aviso fijo de que la información sobre el contenido proviene del comercio.
RF-U-25¶
Aviso de contenido variable
En un pack sorpresa se muestra un aviso fijo indicando que el contenido es aleatorio según los excedentes del día, junto con la categoría general y la lista de entre tres y ocho elementos que la oferta puede contener. Esa lista es orientativa y así se declara.
RF-U-26¶
Aviso de condiciones del piloto
Antes de confirmar, la aplicación muestra que el retiro es presencial en el local dentro de la ventana indicada y que el pago se hace en efectivo al retirar. No hay cobro dentro de la aplicación en ningún momento.
RF-U-27¶
Indicaciones para llegar
Botón que abre la ubicación exacta del comercio en la aplicación de mapas del dispositivo, con las referencias de llegada visibles en la propia ficha para los casos en que la dirección no baste.
Reserva¶
RF-U-28¶
Selección de cantidad
Selector desde una unidad hasta el máximo configurado por usuario, acotado además por la disponibilidad del momento. La pantalla muestra el precio unitario y el total a pagar en efectivo, recalculado al cambiar la cantidad.
RF-U-29¶
Bloqueo temporal de stock
Al iniciar la confirmación, las unidades quedan retenidas durante el tiempo configurado con una cuenta regresiva visible. Si el usuario no confirma antes de que expire, la retención se libera y la aplicación regresa al detalle con la disponibilidad actualizada.
RF-U-30¶
Confirmación de reserva
Pantalla de resumen con comercio, oferta, cantidad, total en efectivo, ventana de retiro y plazo límite de cancelación, más una confirmación explícita. Al confirmar, la reserva queda activa y se genera su código de retiro.
RF-U-31¶
Control de concurrencia
Si la disponibilidad se agota entre la selección y la confirmación, el sistema rechaza la reserva, explica el motivo y devuelve al detalle con la cifra actualizada. La verificación es transaccional: dos confirmaciones simultáneas por la última unidad no pueden tener éxito ambas.
RF-U-32¶
Generación de código único
Cada reserva genera un código de seis caracteres irrepetible en todo el sistema, usando un alfabeto que excluye los caracteres que se confunden al dictarse. El código es válido solo para esa reserva y su ventana, y se muestra junto a su representación como código de barras bidimensional.
RF-U-33¶
Límite de reservas activas
Máximo configurable de reservas activas simultáneas por usuario y máximo de una reserva activa por comercio. Al alcanzar cualquiera de los dos límites, la aplicación explica cuál se alcanzó y qué reserva habría que resolver primero.
RF-U-34¶
Cancelación por el usuario
Permitida hasta el plazo configurado antes del cierre de la ventana, mostrado desde el momento de reservar. Exige seleccionar un motivo de una lista cerrada. Al cancelar, las unidades vuelven a estar disponibles de inmediato y el comercio recibe aviso.
RF-U-35¶
Estados de la reserva
Activa, Retirada, Cancelada por el usuario, Cancelada por el comercio, Cancelada por administración y Expirada. El estado es visible en todo momento junto con la fecha y hora en que se alcanzó y, cuando corresponde, el motivo.
RF-U-36¶
Expiración automática
Al vencer la tolerancia posterior al cierre de la ventana sin que el comercio valide el código, la reserva pasa a Expirada y el usuario recibe aviso. Las unidades no vuelven a estar disponibles: la ventana ya cerró.
RF-U-37¶
Control de incumplimientos
Al acumular el número configurado de reservas expiradas dentro del periodo de conteo, el sistema bloquea temporalmente la capacidad de reservar por la duración configurada. La aplicación informa el motivo, la fecha de reactivación y las reservas concretas que originaron el bloqueo.
Retiro¶
RF-U-38¶
Pantalla de reserva activa
Acceso directo desde el inicio con el código de barras bidimensional, el código de seis caracteres en grande, los datos del comercio, el monto exacto a pagar y la cuenta regresiva hasta el cierre de la ventana. Funciona sin conexión desde la caché local.
RF-U-39¶
Actualización tras validación
Cuando el comercio valida el código, el estado cambia a Retirada y el usuario recibe una notificación de confirmación. Si la entrega fue parcial, la notificación indica las unidades entregadas y el monto ajustado.
RF-U-40¶
Comprobante digital
Registro consultable indefinidamente con identificador de la reserva, comercio, oferta, cantidad reservada y entregada, monto pagado en efectivo, fecha y hora del retiro. El comprobante conserva los datos tal como estaban al momento de la reserva, aunque el comercio cambie después su precio o su nombre.
Historial¶
RF-U-41¶
Historial de reservas
Listado ordenado de la más reciente a la más antigua, con filtro por estado y por rango de fechas, y acceso al detalle y al comprobante de cada una. Incluye las canceladas y las expiradas, porque forman parte del historial del usuario.
Valoración¶
RF-U-42¶
Calificación del comercio
Tras una reserva retirada, el usuario califica de una a cinco estrellas con comentario opcional de hasta trescientos caracteres. Una sola valoración por reserva, dentro del plazo configurado desde la entrega. Admite una sola edición dentro del mismo plazo. La valoración se publica de inmediato, sujeta a moderación posterior.
RF-U-43¶
Reporte de incidencia
Formulario vinculado a una reserva concreta con categorías y descripción libre de hasta quinientos caracteres. El usuario recibe un folio y puede seguir el estado de su reporte. Un mismo usuario no puede abrir dos incidencias sobre la misma reserva
Categorías:
- Comercio cerrado
- Pedido no entregado
- Contenido en mal estado
- Precio distinto al publicado
- Otro
Notificaciones¶
RF-U-44¶
Notificaciones transaccionales
Aviso al confirmar la reserva, recordatorio treinta minutos antes del cierre de la ventana, aviso de cancelación por el comercio o por administración, aviso de despublicación de la oferta reservada y aviso de expiración. Cada aviso lleva al lugar de la aplicación donde el usuario puede actuar.
RF-U-45¶
Canal alternativo
Si las notificaciones push están deshabilitadas o el dispositivo no está registrado, los avisos de confirmación y cancelación se envían por mensaje de texto o correo según el canal verificado. Un aviso suprimido queda registrado como descartado, con su motivo.
RF-U-46¶
Preferencias de notificación
El usuario activa o desactiva por separado los avisos promocionales y los de comercios favoritos, por cada canal. Los avisos transaccionales no son desactivables porque afectan a una reserva viva.
Favoritos¶
RF-U-47¶
Comercios favoritos
Marcar y desmarcar comercios como favoritos, verlos en una sección propia con su oferta vigente si la hay, y recibir aviso cuando publiquen. El aviso respeta la preferencia del usuario y no se envía si el comercio está pausado o suspendido.
Impacto¶
RF-U-48¶
Panel de impacto personal
Contadores acumulados de comidas rescatadas y de ahorro estimado en córdobas frente al valor de referencia de cada oferta retirada. Solo cuentan las reservas entregadas. El ahorro se calcula con los valores congelados en cada reserva, de modo que cambios posteriores de precio no alteran la cifra histórica.
Soporte¶
RF-U-49¶
Ayuda y contacto
Sección de preguntas frecuentes y botón de contacto directo con soporte por mensajería o correo. Desde una reserva concreta, el contacto adjunta automáticamente su identificador para que soporte no tenga que pedirlo.