20222C - FI-UBER
FI-UBER
Indice
- Descripción
- Condiciones de aprobación
- Requisitos
- Requisitos No Funcionales
- Instancias de entrega
- Historias requeridas y optativas
- Material de referencia
Descripción
Una importante empresa ha decidido encargarnos el desarrollo de una plataforma digital llamada FI-Uber para el transporte de personas. El espíritu de esta plataforma es poder conectar personas que necesitan un servicio de transporte (en adelante llamados pasajeros) con proveedores(en adelante llamados choferes) de ese servicio en tiempo real.
La plataforma de conectar a las personas, procesar los pagos y proveer cierta seguridad en el servicio.
Condiciones de aprobación
Cada historia de usuario tiene asociada una cierta cantidad de puntos, además, algunas son consideradas obligatorias y otras opcionales. Para considerar aprobado el trabajo, se requiere cumplir una cierta cantidad de puntos asociados a las historias de usuario. Esta cantidad de puntos asociados está compuesto por los puntos provenientes de historias de usuario obligatorias y luego cada grupo deberá escoger entre las historias opcionales para llegar a cumplir con la cantidad de puntos.
Por ejemplo:
- Se requieren 100 puntos provenientes de historias de usuario para aprobar el trabajo.
- Existen 70 puntos que provienen de historias de usuario obligatorias. Todo grupo deberá cumplir con estas historias.
- Los 30 puntos restantes deberán provenir de historias optativas donde el grupo decidirá cuales implementar para llegar a tal numero.
Requisitos
A continuación se describirán una serie de Épicas e Historias de usuario indicando la funcionalidad a cumplir por la plataforma.
En caso de que se observe alguna definición ambigua o la falta de la misma, esta debe ser aclarada y definida por el grupo junto a su corrector
Épicas
Usuarios
Como pasajero/chofer quiero poder registrarme y tener una cuenta para poder acceder a los servicios de la plataforma.
Historias de usuario relacionadas:
- Registro
- Login con email y contraseña
- Login con datos biométricos
- Login con proveedor de identidad federada
- Recupero de contraseña
- Registro Administradores
- Login Administradores
- Notificación de PIN en proceso de registro
Perfil
Como pasajero/chofer quiero poder editar mi perfil y acceder tanto a mi perfil como al perfil de mi chofer asignado(de manera acotada).
Historias de usuario relacionadas:
Inicio de viaje
Como pasajero/chofer quiero poder iniciar un viaje
Historias de usuario relacionadas:
- Home
- Búsqueda de destino por dirección
- Búsqueda de destino por nombre
- Cotización del viaje
- Confirmación de viaje
- Aceptar/rechazar un viaje
- Inicio del viaje
- Pantalla de espera
- Mensajería instantánea
Viaje en curso
Como usuario quiero tener una experiencia amena, segura y guiada durante el viaje
Historias de usuario relacionadas:
Pago de viaje y wallets
Como pasajero quiero poder realizar el pago una vez finalizado el viaje. Como chofer quiero poder recibir el pago de los servicios prestados
Historias de usuario relacionadas:
Servicio VIP
Como pasajero/chofer quiero tener un servicio VIP disponibilizado en la app para poder viajar mejor/cobrar mas por mis viajes
Historias de usuario relacionadas:
Calificaciones
Como pasajero/chofer quiero poder calificar a los choferes/pasajeros
Historias de usuario relacionadas:
- Calificación cualitativa de un chofer
- Calificación cuantitativa de un chofer
- Calificación cuantitativa de un pasajero
- Calificación cualitativa de un pasajero
Notificaciones
Como usuario quiero recibir notificaciones ante eventos importantes
Historias de usuario relacionadas:
- Notificación por recibo de pago
- Notificación por chofer asignado
- Notificación por mensaje recibido
- Notificación por posible viaje
Administración de usuarios
Como administrador del sistema quiero poder gestionar los usuarios que están registrados en el mismo para administrar su uso
Historias de usuario relacionadas:
Administración de servicios
Como administrador del sistema quiero poder gestionar los servicios que se encuentran en el mismo para administrar su uso
Historias de usuario relacionadas:
- Modificación de reglas de cotización
- Listado de servicios
- Visualización de servicio
- Alta de servicio
- Bloqueo de servicio
Métricas
Como administrador del sistema quiero poder visualizar métricas e información de la plataforma para evaluar el estado del negocio
Historias de usuario relacionadas:
Historias de Usuario
Registro de usuarios
Descripción
Como usuario no registrado quiero registrarme en la plataforma para acceder a las funcionalidades del sistema. El usuario podrá utilizar los distintos perfiles en la cuenta, donde ambos perfiles no son excluyentes:
Pasajero: Es el usuario que solicita el viaje por medio de la aplicación y accede a las distintas funcionalidades generales de la misma. Ademas es quien realiza el pago por el viaje realizado
Chofer: Es el usuario que acepta y realiza los viajes . También es quien cobra por estos viajes realizados.
En el resto de los CA se utilizará la nomenclatura Usuario como un usuario registrado
Criterios de aceptación
- CA 1: Registro exitoso
- Cuando el registro del usuario es correcto.
- Entonces el sistema creará un nuevo usuario con su perfil y billetera correspondiente. Luego permitirá el ingreso al sistema.
- CA 2: Obtención de ubicación
- Cuando el registro del usuario es correcto.
- Entonces el sistema deberá solicitarle al usuario una ubicación predeterminada
- CA 3: Obtención de perfil (Para choferes)
- Cuando el registro del usuario es correcto.
- Entonces el sistema deberá solicitarle al usuario datos sobre su persona y el vehículo que utilizara.
- CA 4: Falta uno o más campos obligatorios
- Cuando el registro del usuario es incorrecto debido a un ingreso erróneo o faltante de campos.
- Entonces el sistema indicará los campos faltantes y/o erróneos y no permitirá el ingreso al sistema.
- CA 5: Registro fallido
- Cuando el registro del usuario falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
Notificación de PIN en proceso de registro
Descripción
- Como usuario quiero poder recibir una notificación a mi whatsapp con un código de seguridad, para confirmar mi registración
Criterios de aceptación
- CA 1: Notificación whatsapp:
- Cuando un usuario se registra de manera exitosa en la plataforma
- Entonces deberá recibir un mensaje de whatsapp con un PIN generado por la plataforma, para confirmar la registración
Login de usuarios con usuario y contraseña
Descripción
- Como Usuario quiero ingresar a mi cuenta en la plataforma utilizando usuario y contraseña para acceder a las funcionalidades del sistema
Criterios de aceptación
- CA 1: Login exitoso con correo electrónico y contraseña
- Cuando el login del usuario utilizando correo electrónico y contraseña es correcto
- Entonces el sistema permitirá el ingreso al sistema
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
- CA 2: Login fallido
- Cuando el login del usuario falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
- CA 3: Sesión expirada
- Cuando la sesión del usuario excede el tiempo de expiración
- Entonces el sistema solicitará al usuario nuevamente el login
- CA 4: Usuario bloqueado
- Cuando la cuenta del usuario se encuentra bloqueada por los administradores
- Entonces el sistema no le permitirá loguearse al usuario
Login de usuarios con proveedores de identidad federada
Descripción
- Como Usuario quiero ingresar con mi cuenta en la plataforma con proveedores de identidad federada para acceder a las funcionalidades del sistema
Criterios de aceptación
- CA 1: Login exitoso con proveedores de identidad federada
- Cuando el login del usuario utilizando proveedores de identidad federada es correcto
- Entonces el sistema permitirá el ingreso al sistema
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
- CA 2: Login fallido
- Cuando el login del usuario falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
- CA 3: Sesión expirada
- Cuando la sesión del usuario excede el tiempo de expiración
- Entonces el sistema solicitará al usuario nuevamente el login
- CA 4: Usuario bloqueado
- Cuando la cuenta del usuario se encuentra bloqueada por los administradores
- Entonces el sistema no le permitirá loguearse al usuario
Login con datos biométricos
Descripción
- Como Usuario quiero ingresar con mi cuenta en la plataforma utilizando mis datos biométricos
Criterios de aceptación
- CA 1: Login exitoso con datos biométricos
- Cuando el login del usuario utilizando datos biométricos, tales como identificación por rostro o huella dactilar, es correcto
- Entonces el sistema permitirá el ingreso al sistema
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
- CA 2: Login fallido
- Cuando el login del usuario falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
- CA 3: Sesión expirada
- Cuando la sesión del usuario excede el tiempo de expiración
- Entonces el sistema solicitará al usuario nuevamente el login
- CA 4: Usuario bloqueado
- Cuando la cuenta del usuario se encuentra bloqueada por los administradores
- Entonces el sistema no le permitirá loguearse al usuario
Recupero de contraseña
Descripción
- Como Usuario quiero poder recuperar mi contraseña en caso de que no la recuerde
Criterios de aceptación
- CA 1: Recupero de contraseña exitoso
- Cuando se realice un recupero de contraseña
- Entonces se deberá enviar un email con un link de recupero de contraseña, el cual tiene solo un uso y un tiempo de expiración
Registro de administradores
Descripción
- Como administrador quiero poder dar de alta a otros administradores en la plataforma para acceder a las funcionalidades del sistema.
Criterios de aceptación
- CA 1: Registro exitoso
- Cuando el registro del administrador es correcto.
- Entonces el sistema registrará un nuevo administrador con sus respectivas credenciales y permitirá el ingreso al sistema.
- CA 2: Falta uno o más campos obligatorios
- Cuando el registro del administrador es incorrecto debido a un ingreso erróneo o faltante de campos.
- Entonces el sistema indicará los campos faltantes y/o erróneos y no permitirá el ingreso al sistema
- CA 3: Registro fallido
- Cuando el registro del administrador falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
Login de administradores
Descripción
- Como Administrador quiero ingresar con mi cuenta en la plataforma para acceder a las funcionalidades del sistema
Criterios de aceptación
- CA 1: Login exitoso
- Cuando el login del administrador utilizando sus credenciales es correcto
- Entonces el sistema permitirá el ingreso al sistema
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
- CA 2: Login fallido
- Cuando el login del usuario falla debido a un error del servicio.
- Entonces el sistema indicará un mensaje de error acorde al usuario.
Edición de perfil
Descripción
- Como Usuario quiero poder editar los datos de mi perfil de usuario para mantener actualizada mi información personal.
Criterios de aceptación
- CA 1: Edición de datos de perfil exitosa
- Cuando se modifican los datos de la cuenta del Usuario de manera exitosa
- Entonces estos nuevos datos serán los que se utilicen como datos de perfil de usuario
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
Visualización de perfil propio
Descripción
- Como Usuario quiero poder visualizar los datos de mi perfil de usuario para revisar mi información
Criterios de aceptación
- CA 1: Visualización de perfil propio
- Cuando se visualice el perfil del usuario propietario de la cuenta.
- Entonces estos se visualizarán datos públicos y privados del usuario.
- En caso contrario se deberá mostrar un mensaje de error acorde al usuario.
Visualización de perfil de otros usuarios
Descripción
- Como Usuario quiero poder visualizar los datos de los otros usuarios para conocer su información de contacto
Criterios de aceptación
- CA 1: Visualización de perfil de otros usuarios
- Cuando se visualice el perfil de un usuario que no es propietario de la cuenta
- Entonces estos se visualizarán datos públicos del usuario
Home
Descripción
- Como usuario quiero poder realizar ingresar a la una pantalla principal que me provea acceso a distintos contenidos de utilidad
Criterios de aceptación
- CA 1: Home
- Cuando se accede la pantalla principal de la aplicación
- Entonces se deberá retornar información de relevancia a mi actividad reciente
- CA 2: Error al cargar
- Cuando se accede la pantalla principal de la aplicación y ocurre un error
- Entonces se deberá notificar al usuario que ha sucedido un error
Búsqueda de destino por dirección
Descripción
- Como pasajero quiero poder realizar búsquedas de destinos utilizando la dirección del mismo y así poder iniciar el proceso de viaje
Criterios de aceptación
- CA 1: Búsqueda con resultados
- Cuando se realiza una búsqueda de un destino con una dirección válida
- Entonces se deberá retornar el resultado adecuado.
- CA 2: Búsqueda sin resultados
- Cuando se realiza una búsqueda utilizando una dirección que no que cumpla tal condición
- Entonces se deberá notificar al usuario que no existen resultados para su búsqueda.
Búsqueda de destino por nombre
Descripción
- Como pasajero quiero poder realizar búsquedas de destinos utilizando un nombre previamente agendado y así poder iniciar el proceso de viaje
Criterios de aceptación
- CA 1: Búsqueda con resultados
- Cuando se realiza una búsqueda de un destino con un nombre agendado
- Entonces se deberá retornar el resultado adecuado.
- CA 2: Búsqueda sin resultados
- Cuando se realiza una búsqueda utilizando un nombre que no que cumpla tal condición
- Entonces se deberá notificar al usuario que no existen resultados para su búsqueda.
Cotización del viaje
Descripción
- Como pasajero quiero poder saber previamente cual es el precio estimado del viaje a realizar, sabiendo el destino seleccionado y la modalidad de viaje.
Criterios de aceptación
- CA 1: Cotización de un viaje
- Cuando se dispone de un destino seleccionado y un modo de viaje
- Entonces se deberá retornar el precio correspondiente a este viaje, utilizando el servicio de cotización de viajes.
Confirmación de viaje
Descripción
- Como pasajero quiero poder confirmar la realización del viaje
Criterios de aceptación
CA 1: Confirmación del viaje
- Cuando se realiza la confirmación del viaje
- Entonces se deberá iniciar la solicitud de búsqueda de chofer para iniciar el viaje correspondiente
CA 2: Rechazo del viaje
- Cuando se realiza el rechazo del viaje
- Entonces se deberá informar que el usuario rechazo el viaje y se cancelará todo el proceso.
Aceptar rechazar un viaje
Descripción
- Como chofer quiero poder aceptar o rechazar la realización de un viaje
Criterios de aceptación
CA 1: Aceptación de un viaje
- Cuando el chofer es informado sobre las condiciones de un viaje (monto a cobrar, destino, tiempo estimado) y se realiza la aceptación del mismo
- Entonces se deberá iniciar el proceso de viaje en curso, en donde se le notificará al pasajero que el chofer esta en camino y se visualizara la pantalla de espera.
CA 2: Rechazo del viaje
- Cuando se realiza el rechazo de un viaje
- Entonces se deberá informar que el usuario rechazo el viaje y se cancelará todo el proceso.
Inicio del viaje
Descripción
- Como usuario quiero iniciar un viaje tanto sea en condición de pasajero como de chofer
Criterios de aceptación
CA 1: Chofer en destino
- Cuando el chofer es se encuentre en la ubicación de origen del pasajero
- Entonces se le informará que el chofer ya se encuentra esperando y se habilitará el inicio del viaje
CA 2: Viaje iniciado
- Cuando se inicie el viaje
- Entonces se deberá informarle al usuario el tiempo transcurrido ademas de mostrar la ubicación en tiempo real del auto y el recorrido a realizar
Pantalla de espera
Descripción
- Como usuario quiero estar informado del estado del viaje la espera del chofer previo al inicio del viaje
Criterios de aceptación
- CA 1: Chofer en destino
- Cuando el chofer es se encuentre en viaje a la dirección de origen del pasajero
- Entonces se le informará al usuario el recorrido en tiempo real del chofer
Mensajería instantánea
Descripción
- Como pasajero/chofer quiero poder enviar mensajes privados a otro chofer/pasajero de la plataforma durante un viaje iniciado
Criterios de aceptación
- CA 1: Mensaje directo
- Cuando se realiza un mensaje directo
- Entonces solo los involucrados podrán leer el mismo y se deberá mantener una conversación en tiempo real por mensajes
Guía de viaje
Descripción
- Como pasajero/chofer quiero poder visualizar el recorrido a realizar y conocer la posición actual.
Criterios de aceptación
- CA 1: Ubicación actual
- Cuando el viaje se ha iniciado y el vehículo se ha movido
- Entonces se actualiza la posición actual del vehículo con respecto al recorrido.
Aviso de fin
Descripción
- Como chofer quiero poder indicar que el viaje a finalizado
Criterios de aceptación
CA 1: Finalización de viaje exitosa
- Cuando se el vehículo se encuentra en la dirección de destino
- Entonces el chofer podrá indicar que el viaje a finalizado y se realizará el cobro al pasajero.
CA 2: Finalización de viaje fallida
- Cuando se el vehículo aún no se encuentra en la dirección de destino
- Entonces el chofer no podrá indicar que el viaje a finalizado.
Denuncia de chofer
Descripción
- Como pasajero quiero poder denunciar a un chofer durante un viaje si su conducta me parece incorrecta
Criterios de aceptación
- CA 1: Denuncia de chofer exitosa
- Cuando un pasajero realiza una denuncia hacia un chofer
- Entonces se enviará dicha denuncia para que los administradores apliquen las políticas correspondientes
Cancelación de viaje
Descripción
- Como pasajero/chofer quiero poder cancelar un viaje.
Criterios de aceptación
CA 1: Cancelación chofer/pasajero viaje no iniciado
- Cuando el viaje no ha iniciado y es cancelado por el chofer/pasajero
- Entonces se notificará al pasajero/chofer que el mismo fue cancelado
- Y se cobrará el valor del viaje a favor del pasajero/chofer.
CA 2: Cancelación pasajero viaje iniciado
- Cuando el viaje a iniciado y el pasajero decide cancelar el viaje
- Entonces se cobrará al pasajero el valor del viaje hasta la ubicación actual al momento de cancelar aplicando las reglas de cotización correspondientes.
CA 3: Cancelación chofer viaje iniciado
- Cuando el viaje a iniciado y el chofer decide cancelar el viaje
- Entonces se reembolsará al pasajero el valor total viaje.
Carga de fondos
Descripción
- Como pasajero quiero poder ingresar fondos en mi wallet para así poder utilizarlos en mis futuros viajes.
Criterios de aceptación
- CA 1: Carga exitosa
- Cuando se realiza una carga de fondos de manera exitosa
- Entonces se verá reflejado en la wallet del usuario el nuevo monto correspondiente.
Ejecución de pago
Descripción
- Como pasajero quiero realizar el pago correspondiente del viaje recientemente finalizado
Criterios de aceptación
- CA 1: Ejecución de pago exitosa
- Cuando se un viaje finaliza de manera exitosa
- Entonces se le descontará el monto correspondiente a la billetera del pasajero y luego se hará un deposito a la cuenta del chofer. Se debe tener en cuenta que a este deposito se le descontará la comisión de la plataforma.
Retiro de fondos
Descripción
- Como chofer quiero extraer los fondos que fueron recolectados de los pagos de viajes realizados.
Criterios de aceptación
CA 1: Retiro de fondos exitoso
- Cuando un chofer solicita un retiro de fondos y se cumplen las regla de negocio pautadas.
- Entonces se podrá realizar el retiro de fondos a la wallet indicada por el chofer.
CA 2: Retiro de fondos fallido
- Cuando un chofer solicita un retiro de fondos y aún no se cumplen las regla de negocio pautadas.
- Entonces NO se podrá realizar el retiro de fondos
Utilización de stablecoin
Descripción
- Como usuario del sistema quiero que el sistema acepte una stablecoin como método de intercambio de valor para no preocuparme por la volatilidad del ETH
Criterios de aceptación
CA 1: Retiro de fondos
- Cuando un chofer solicita un retiro de fondos de su cuenta y se cumplen las regla de negocio pautadas.
- Entonces el pago se ejecuta a traves de una stablecoin
CA 2: Carga de saldo (pasajero)
- Cuando un pasajero carga su saldo
- Entonces el pago se ejecuta a traves de una stablecoin
CA 1: Carga de saldo (administrador)
- Cuando un administrador envía saldo a una usuario a traves del sistema
- Entonces el pago se ejecuta a traves de una stablecoin
Suscripción a servicio vip como pasajero
Descripción
- Como pasajero quiero poder suscribirme a un servicio VIP para poder tener mejor confort en mis viajes.
Criterios de aceptación
- CA 1: Suscripción exitosa
- Cuando un pasajero se inscribe de manera exitosa al servicio VIP
- Entonces la plataforma le realizará el cobro correspondiente a este servicio y a partir de ese momento el pasajero puede solicitar viajes en modalidad VIP.
Suscripción a servicio vip como chofer
Descripción
- Como chofer quiero poder suscribirme a un servicio VIP para poder brindar mis servicios en este tipo de viajes.
Criterios de aceptación
- CA 1: Suscripción exitosa
- Cuando un chofer se inscribe de manera exitosa al servicio VIP
- Entonces la plataforma le realizará el cobro correspondiente por brindar este servicio y a partir de ese momento el chofer puede realizar viajes en modalidad VIP.
Calificación cuantitativa de un chofer
Descripción
- Como pasajero quiero poder realizar una calificación cuantitativa de un chofer para así poder brindar mi opinión de este.
Criterios de aceptación
- CA 1: Calificación de chofer
- Cuando un pasajero realiza una calificación cuantitativa de un chofer. Por ejemplo, utilizando una escala del 1 al 5
- Entonces esta calificación afectará la calificación del chofer
Calificación cualitativa de un chofer
Descripción
- Como pasajero quiero poder realizar una opinion mas detallada del chofer para así poder brindar mi opinión de este.
Criterios de aceptación
- CA 1: Calificación
- Cuando un pasajero realiza una calificación utilizando comentarios para un chofer.
- Entonces esta calificación luego podrá ser visualizada por otros usuarios.
Calificación cuantitativa de un pasajero
Descripción
- Como chofer quiero poder realizar una calificación cuantitativa de un pasajero para así poder brindar mi opinión de este.
Criterios de aceptación
- CA 1: Calificación de pasajero
- Cuando un pasajero realiza una calificación cuantitativa de un pasajero. Por ejemplo, utilizando una escala del 1 al 5
- Entonces esta calificación afectará la calificación del pasajero
Calificación cualitativa de un pasajero
Descripción
- Como chofer quiero poder realizar una opinion mas detallada del pasajero para así poder brindar mi opinión de este.
Criterios de aceptación
- CA 1: Calificación
- Cuando un pasajero realiza una calificación utilizando comentarios para un chofer.
- Entonces esta calificación luego podrá ser visualizada por otros usuarios.
Notificación por recibo de pago
Descripción
- Como chofer quiero poder recibir una notificación en caso de recibir un nuevo pago
Criterios de aceptación
- CA 1: Pantalla de notificaciones
- Cuando un chofer recibe un nuevo pago
- Entonces deberá poder visualizar una notificación en la aplicación para acceder a la información del mismo.
- CA 2: Notificación push.
- Cuando un chofer recibe un nuevo pago
- Entonces deberá recibir notificación push en la aplicación para acceder a la información del mismo.
Notificación por chofer asignado
Descripción
- Como pasajero quiero poder recibir una notificación en caso de que mi viaje ya posea un chofer asignado
Criterios de aceptación
- CA 1: Pantalla de notificaciones
- Cuando un pasajero tiene un viaje iniciado y este ya posee un chofer asignado
- Entonces deberá poder visualizar una notificación en la aplicación para acceder a la información del mismo.
- CA 2: Notificación push.
- Cuando un pasajero tiene un viaje iniciado y este ya posee un chofer asignado
- Entonces deberá recibir notificación push en la aplicación para acceder a la información del mismo.
Notificación por mensaje recibido
Descripción
- Como usuario quiero poder recibir una notificación en caso de recibir un nuevo mensaje
Criterios de aceptación
- CA 1: Pantalla de notificaciones
- Cuando un usuario recibe un mensaje por una consulta pública o privada.
- Entonces deberá poder visualizar una notificación en la aplicación para acceder a dicho mensaje
- CA 2: Notificación push.
- Cuando un usuario recibe un mensaje por una consulta pública o privada.
- Entonces deberá recibir notificación push en la aplicación para acceder a dicho mensaje
Notificación por posible viaje
Descripción
- Como chofer quiero poder recibir una notificación en caso de recibir una nueva propuesta de viaje
Criterios de aceptación
- CA 1: Pantalla de notificaciones
- Cuando un chofer recibe una nueva propuesta de viaje
- Entonces deberá poder visualizar una notificación en la aplicación para acceder a la información del mismo.
- CA 2: Notificación push.
- Cuando un chofer recibe una nueva propuesta de viaje
- Entonces deberá recibir notificación push en la aplicación para acceder a la información del mismo.
Listar usuarios del sistema
Descripción
- Como administrador del sistema quiero poder listar todos los usuario del sistema para gestionar su uso
Criterios de aceptación
- CA 1: Listado de usuarios del sistema
- Cuando un administrador del sistema ingrese a la sección de usuarios
- Entonces se listaran todos los usuarios del sistema.
Visualizar perfil de usuario
Descripción
- Como administrador del sistema quiero poder visualizar el perfil de un usuario del sistema para verificar sus datos
Criterios de aceptación
- CA 1: Listado de usuarios del sistema
- Cuando un administrador del sistema ingrese a la sección de usuarios
- Entonces se la informacion de perfil del usuario.
Visualizar métricas de usuario
Descripción
- Como administrador del sistema quiero poder visualizar métricas de un usuario del sistema para verificar su comportamiento
Criterios de aceptación
- CA 1: Panel de métricas de un usuario
- Cuando un administrador del sistema ingrese a la sección de métricas de un usuario
- Entonces se visualizarán todos las métricas relevantes de un usuario del sistema. Por ejemplo, viajes realizados, viajes cancelados, calificaciones realizadas, etc.
Bloquear usuario
Descripción
- Como administrador del sistema quiero poder bloquear y desbloquear un usuario del sistema para controlar su ingreso a la plataforma
Criterios de aceptación
- CA 1: Bloqueo exitoso
- Cuando un administrador bloquea a un usuario.
- Entonces se deberá visualizar que el usuario esta bloqueado y el usuario no deberá poder acceder a la plataforma
- CA 2: Desbloqueo exitoso
- Cuando un administrador desbloquea a un usuario.
- Entonces se deberá visualizar que el usuario no esta bloqueado y el usuario deberá poder acceder a la plataforma
Listar transacciones
Descripción
- Como administrador del sistema quiero poder listar todas las transacciones de inscripciones y sus pagos, como también los cobros, para poder controlar su uso de la plataforma
Criterios de aceptación
- CA 1: Listado de transacciones
- Cuando un administrador solicita visualizar el listado de transacciones en la plataforma
- Entonces se deberán listar todas las transacciones existentes en el sistema
- CA 2: Listado de transacciones existentes utilizando filtros
- Cuando un administrador solicita visualizar el listado de transacciones en la plataforma y aplica un filtrado
- Entonces se deberán listar todas las transacciones existentes en el sistema que cumplan con dichos filtros
Carga de saldo
Descripción
- Como administrador del sistema quiero poder cargar saldo en la billetera de un cliente para poder realizar campañas de beneficios o solucionar inconvenientes
Criterios de aceptación
- CA 1: Asignación de saldo exitosa
- Cuando un administrador realiza una asignación de saldo en la billetera de un cliente
- Entonces se deberá descontar este monto de la billetera asociada a la plataforma y se deberá adicionar tal monto en la billetera del cliente
Modificación de reglas de cotización
Descripción
- Como administrador del sistema quiero poder tener flexibilidad a la hora de establecer los precios . Para esto se exige que el cálculo del precio sea realizado utilizando un sistema de reglas.
El servidor deberá permitir la modificación y guardado de las mismas manteniendo un registro de cambios. Además, deberá permitir al usuario hacer pruebas con las reglas escritas previo a quedar efectivas en la cotización de los viajes.
Criterios de aceptación
CA 1: Reglas a establecer
- Las reglas deben permitir el cálculo del precio del viaje utilizando, entre otras cosas, la siguientes variables:
- Características del conductor (viajes en el día, viajes en el mes, antigüedad)
- Características del pasajero (viajes en el día, viajes en el mes, antigüedad, saldo)
- Método de pago
- Características del viaje (duración, distancia, posición geográfica, fecha y hora)
- Cantidad de viajes que se realizaron en la última ventana temporal (Hora, 30 mins, 10 mins)
- Día y horario de la realización del viaje
- Tiempo de espera del pasajero para:
- Que un conductor le confirme el viaje
- Que el conductor llegue a buscarlo
Listado de servicios
Descripción
- Como administrador del sistema quiero poder listar todos los servicios que se encuentren dentro del sistema para controlar su uso
Criterios de aceptación
- CA 1: Listado de servicios
- Cuando un administrador solicita visualizar el listado de servicios en la plataforma
- Entonces se deberán listar todos los servicios existentes en el sistema
- CA 2: Listado de servicios existentes utilizando filtros
- Cuando un administrador solicita visualizar el listado de servicios en la plataforma y aplica un filtrado
- Entonces se deberán listar todos los servicios existentes en el sistema que cumplan con dichos filtros
Visualización de servicio
Descripción
- Como administrador del sistema quiero visualizar la información de un servicio que se encuentre en el sistema para verificar que sea válida
Criterios de aceptación
- CA 1: Visualización de información de un servicio
- Cuando un administrador ingresa a visualizar la información de un servicio
- Entonces podrá encontrar datos como:
- Estado del servicio.
- Fecha de creación.
- Descripción.
- Otros.
Alta de servicio
Descripción
- Dado que existen requisitos de seguridad que solicitan tener un mecanismo para verificar la autenticidad de los servicios internos de la plataforma. Como administrador del sistema quiero poder dar de alta un nuevo servicio para que pueda acceder a los distintos servicios del sistema
Criterios de aceptación
- CA 1: Alta de Api Key
- Cuando un administrador da de alta un nuevo servicio.
- Entonces se genera un API key que deberá ser utilizada de manera interna en la plataforma para que un servicio pueda comunicarse con sus pares
Bloqueo de servicio
Descripción
- Como administrador del sistema quiero poder bloquear un nuevo servicio para que no pueda acceder a los distintos servicios del sistema
Criterios de aceptación
- CA 1: Bloqueo de Api Key
- Cuando un administrador bloquee un servicio.
- Entonces se deberá bloquear su API key asociada y tal servicio no podrá comunicarse con sus pares.
Métricas de usuarios
Descripción
- Como administrador del sistema quiero poder visualizar las métricas de usuarios para medir el uso de la plataforma y sus servicios
Criterios de aceptación
- CA 1: Métricas de nuevos usuarios utilizando mail y contraseña
- CA 2: Métricas de nuevos usuarios utilizando identidad federada
- CA 3: Métricas de login de usuarios utilizando mail y contraseña
- CA 4: Métricas de login de usuarios utilizando identidad federada
- CA 5: Métricas de usuarios bloqueados
- CA 6: Métricas de recupero de contraseña
Métricas de viajes
Descripción
- Como administrador del sistema quiero poder visualizar las métricas de viajes para medir el uso de la plataforma y sus servicios
Criterios de aceptación
- CA 1: Métricas de nuevos viajes
- CA 2: Métricas de duración de viajes
- CA 3: Métricas de tipos de viaje
Métricas de transacciones
Descripción
- Como administrador del sistema quiero poder visualizar las métricas de transacciones para medir el uso de la plataforma y sus servicios
Criterios de aceptación
- CA 1: Métricas de pagos
- CA 2: Métricas de cobros
Requisitos No Funcionales
Componentes
La plataforma constará de los siguientes componentes:
Aplicación mobile
Una aplicación mobile, el cual será utilizado por los usuarios. Las tecnologías a utilizar son detalladas en la sección tecnologías
Backoffice web
Un backoffice web, el cual será utilizado por los administradores.
Las tecnologías a utilizar son detalladas en la sección tecnologías
Servicios backend
Distintos servicios de backend para brindar soporte a la plataforma. Como enfoque se recomienda orientar estos servicios hacia una arquitectura de microservices. Dicha arquitectura propuesta deberá ser convalidada junto al ayudante. Las tecnologías a utilizar son detalladas en la sección tecnologías
Smart contract
La gestión de pagos de las transacciones se realizará utilizando un smart contract, el cual será provisto por la cátedra
Tecnologías
Stack de tecnologías recomendadas para el desarrollo de los distintos componentes.
Aplicación mobile
Para el desarrollo de la App se podrá optar por:
- Desarrollar sobre Android nativo utilizando Kotlin como lenguaje de programación.
- Desarrollar sobre React Native utilizando JavaScript como lenguaje de programación.
Servicios backend
Para el desarrollo de los servicios backend se deberá utilizar como lenguajes de programación:
Junto con sus respectivos frameworks. La cátedra recomienda alguno de estos
Se recomiendan como base de datos alguna de las siguientes
Esta elección será responsabilidad del grupo y la misma deberá estar consensuada junto al ayudante. Además quedará justificada en la documentación técnica que formará parte del TP.
Backoffice web
Para el desarrollo del backoffice web se utilizará React como biblioteca.
Contenido multimedia
Para el uso de contenido multimedia se recomienda utilizar el servicio provisto por firebase Storage
Chat
Para el uso del chat en tiempo real se recomienda utilizar el servicio provisto por firebase Real time database
Notificaciones
Push
Para el uso de notificaciones push se recomienda utilizar el servicio provisto por firebase Cloud Messaging
Mensajería whatsapp
Para el uso de mensajería con whatsapp se recomienda utilizar el servicio provisto por Twilio
Log
Los servidores deben contar con un sistema de log en donde se registren los eventos que se generen durante la ejecución. El sistema de log debe permitir configurar el nivel de los eventos que desean registrar. Estos niveles son:
Nivel | Condiciones |
---|---|
Error | Condición de falla catastrófica, el sistema no puede funcionar. (criterio de las 2 a.m.) Condición que haga que la aplicación no pueda ejecutar una funcionalidad. Ejemplo: No es posible conectarse con la base de datos |
Warn | Cualquier condición anómala que afecte el funcionamiento del sistema, pero no impida la funcionalidad básica Ejemplos: Uso de APIs deprecadas, Mal uso de APIs |
Info | Cualquier acción correspondiente a un caso de uso iniciada por el usuario o el sistema. Información que permita trazar el historial de las entidades. Ejemplos: Conexión a la base de datos exitosa, Conexión de nuevo cliente |
Debug | Información de contexto que permita resolver un problema técnico. Debe ser útil incluso sin el código fuente Ejemplo: Datos de login para la DB |
Estos logs deberán ser almacenados de tal manera que puedan ser accedidos en cualquier momento
Monitoreo
Para el monitoreo de los servicios se recomiendan alguna de las siguientes librerías/plataformas
Empaquetamiento
Cada uno de los desarrollos solicitados debe empaquetarse según el estándar de la plataforma, es decir:
- Python: Python Setuptools (
setup.py
yrequeriments.txt
) - Node: Node Package Manager (
npm
,package.json
), Yarn Package Manager(https://yarnpkg.com/lang/en/) - Android Client: Android Application Package (
apk
)
Además, los proyectos backend deberán traer un Dockerfile
que permita correrlos sin necesidad de tener instalado los respectivos lenguajes.
Testing
El desarrollo de la aplicación se deberá adaptar a los estándares de calidad utilizados por AppMaker©. Dentro de estos estándares se encuentran:
- Pruebas unitarias
- Métricas: code coverage debe ser mayor a 75%
- Respetar estándar para estilo de codificación: Lint
- Pruebas de integración.
- Todas aquellas que se consideren convenientes para garantizar la calidad de las aplicaciones desarrolladas.
Nota: Esta sección hace sólo referencia a los servicios de backend No se toma como requerimiento el realizar pruebas sobre el cliente Android, aunque es recomendado como una buena práctica.
CI-CD
Las pruebas y métricas anteriormente mencionadas deberán correr bajo una plataforma de integración continua.
Se sugiere el uso de GitHub Actions o Gitlab Pipelines, pero se podrá utilizar otro previa justificación.
El resultado del code coverage debe ser desplegado automáticamente a una plataforma que permita visualizarlas, entre muchas posibilidades se encuentran:
- Coveralls
- Codecov
- Utilizar Github Pages para generar una web para visualizarlo
Finalmente, el despliegue al servidor de PAAS elegido deberá ser automático. Este deberá tener en cuenta como la actualización de la base de datos (cambios en las tablas, etc). El mecanismo utilizado para disparar dicho despliegue (utilizar el branch master como productivo, utilizar un tags con nombre especial) será definido por los desarrolladores y deberá ser detallado en la documentación
Despliegue en la Nube
Los servicios, se deberán disponibilizar en la nube utilizando una plataforma como servicio (PAAS).
Se recomienda usar Heroku ya que cuenta con todos los requerimientos tecnológicos pedidos anteriormente.
Despliegue usando k8s
De manera optativa se podrá realizar una migración de los servicios backend de la plataforma a kubernetes
UX
Se deberá presentar evidencia de prototipado del diseño de pantallas, las cuales serán convalidadas junto al ayudante a cargo
Para el diseño de la interfaz deben respetarse las guías de diseño propuestas por Google con Material Design.
Documentación
Se deberá entregar la siguiente documentación:
Servicios Backend:
- Documentación técnica:
- Instalación y configuración
- Definición de arquitectura
- Especificación de API REST: OpenAPI
Guía de usuario de la aplicación disponible en Github Pages
Guía de usuario del backoffice disponible en Github Pages
Bitácora de proyecto
Se espera que dicha documentación se elabore de manera incremental y que cada entrega parcial tenga parte de la misma.
Instancias de entrega
Instancia | Fecha | Alcance |
---|---|---|
Checkpoint 1 | 15/9 | A definir |
Checkpoint 2 | 13/10 | A definir |
Checkpoint 3 | 17/11 | A definir |
Entrega Final | 7/12 | A definir |