Backlog

Backlog v5.8 · producto v7.2.0 · iteración 30 · actualizado el 2026-11-01

100%avance total
12/12épicas completas
139/139historias en GREEN
92.6 %cobertura · CI en verde

139 historias

EPIC-01

Cuenta, suscripción y acceso

100%19 de 19 en GREEN

19 historias · aún sin integrar en develop

Detalles

Permitir que cualquier usuario cree su cuenta (correo + contraseña) verificada por OTP, quede asociado a una suscripción y acceda de forma segura. Cada cuenta es un espacio aislado (multi-tenant): sus servicios, clientes, cotizaciones, proyectos y pagos son propios y no visibles para otras cuentas.

  • GREEN 19
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
12 · 13 · 14 · 15 · 23 · 25 · 26 · 28 · 29 · 30
Último cambio
2026-11-01

Historias

  1. US-01 Registrar una cuenta con correo y contraseña

    Como visitante quiero registrar una cuenta con mi correo y una contraseña para tener mi propio espacio de trabajo con su suscripción.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Registro crea cuenta y suscripciónGiven un visitante en el formulario de registroWhen ingresa el correo 'ana@estudio.mx' y una contraseña de al menos 8 caracteres y confirma el registroThen se crea su cuenta en estado 'pendiente de verificación'And se crea una suscripción activa con el plan inicial asociada a la cuentaAnd el código de verificación sale hacia ese correo.
    2. Caso alternativo - Correo ya registradoGiven el correo 'ana@estudio.mx' ya registrado en una cuentaWhen un visitante intenta registrarse con ese mismo correo, aunque lo escriba con mayúsculasThen el sistema muestra 'Ese correo ya está registrado'And no crea una nueva cuenta.
    3. Caso de borde - Contraseña demasiado cortaGiven un visitante en el formulario de registroWhen ingresa una contraseña de menos de 8 caracteresThen el sistema muestra 'La contraseña debe tener al menos 8 caracteres'And no crea la cuenta.
    4. Caso de borde - Un teléfono no es un correoGiven el formulario de registroWhen el visitante escribe un número de teléfono en lugar de un correoThen el sistema muestra 'Escribe un correo válido'And no crea la cuenta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend fbb4816
    3. Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

      GREENfrontend 4182563
    4. v5.7 — iteracion-29: la fotografía de la marca al crear la cuenta

      BacklogCambioIteración 29
      • Cambio iteracion-29 - La fotografía de la marca al crear la cuentaGiven un visitante en «Crear cuenta»When la pantalla se abre en la computadoraThen junto al formulario ve la fotografía de la maqueta blanca con tezontle y obsidiana, completa y sin velo, con el logotipo, el lema y las ventajas en la banda de obsidiana de arriba y la firma abajoAnd en el teléfono y la tableta la misma fotografía queda detrás del formulario, velada con el fondo de la appAnd todo el texto de la pantalla se lee con contraste AA en claro y en oscuro.
    5. v5.8 — iteracion-30: la fotografía, de fondo del panel al crear la cuenta

      BacklogBugIteración 30
      • Bug iteracion-30 - La fotografía es el fondo del panel al crear la cuentaGiven un visitante en «Crear cuenta»When la pantalla se abre en la computadoraThen la fotografía de la maqueta blanca con tezontle y obsidiana ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
    6. v5.4 — iteracion-26: crear la cuenta deja la sesión abierta para verificar

      BacklogCambioIteración 26
      • Cambio iteracion-26 - La sesión nace sin verificarGiven un registro válidoWhen se crea la cuentaThen la sesión queda abierta en cookies seguras que ningún script de la página puede leerAnd la pantalla lleva a escribir el códigoAnd mientras el correo no se verifique la cuenta solo puede verificarlo, pedir el código otra vez, ver su cuenta o salir.
    7. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    8. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el registroWhen el usuario lo abreThen ve un asterisco en Correo, Contraseña, Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
    9. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear cuenta» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    10. Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

      GREENbackend 6e7cc23
    11. Iteración 12 · Bug: TEC Configuración de seguridad de Django

      GREENbackend b83f39e
    12. v1.0

      Backlog
      • Cambio v1.0 - Alta de registro de cuenta y suscripciónGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-01 de registro de cuenta con teléfono, contraseña y creación de suscripción.
    13. v3.2

      Backlog
      • Cambio v3.2 - Sólo correoGiven que la cuenta se creaba con teléfono o con correoWhen se revisa US-01 en v3.2Then se crea sólo con correo, porque es el único canal por el que se puede mandar el código.

    Formulario

    • Obligatorios Correo, Contraseña, Aceptación de los términos y la política de privacidad
    • Mensaje Correo: «Escribe tu correo»
    • Mensaje Correo: «Escribe un correo válido»
    • Mensaje Contraseña: «La contraseña debe tener al menos 8 caracteres»
    • Mensaje Aceptación de los términos y la política de privacidad: «Acepta los términos y la política de privacidad para crear tu cuenta»
  2. US-02 Verificar el correo con un código

    Como usuario recién registrado quiero verificar mi correo con el código que me llega para activar mi cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Verificación con código válido activa la cuentaGiven una cuenta recién registrada en estado 'pendiente de verificación'When el usuario ingresa el código que le llegó al correoThen su correo queda verificadoAnd la cuenta pasa a estado 'activa'And el usuario puede iniciar sesión.
    2. Caso alternativo - Código incorrectoGiven una cuenta en estado 'pendiente de verificación'When el usuario ingresa un código incorrectoThen el sistema muestra 'Código de verificación inválido'And la cuenta permanece 'pendiente de verificación'.
    3. Caso de borde - Correo ya verificadoGiven una cuenta cuyo correo ya fue verificadoWhen alguien intenta verificarlo nuevamente con un códigoThen recibe el mismo mensaje que con un código incorrecto («Código de verificación inválido»), sin revelar si la cuenta existe o ya estaba verificadaAnd no cambia el estado de la cuenta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend fbb4816
    3. Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

      GREENfrontend 4182563
    4. v5.6 — iteracion-28: el código en seis casillas

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El código de verificación en seis casillasGiven el usuario en «Verifica tu cuenta»When escribe el código que le llegó por correoThen lo escribe en seis casillas, una por dígito, que solo aceptan númerosAnd el teléfono le ofrece el teclado numérico y el código que acaba de llegarAnd un código de menos de seis dígitos sigue diciendo «Ingresa el código de 6 dígitos» al salir del campo.
    5. v5.7 — iteracion-29: verificar el código con la foto del registro

      BacklogCambioIteración 29
      • Cambio iteracion-29 - Verificar el código con la foto del registroGiven el usuario en «Verifica tu cuenta»When la pantalla se abreThen lleva la misma fotografía que el registro, la maqueta blanca con tezontle y obsidiana: junto al formulario en la computadora y velada detrás de él en el teléfono.
    6. v5.8 — iteracion-30: la fotografía, de fondo del panel al verificar el código

      BacklogBugIteración 30
      • Bug iteracion-30 - La fotografía es el fondo del panel al verificar el códigoGiven el usuario en «Verifica tu cuenta»When la pantalla se abre en la computadoraThen la fotografía del registro, la maqueta blanca con tezontle y obsidiana, ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
    7. v5.4 — iteracion-26: verificar el correo entra a la aplicación

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Verificar entra a la aplicaciónGiven una cuenta que acaba de registrarse o que entró sin verificarWhen escribe el código correctoThen entra directo a la aplicación sin volver a escribir su contraseña.
      • Cambio iteracion-26 - Una sesión sin verificar vuelve al códigoGiven una sesión cuyo correo no está verificadoWhen abre cualquier pantalla de la aplicación o una acción le responde que falta verificarThen la aplicación la lleva a escribir el código de su correo.
    8. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    9. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la verificación de la cuentaWhen el usuario lo abreThen ve un asterisco en Código de verificaciónAnd la leyenda «Los campos con * son obligatorios»And si sale de «Código de verificación» sin cumplirlo ve «Ingresa el código de 6 dígitos» junto al campo.
    10. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Verificar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    11. Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

      GREENbackend b1071c7
    12. v4.4 — iteracion-12: el código se anula tras varios errores

      BacklogBugIteración 12
      • Bug iteracion-12 - Cinco errores anulan el códigoGiven un código de verificación vigenteWhen se escribe mal 5 vecesThen el código deja de servir y hay que pedir otro.
      • Bug iteracion-12 - Demasiados intentos piden esperarGiven muchos intentos seguidos de entrar o verificarWhen se pasa del límiteThen se pide esperar antes de volver a intentar.
    13. v1.0

      Backlog
      • Cambio v1.0 - Alta de verificación por OTPGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-02 de verificación del teléfono por OTP con código universal del MVP.
    14. v3.2

      Backlog
      • Cambio v3.2 - El código verifica el correoGiven que el código verificaba el teléfonoWhen se revisa US-02 en v3.2Then verifica el correo, que es por donde llega.

    Formulario

    • Obligatorios Código de verificación
    • Mensaje Código de verificación: «Ingresa el código de 6 dígitos»
  3. US-03 Iniciar sesión con correo y contraseña

    Como usuario con cuenta activa quiero iniciar sesión con mi correo y contraseña para acceder a mis propios datos.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Acceso con credenciales válidasGiven una cuenta activa con correo verificado y credenciales válidasWhen el usuario ingresa su correo y contraseña correctosThen el sistema inicia su sesiónAnd lo lleva a su panel mostrando únicamente sus propios datos.
    2. Caso alternativo - Contraseña incorrectaGiven una cuenta activaWhen el usuario ingresa su correo con una contraseña incorrectaThen el sistema muestra 'Credenciales inválidas'And no inicia la sesión.
    3. Caso de borde - Cuenta sin correo verificadoGiven una cuenta registrada cuyo correo aún no ha sido verificadoWhen el usuario intenta iniciar sesión con credenciales correctasThen el sistema muestra 'Debes verificar tu cuenta antes de iniciar sesión'And le reenvía el código al correoAnd no inicia la sesión.
    4. Refinamiento v1.1 - Sesión persistente entre recargasGiven un usuario con sesión iniciadaWhen recarga la aplicación o regresa tras un rato de inactividadThen su sesión continúa activa sin volver a iniciar sesiónAnd el acceso se renueva automáticamente en segundo plano.
    5. Caso de borde v1.1 - Sesión que ya no puede renovarseGiven un usuario cuya sesión ya no puede renovarse (refresco expirado)When intenta continuar usando la aplicaciónThen el sistema lo lleva a iniciar sesión nuevamente.
    6. Caso de borde v3.2 - El teléfono ya no es una forma de entrarGiven la pantalla de iniciar sesiónWhen el usuario escribe un número de teléfono en el campo de correoThen el sistema muestra 'Escribe un correo válido'And no intenta iniciar la sesión.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend fbb4816
    3. Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

      GREENfrontend 4182563
    4. v5.7 — iteracion-29: la fotografía de la marca al iniciar sesión

      BacklogCambioIteración 29
      • Cambio iteracion-29 - La fotografía de la marca al iniciar sesiónGiven el usuario en «Iniciar sesión»When la pantalla se abreThen ve el plano en papel con el cubo de concreto, los bloques de tezontle y cantera, el metro y el nivel: sin velo junto al formulario en la computadora y velado detrás del formulario en el teléfonoAnd el texto nunca va encima de la fotografíaAnd es la fotografía de cualquier pantalla sin sesión que no tenga la suya.
    5. v5.8 — iteracion-30: la fotografía, de fondo del panel al iniciar sesión

      BacklogBugIteración 30
      • Bug iteracion-30 - La fotografía es el fondo del panel al iniciar sesiónGiven el usuario en «Iniciar sesión»When la pantalla se abre en la computadoraThen la fotografía del plano con el cubo de concreto ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    7. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el accesoWhen el usuario lo abreThen ve un asterisco en Correo, ContraseñaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
    8. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Iniciar sesión» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    9. Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

      GREENbackend 23c6d4d
    10. Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

      GREENbackend b1071c7
    11. v4.4 — iteracion-12: la sesión no se guarda en el dispositivo

      BacklogBugIteración 12
      • Bug iteracion-12 - La sesión no queda a la vista de otros programasGiven una persona que entra a CUOTREKAWhen se guarda su sesiónThen ningún programa de la página ni una extensión del navegador puede leerla.
      • Bug iteracion-12 - La sesión se renueva sola y dura una semanaGiven una sesión abiertaWhen pasa media hora sin renovarseThen se renueva sola mientras la persona sigue usando la aplicaciónAnd a los 7 días sin entrar pide volver a iniciar sesión.
    12. v1.0

      Backlog
      • Cambio v1.0 - Alta de inicio de sesiónGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-03 de inicio de sesión con teléfono y contraseña.
    13. v1.1

      Backlog
      • Cambio v1.1 - Sesión persistente y renovación de accesoGiven sesiones que se cerraban por expiración del tokenWhen se refina US-03 en v1.1Then la sesión persiste entre recargas y el acceso se renueva automáticamente (token de refresco) para no cerrar sesiones activas.
    14. v3.2

      Backlog
      • Cambio v3.2 - Se entra con correoGiven que se entraba con teléfono o correoWhen se revisa US-03 en v3.2Then se entra sólo con correo.

    Formulario

    • Obligatorios Correo, Contraseña
    • Mensaje Correo: «Escribe tu correo»
    • Mensaje Correo: «Escribe un correo válido»
    • Mensaje Contraseña: «La contraseña es obligatoria»
  4. US-71 Poner el nombre y el color de mi organización

    Como arquitecto quiero configurar el nombre y el color de mi despacho, para que mis documentos salgan con mi membrete y no con el de la herramienta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - La organización se edita desde el menú de la cuentaGiven el menú de cuenta abiertoWhen el usuario elige «Organización»Then llega a una pantalla donde escribe el nombre de su despacho y elige su color.
    2. Flujo principal - Los documentos salen con ese membreteGiven una organización con nombre y color guardadosWhen el usuario genera cualquier documentoThen el encabezado lleva ese nombre sobre una banda de ese color.
    3. Flujo principal - Debajo del nombre, la firma de ItzakaGiven un documento firmado con el nombre de la organizaciónWhen el cliente lo leeThen debajo del nombre encuentra, en texto más pequeño, «Optimizado por Itzaka».
    4. Flujo principal - Se ve antes de guardarGiven la pantalla de organizaciónWhen el usuario cambia el nombre o el colorThen una vista previa del encabezado le muestra cómo va a quedar el documento.
    5. Caso de borde - Sin nombre configuradoGiven una cuenta que no ha puesto nombreWhen genera un documentoThen lo firma Itzaka con su propia leyenda, en lugar de dejar la banda en blanco.
    6. Caso de borde - Un color claroGiven una organización que elige un color claroWhen se dibuja el encabezadoThen el texto se escribe con tinta oscura para que se pueda leer.
    7. Caso alternativo - Un color que no es un colorGiven un valor que no es hexadecimal de seis dígitosWhen se intenta guardarThen no se guarda y se explica el formato esperado.
    8. Flujo principal v3.2 - El contacto también es de la organizaciónGiven la pantalla de organizaciónWhen el usuario escribe un teléfono y un correo de contactoThen los documentos los imprimen en la banda (US-118).

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend c5e18a3
    3. v5.6 — iteracion-28: si los datos de la organización no llegan, la pantalla lo dice y deja reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si los datos de la organización no llegan, la pantalla lo dice y deja reintentarGiven la persona abre OrganizaciónAnd el servidor no entrega los datos de su organizaciónWhen se pinta la pantallaThen dice «No se pudieron cargar los datos de la organización.» con el motivo del servidor y el botón «Reintentar»And al tocar «Reintentar» se vuelven a pedir y el membrete muestra lo guardado.
    4. v5.7 — iteracion-29: el color personalizado con el campo del sistema de diseño

      BacklogCambioIteración 29
      • Cambio iteracion-29 - El color personalizado con el campo del sistema de diseñoGiven el administrador en «Datos de la organización»When elige un color propioThen lo elige con el selector de color del teléfono o de la computadora, en un campo con el borde, el foco y el estado deshabilitado de los demás camposAnd el color elegido aparece en «Hexadecimal».
    5. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    6. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la organización con un cambio sin guardarWhen el usuario toca «Guardar organización» y la respuesta tardaThen el botón dice «Guardando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se guarda dos veces.
    7. Iteración 23 · Cambio: Organización con el layout de configuración: «Datos de la organización»

      GREENfrontend 8fd4d0f
    8. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    9. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    10. v5.2 — iteracion-23: Organización con el estándar de configuración

      BacklogCambioIteración 23
      • Cambio iteracion-23 - Datos de la organizaciónGiven el usuario en Organización (/organization)When la abreThen ve el encabezado de configuración y la sección «Datos de la organización» con el nombre, el contacto, el color, el logotipo y la vista previa del membrete, como antesAnd sin navegación de secciones, porque es la única.
    11. v5.3 — iteracion-25: Organización con Folios de documentos

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Dos secciones en OrganizaciónGiven el usuario en OrganizaciónWhen la abreThen ve la navegación de secciones con «Datos de la organización» (/organization) y «Folios de documentos» (/organization/folios), la activa marcada.
    12. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven OrganizaciónWhen el usuario llega con el teclado a cada color de la organizaciónThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    13. Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

      GREENbackend 502e2e7
    14. v4.6 — iteracion-14: el nombre y el color los cambia sólo el administrador

      BacklogCambioIteración 14
      • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
    15. v2.14

      Backlog
      • Cambio v2.14 - Nace la organizaciónGiven que los documentos salían firmados por CUOTREKA y un teléfonoWhen se agrega US-71 en v2.14Then cada cuenta firma con el nombre y el color de su despacho.
    16. v3.2

      Backlog
      • Cambio v3.2 - Contacto de la organizaciónGiven que la organización guardaba nombre, color y logotipoWhen se revisa US-71 en v3.2Then guarda también el teléfono y el correo de contacto.

    Formulario

    • Mensaje Correo de contacto: «Escribe un correo válido»
    • Mensaje Hexadecimal: «Usa un color como #141517 (seis dígitos).»
  5. US-82 Volver a entrar cuando olvidé mi contraseña

    Como usuario que olvidó su contraseña quiero recuperarla con mi correo, para no quedarme fuera de mi cuenta y de mis cotizaciones.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - El acceso ofrece la salidaGiven la pantalla de iniciar sesiónWhen el usuario no recuerda su contraseñaThen encuentra «¿Olvidaste tu contraseña?» y llega a recuperarla.
    2. Flujo principal - Con el correo y el código, se cambiaGiven el correo de una cuentaWhen el usuario escribe el código de verificación y una contraseña nuevaThen queda cambiada y puede iniciar sesión con ella.
    3. Flujo principal - Todo en una pantallaGiven la recuperaciónWhen el usuario pasa del correo al códigoThen sigue en la misma pantalla, que recuerda a qué correo pertenece, y puede volver si lo tecleó mal.
    4. Caso de borde - No se revela quién tiene cuentaGiven un correo que no existeWhen se pide recuperarThen la respuesta es la misma que para uno que sí existe.
    5. Caso de borde - Quien recupera, verificaGiven una cuenta que nunca verificó su correoWhen completa la recuperaciónThen queda verificada, porque demostró lo mismo que verificándola.
    6. Caso alternativo - Un código equivocadoGiven un código que no es el correctoWhen se intenta cambiar la contraseñaThen no se cambia y se explica, sin perder lo ya escrito.
    7. Caso alternativo - Una contraseña cortaGiven una contraseña de menos de 8 caracteresWhen se intenta guardarThen se avisa antes de enviarla, con la misma regla que al registrarse.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend fbb4816
    3. Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

      GREENfrontend 4182563
    4. v5.6 — iteracion-28: el código de recuperación en seis casillas

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El código del segundo paso en seis casillasGiven el usuario en el segundo paso de «Recuperar contraseña»When escribe el código que le llegó por correoThen lo escribe en seis casillas numéricas, una por dígitoAnd después elige su nueva contraseña como antes.
    5. v5.7 — iteracion-29: la llave en los dos pasos de recuperar la contraseña

      BacklogCambioIteración 29
      • Cambio iteracion-29 - La llave en los dos pasos de recuperar la contraseñaGiven el usuario en «Recuperar contraseña»When pide el código y después elige su contraseña nuevaThen en los dos pasos ve la fotografía de la maqueta con la llave y el llavero de piel tezontle, junto al formulario en la computadora y velada detrás de él en el teléfono.
    6. v5.8 — iteracion-30: la fotografía, de fondo del panel al recuperar la contraseña

      BacklogBugIteración 30
      • Bug iteracion-30 - La fotografía es el fondo del panel al recuperar la contraseñaGiven el usuario en «Recuperar contraseña», en sus dos pasos,When la pantalla se abre en la computadoraThen la fotografía de la maqueta con la llave ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
    7. v5.4 — iteracion-26: el código no revela si la cuenta existe

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Un correo sin cuenta responde como un código equivocadoGiven un correo que no tiene cuentaWhen alguien escribe un código y una contraseña nuevaThen recibe el mismo mensaje que con un código incorrectoAnd no se revela si la cuenta existe.
    8. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    9. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la recuperación de la contraseñaWhen el usuario lo abreThen ve un asterisco en Correo, Código de verificación, Nueva contraseñaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
    10. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Cambiar contraseña» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    11. Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

      GREENbackend b1071c7
    12. Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

      GREENbackend 6e7cc23
    13. v2.18

      Backlog
      • Cambio v2.18 - Deja de ser una puerta sin llaveGiven que no existía ni pantalla ni endpoint y quien olvidaba su contraseña quedaba fuera para siempreWhen se agrega US-82 en v2.18Then hay una forma de volver a entrar.
    14. v3.2

      Backlog
      • Cambio v3.2 - Se recupera con el correoGiven que se recuperaba con el teléfonoWhen se revisa US-82 en v3.2Then se recupera con el correo, que es por donde llega el código.

    Formulario

    • Obligatorios Correo, Código de verificación, Nueva contraseña
    • Mensaje Correo: «Escribe tu correo»
    • Mensaje Correo: «Escribe un correo válido»
    • Mensaje Código de verificación: «Ingresa el código de 6 dígitos»
    • Mensaje Nueva contraseña: «La contraseña debe tener al menos 8 caracteres»
  6. US-89 Que el código me llegue otra vez si no me llegó

    Como persona que acaba de crear su cuenta quiero que la aplicación me lleve directo a verificarla y poder pedir el código otra vez, para no quedarme fuera por un mensaje que no llegó.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Crear la cuenta lleva directo a verificarGiven el formulario de registro completoWhen creo la cuentaThen la aplicación me deja en la pantalla del código con mi correo ya puesto, sin avisos intermedios que haya que tocar.
    2. Flujo principal - Pedir el código otra vezGiven la pantalla de verificaciónWhen toco «Reenviar código»Then se pide de nuevo al servidor y la pantalla lo confirma.
    3. Caso de borde - No se puede insistir sin pararGiven que acabo de pedir el códigoWhen miro el botónThen dice cuántos segundos faltan y no responde hasta que pasan.
    4. Caso alternativo - Si el reenvío fallaGiven un error del servidor al reenviarWhen termina el intentoThen la pantalla lo explica y el botón queda disponible enseguida, sin espera.
    5. Flujo principal - Verificar lleva al accesoGiven el código correctoWhen lo verificoThen la aplicación me lleva a iniciar sesión y me avisa ahí que la cuenta quedó activada.
    6. Flujo principal - También al recuperar la contraseñaGiven la pantalla del código de recuperaciónWhen toco «Reenviar código»Then se vuelve a pedir para ese mismo correo.
    7. Caso de borde - El reenvío no dice quién tiene cuentaGiven un correo cualquieraWhen se pide el reenvíoThen la respuesta es la misma exista o no la cuenta y esté o no verificada.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la pantalla de verificaciónWhen el usuario toca «Reenviar código» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el código no se pide dos veces.
    4. v5.4 — iteracion-26: un minuto entre reenvíos y hasta cinco códigos por hora

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Espera y tope del reenvíoGiven que acabo de pedir el códigoWhen lo pido otra vez antes de un minuto, o ya pedí cinco en la última horaThen la pantalla dice cuántos segundos esperarAnd no sale otro correo.
    5. Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

      GREENbackend b1071c7
    6. v2.21

      Backlog
      • Cambio v2.21 - El alta ya no se queda a mediasGiven que crear la cuenta dejaba un aviso con un botón y que un código que no llegaba no se podía volver a pedirWhen se agrega US-89 en v2.21Then el registro lleva solo a verificar y hay reenvío con espera entre intentos.
    7. v3.2

      Backlog
      • Cambio v3.2 - El código va al correoGiven que el reenvío hablaba del teléfonoWhen se revisa US-89 en v3.2Then habla del correo, el único canal.
  7. US-90 Que entrar sin verificar me lleve a verificar

    Como persona que se registró y no alcanzó a verificar su correo quiero que al intentar entrar la aplicación me mande el código y me lleve a escribirlo, para no toparme con un error rojo sin salida.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Entrar sin verificar lleva al códigoGiven una cuenta cuyo correo no está verificadoWhen entro con mi correo y mi contraseña correctosThen la aplicación me deja en la pantalla del código, igual que al registrarme, y no me muestra un error.
    2. Flujo principal - El código se manda soloGiven ese mismo intento de accesoWhen el servidor lo rechaza por falta de verificaciónThen ya dejó enviado el código, sin que yo tenga que pedirlo.
    3. Flujo principal - La pantalla explica por qué estoy ahíGiven que esperaba entrar a la aplicaciónWhen aparece la pantalla del códigoThen dice que la cuenta todavía no está verificada y que el código se envió otra vez.
    4. Caso alternativo - Una contraseña equivocada sigue siendo un errorGiven credenciales que no correspondenWhen intento entrarThen veo el error de siempre y me quedo en el acceso.
    5. Caso de borde - La pantalla no adivina por el textoGiven la respuesta del servidorWhen se decide a dónde llevar a la personaThen se mira un código propio de la respuesta, no la redacción del mensaje.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. v5.4 — iteracion-26: después del código se entra a la aplicación

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Del código a la aplicaciónGiven que entré con una cuenta sin verificar y me llegó el códigoWhen lo escribo bienThen entro a la aplicación sin volver a la pantalla de acceso.
    3. Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

      GREENbackend 23c6d4d
    4. v2.22

      Backlog
      • Cambio v2.22 - El acceso deja de ser un callejónGiven que entrar sin verificar sólo devolvía un error rojo sin nada que hacer desde ahíWhen se agrega US-90 en v2.22Then el acceso manda el código y lleva a escribirlo.
    5. v3.6

      Backlog
      • Cambio v3.6 - Texto alineado con el sistemaGiven que la historia hablaba de verificar el teléfonoWhen se revisa US-90 en v3.6Then habla del correo, que es la única forma de entrar desde v3.2.
  8. US-102 Poner mi logotipo en los documentos

    Como arquitecto quiero subir el logotipo de mi despacho para que salga en las cotizaciones y los comprobantes, junto al nombre.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Subir el logotipoGiven la pantalla de organizaciónWhen subo una imagenThen queda guardada en mi cuenta y la vista previa la muestra en la banda.
    2. Flujo principal - Sale en los documentosGiven un logotipo guardadoWhen genero una cotización o un comprobanteThen sale en la banda, a la izquierda del nombre.
    3. Caso de borde - QuitarloGiven un logotipo puestoWhen lo quitoThen los documentos vuelven a salir sólo con el nombre.
    4. Caso de borde - Un archivo que no cabeGiven una imagen de varios megasWhen intento subirlaThen se rechaza diciendo el tope.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la pantalla de organizaciónWhen el usuario sube su logotipo o toca «Quitar» y la respuesta tardaThen el botón que tocó muestra el indicador de carga del sistema junto a su textoAnd los dos quedan deshabilitados hasta que termina.
    4. Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

      GREENbackend 502e2e7
    5. v4.6 — iteracion-14: el logotipo lo cambia sólo el administrador

      BacklogCambioIteración 14
      • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
    6. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    7. v2.29

      Backlog
      • Cambio v2.29 - El membrete lleva marcaGiven que el membrete era un nombre y un colorWhen se agrega US-102 en v2.29Then también lleva el logotipo del despacho.
    8. v3.0

      Backlog
      • Cambio v3.0 - El logotipo llega al documentoGiven que el logotipo se bajaba del almacenamiento —otro dominio, que no autoriza la descarga— y la banda quedaba sin marcaWhen se corrige en v3.0Then la propia aplicación lo entrega en bytes y el documento lo lleva.

    Formulario

    • Mensaje Logotipo: «El logotipo tiene que ser una imagen PNG, JPG, WebP o GIF.»
    • Mensaje Logotipo: «El logotipo pesa más de 2 MB.»
  9. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    Como arquitecto quiero que mi cuenta sea mi correo —por ahí entro y por ahí me llegan los códigos— y poder cambiarlo desde mi perfil.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Alta con correoGiven la pantalla de registroWhen escribo mi correo y una contraseñaThen se crea mi cuenta y recibo el código de verificación en ese correo.
    2. Flujo principal - Entrar con el correoGiven una cuenta verificadaWhen escribo mi correo, como sea que lo escriba de mayúsculas, y mi contraseñaThen entro.
    3. Flujo principal - Cambiarlo desde el perfilGiven mi perfilWhen pido cambiar mi correoThen el nuevo queda pendiente hasta escribir el código que le llega, y mientras tanto sigo entrando con el de siempre (US-124).
    4. Caso de borde - Un correo ya usadoGiven un correo que ya es de otra cuentaWhen intento tomarloThen se rechaza diciendo por qué.
    5. Caso de borde - Quedarse sin correoGiven mi perfilWhen intento dejar el correo vacíoThen se impide, porque no habría manera de volver a entrar.
    6. Caso de borde - El teléfono ya no es de la cuentaGiven mi perfilWhen lo abroThen no me pide teléfono: el que sale en los documentos es el de la organización (US-118).

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. v5.6 — iteracion-28: si la cuenta no llega, Cuenta lo dice en el correo de acceso y deja reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si la cuenta no llega, Cuenta lo dice en el correo de acceso y deja reintentarGiven la persona abre Cuenta en Mi perfilAnd el servidor no entrega su cuentaWhen se pinta la secciónThen el bloque «Correo de acceso» dice «No se pudo cargar tu cuenta.» con el motivo del servidor y el botón «Reintentar»And cambiar la contraseña y eliminar la cuenta siguen a la manoAnd al tocar «Reintentar» aparece el correo con su formulario para cambiarlo.
    3. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    4. v5.2 — iteracion-23: el correo se cambia en la sección Cuenta

      BacklogCambioIteración 23
      • Cambio iteracion-23 - El correo en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then ahí cambia su correo de acceso, como antes.
    5. v2.30

      Backlog
      • Cambio v2.30 - La identidad deja de ser sólo el teléfonoGiven que la cuenta se identificaba únicamente por su teléfonoWhen se agrega US-104 en v2.30Then se identifica por teléfono, por correo, o por ambos.
    6. v3.2

      Backlog
      • Cambio v3.2 - Sólo correoGiven que la cuenta se identificaba por teléfono, por correo o por ambosWhen se revisa US-104 en v3.2Then se identifica sólo por su correo: no había cómo mandar un código a un teléfono, y el teléfono de los documentos pasa a ser el de la organización.
    7. v3.3

      Backlog
      • Cambio v3.3 - El correo nuevo espera su códigoGiven que el correo nuevo reemplazaba al de siempre al guardarloWhen se revisa US-104 en v3.3Then espera su código antes de reemplazarlo.
  10. US-105 Mandar mis documentos por correo desde la aplicación

    Como arquitecto quiero enviar la cotización y los comprobantes por correo, con la cara de mi despacho, sin salir de la aplicación.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Enviar una cotizaciónGiven una cotizaciónWhen toco enviar por correo y escribo la dirección del clienteThen le llega el PDF con un mensaje que lleva mi nombre y mi color.
    2. Flujo principal - Los cuatro documentosGiven una cotización, un estado de proyecto, un comprobante de pago o uno de cobroWhen los envíoThen cada uno llega con el texto que le corresponde.
    3. Flujo principal - El código de verificación llegaGiven una cuenta con correoWhen me registro o cambio mi contraseñaThen recibo un código propio, que vence y sirve una sola vez.
    4. Caso alternativo - Sin membrete configuradoGiven una cuenta sin nombre ni logotipoWhen envío un documentoThen sale con la marca de Itzaka.
    5. Caso alternativo - Con membrete configuradoGiven una cuenta con su nombre y su colorWhen envío un documentoThen sale con los suyos y el pie dice «optimizado por Itzaka».
    6. Caso de borde - No se pudo entregarGiven un envío que el proveedor no aceptaWhen termina el intentoThen la pantalla lo dice y el documento sigue disponible para descargarlo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven el correo de quien recibe el documentoWhen el usuario toca «Enviar» y armar el documento o la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el documento no se manda dos veces.
    4. v5.4 — iteracion-26: documentos de hasta 4 MB por correo

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Tope de 4 MB del adjuntoGiven un documento que pesa más de 4 MBWhen lo mando por correoThen la aplicación avisa que el tope es de 4 MBAnd no se envía.
    5. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    7. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el envío de un documento por correoWhen el usuario lo abreThen ve un asterisco en Correo de quien lo recibeAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo de quien lo recibe» sin cumplirlo ve «Escribe el correo de quien lo recibe» junto al campo.
    8. v5.3 — iteracion-25: el correo cita el folio del sistema

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El correo lleva el folio del documentoGiven un documento con folio «OBR-7»When se manda por correoThen el cuerpo del correo dice «Folio OBR-7»And el adjunto lleva ese folio en su nombre.
    9. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    10. v4.4 — iteracion-12: sólo se envían documentos PDF

      BacklogBugIteración 12
      • Bug iteracion-12 - Adjunto que no es PDFGiven el envío de un documento por correoWhen el archivo adjunto no es un PDFThen no se envía.
    11. v2.30

      Backlog
      • Cambio v2.30 - La aplicación aprende a mandar correoGiven que los documentos sólo se descargaban o se compartían por el teléfonoWhen se agrega US-105 en v2.30Then se pueden entregar por correo desde la propia aplicación.
    12. v3.0

      Backlog
      • Cambio v3.0 - El correo sale de la casaGiven que el cliente de correo se presentaba sin nombre y la protección del proveedor cortaba la peticiónWhen se corrige en v3.0Then se presenta con el suyo y el correo sale.

    Formulario

    • Obligatorios Correo de quien lo recibe
    • Mensaje Correo de quien lo recibe: «Escribe el correo de quien lo recibe»
  11. US-107 Que nadie entre con un correo sin confirmar

    Como arquitecto quiero que mi cuenta exija confirmar el correo antes de entrar para que la dirección por la que recibo códigos y comprobantes sea de verdad la mía.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Sin confirmar no se entraGiven una cuenta con correo sin verificarWhen intento entrar con mi contraseña correctaThen no llego al inicio, el código sale hacia ese correo y la pantalla me lleva a escribirlo.
    2. Caso de borde - El código se pide donde llegóGiven que entro con mi correo sin confirmarWhen la pantalla me pide el códigoThen pide el que llegó a ese correo.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.0

      Backlog
      • Cambio v3.0 - Entrar exige el canal que existe de verdadGiven que bastaba con el teléfono verificadoWhen se agrega US-107 en v3.0Then una cuenta con correo lo confirma antes de entrar.
    3. v3.6

      Backlog
      • Cambio v3.6 - Texto alineado con el sistemaGiven dos escenarios sobre cuentas con teléfonoWhen se revisa US-107 en v3.6Then se retira el de la cuenta con sólo teléfono, que ya no existe, y el otro se reescribe sobre el correo.
  12. US-118 Poner el teléfono y el correo de contacto de mi organización

    Como arquitecto quiero que mis documentos lleven el teléfono y el correo de contacto de mi despacho, que no tienen por qué ser con los que entro a la cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - El contacto sale en la bandaGiven una organización con teléfono y correo de contactoWhen genero cualquier documentoThen la banda los lleva a la derecha, el teléfono arriba y el correo abajo.
    2. Caso alternativo - Sin contacto no sale nadaGiven una organización sin teléfono ni correo de contactoWhen genero un documentoThen la banda no lleva contacto, y tampoco el correo con el que entro a la cuenta.
    3. Caso alternativo - Un correo mal escritoGiven la pantalla de organizaciónWhen escribo 'contacto@'Then se avisa 'Escribe un correo válido' y no se puede guardar.
    4. Flujo principal - Se ve antes de guardarGiven la pantalla de organizaciónWhen escribo el contactoThen la vista previa lo muestra donde va a salir.
    5. Caso de borde - Un nombre largo no lo pisaGiven un nombre de despacho largo y un correo de contactoWhen se dibuja la bandaThen el nombre se achica para no encimarse con el contacto.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 23 · Cambio: Organización con el layout de configuración: «Datos de la organización»

      GREENfrontend 8fd4d0f
    3. v5.2 — iteracion-23: el contacto vive en Datos de la organización

      BacklogCambioIteración 23
      • Cambio iteracion-23 - El contacto en Datos de la organizaciónGiven el usuario en OrganizaciónWhen abre «Datos de la organización»Then ahí pone el teléfono y el correo de contacto, como antes.
    4. Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

      GREENbackend 502e2e7
    5. v4.6 — iteracion-14: el contacto de la organización lo cambia sólo el administrador

      BacklogCambioIteración 14
      • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
    6. Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

      GREENbackend 57daef9
    7. v4.5 — iteracion-13: el teléfono de la organización se valida

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
      • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
    8. v3.2

      Backlog
      • Cambio v3.2 - Contacto de la organizaciónGiven que los documentos imprimían el teléfono de la cuentaWhen se agrega US-118 en v3.2Then imprimen el contacto de la organización, y nada si no lo tiene.
  13. US-121 Leer los términos y la política de privacidad

    Como persona que usa o va a usar Itzaka quiero leer los términos y condiciones y la política de privacidad en cualquier momento, para saber qué acepto y qué se hace con mis datos.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Se leen sin cuentaGiven la página principalWhen toco «Términos y condiciones» o «Política de privacidad» en el pieThen leo el documento con su versión vigente, sin iniciar sesión.
    2. Flujo principal - Desde el menú de la cuentaGiven el menú de la cuentaWhen toco «Documentos legales», debajo de GuíasThen se abre un modal con los enlaces a los dos documentos y la fecha de su versión.
    3. Flujo principal - Dicen lo que hace el códigoGiven los documentosWhen los leoThen describen los datos que la aplicación guarda, los proveedores que usa, lo que se guarda en el navegador y qué pasa al eliminar la cuenta.
    4. Caso de borde - Un documento que no existeGiven una dirección de documento que no es ninguno de los dosWhen se pideThen responde que no existe.
    5. Caso de borde - El texto no se vuelve códigoGiven un documento con texto que parece HTMLWhen se muestraThen se ve como texto.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. v5.6 — iteracion-28: si el documento legal no llega, la página lo dice y deja reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si el documento legal no llega, la página lo dice y deja reintentarGiven alguien abre los términos o la política de privacidad, con o sin cuentaAnd el servidor no entrega el documentoWhen se pinta la páginaThen dice «No se pudo cargar el documento.» con el motivo del servidor y el botón «Reintentar»And al tocar «Reintentar» se vuelve a pedir y aparecen el título, la versión vigente y el texto.
    3. Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

      GREENbackend c9eb9b8
    4. v4.7 — iteracion-15: los documentos legales faltaban en producción

      BacklogBugIteración 15
      • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
    5. Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

      GREENfrontend 1fd8e20
    6. v3.3

      Backlog
      • Cambio v3.3 - Documentos legalesGiven que CUOTREKA no tenía términos ni aviso de privacidadWhen se agrega US-121 en v3.3Then los dos existen, versionados en el repositorio, y se leen sin cuenta.
  14. US-122 Aceptar los documentos al crear la cuenta

    Como persona que se registra quiero aceptar expresamente los términos y la política de privacidad, y que quede constancia de la versión que acepté.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Se aceptan al registrarseGiven el formulario de registroWhen marco «Leí y acepto» y creo la cuentaThen la cuenta guarda qué versión de cada documento acepté, cuándo, desde qué IP y con qué navegador.
    2. Caso alternativo - Sin aceptar no hay cuentaGiven el formulario de registroWhen intento crear la cuenta sin marcar la casillaThen se avisa 'Acepta los términos y la política de privacidad para crear tu cuenta'And no se crea.
    3. Caso de borde - Cambiaron mientras me registrabaGiven que se publicó una versión nueva mientras llenaba el formularioWhen envío el registro con la anteriorThen se rechaza pidiendo leerla de nuevo.
    4. Flujo principal - Se leen sin perder el formularioGiven los enlaces de la casillaWhen los tocoThen los documentos se abren en otra pestaña.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la aceptación de los documentos al crear la cuentaWhen el usuario lo abreThen ve un asterisco en Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Aceptación de los términos y la política de privacidad» sin cumplirlo ve «Acepta los términos y la política de privacidad para crear tu cuenta» junto al campo.
    4. Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

      GREENbackend c9eb9b8
    5. v4.7 — iteracion-15: los documentos legales faltaban en producción

      BacklogBugIteración 15
      • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
    6. v3.3

      Backlog
      • Cambio v3.3 - Aceptar al registrarseGiven que el registro no pedía aceptar nadaWhen se agrega US-122 en v3.3Then exige aceptar las versiones vigentes y guarda la constancia.

    Formulario

    • Obligatorios Aceptación de los términos y la política de privacidad
    • Mensaje Aceptación de los términos y la política de privacidad: «Acepta los términos y la política de privacidad para crear tu cuenta»
  15. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    Como cuenta que ya existía, o cuando los documentos se actualizan, quiero que se me pidan antes de seguir, para que todos estemos bajo la misma versión.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Cuentas de antesGiven una cuenta que nunca aceptó los documentosWhen entra a la aplicaciónThen un aviso «Antes de seguir» le pide leerlos y aceptarlos.
    2. Flujo principal - Cuando se actualizanGiven una cuenta que aceptó la versión anterior de los términosWhen se publica una nueva y entraThen el aviso «Actualizamos nuestros documentos» marca cuál cambió y la pide otra vez.
    3. Caso alternativo - No se puede saltarGiven el avisoWhen intento cerrarlo sin aceptarThen no se cierra; la única otra salida es cerrar sesión.
    4. Caso de borde - Al corriente, no estorbaGiven una cuenta que aceptó lo vigenteWhen entraThen no ve ningún aviso.
    5. Caso de borde - Cubre también el editor de planosGiven una cuenta pendiente de aceptarWhen abre el editor de planosThen el aviso aparece también ahí.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend f16eca4
    3. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Aceptar y continuar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    4. Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

      GREENbackend c9eb9b8
    5. v4.7 — iteracion-15: los documentos legales faltaban en producción

      BacklogBugIteración 15
      • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
    6. v3.3

      Backlog
      • Cambio v3.3 - Aceptar al entrarGiven que no había forma de pedir una versión nuevaWhen se agrega US-123 en v3.3Then cambiar la versión de un documento se la pide a todas las cuentas.

    Formulario

    • Obligatorios Aceptación de los términos y condiciones y la política de privacidad
  16. US-124 Cambiar mi correo confirmándolo con un código

    Como arquitecto quiero cambiar el correo de mi cuenta y confirmarlo con el código que le llega, sin quedarme fuera por un error de dedo.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - El código va al correo nuevoGiven mi perfilWhen escribo un correo nuevo y pido el códigoThen el código llega a ese correo y sigo entrando con el de siempre.
    2. Flujo principal - Con el código, cambiaGiven un correo nuevo pendienteWhen escribo su códigoThen la cuenta pasa a usarlo, queda verificado, y al correo de antes le llega un aviso del cambio.
    3. Flujo alternativo - Reenviar y cancelarGiven un correo nuevo pendienteWhen pido el código otra vez o cancelo el cambioThen llega un código nuevo (el anterior deja de servir) o todo queda como estaba.
    4. Caso alternativo - Un código equivocadoGiven un correo nuevo pendienteWhen escribo un código incorrectoThen no cambia nada y se explica.
    5. Caso de borde - Un correo imposibleGiven mi perfilWhen escribo un correo de otra cuenta, el mío o uno mal escritoThen se rechaza diciendo por qué.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. v5.6 — iteracion-28: el código del correo nuevo en seis casillas

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El código del correo nuevo en seis casillasGiven el usuario pidió cambiar su correo en Mi perfil › CuentaWhen escribe el código que llegó al correo nuevoThen lo escribe en seis casillas numéricasAnd «Confirmar correo» se habilita con los seis dígitos.
    3. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven el cambio de correoWhen el usuario toca «Enviar código», «Confirmar correo» o «Cancelar el cambio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    7. v5.2 — iteracion-23: el cambio de correo vive en la sección Cuenta

      BacklogCambioIteración 23
      • Cambio iteracion-23 - El código en CuentaGiven un cambio de correo en cursoWhen el usuario abre Cuenta (/profile/account)Then ahí confirma el código, lo reenvía o cancela el cambio, como antes.
    8. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el cambio de correoWhen el usuario lo abreThen ve un asterisco en Correo nuevo, Código de verificaciónAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo nuevo» sin cumplirlo ve «Escribe tu correo nuevo» junto al campo.
    9. v3.3

      Backlog
      • Cambio v3.3 - Correo con códigoGiven que el correo nuevo reemplazaba al de siempre de inmediatoWhen se agrega US-124 en v3.3Then espera su código.

    Formulario

    • Obligatorios Correo nuevo, Código de verificación
    • Mensaje Correo nuevo: «Escribe tu correo nuevo»
    • Mensaje Correo nuevo: «Escribe un correo válido»
  17. US-125 Cambiar mi contraseña desde el perfil

    Como arquitecto quiero cambiar mi contraseña sabiendo la actual, sin tener que recuperarla.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Con la actual y la nueva dos vecesGiven mi perfilWhen escribo mi contraseña actual y la nueva dos vecesThen queda cambiada y con la vieja ya no se entra.
    2. Caso alternativo - La actual equivocadaGiven mi perfilWhen escribo mal la contraseña actualThen se avisa 'La contraseña actual no es correcta' y no cambia.
    3. Caso de borde - Débil, repetida o que no coincideGiven la contraseña nuevaWhen tiene menos de 8 caracteres, es igual a la actual o no coincide con su repeticiónThen no se guarda y se explica.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    3. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    4. v5.2 — iteracion-23: la contraseña se cambia en la sección Cuenta

      BacklogCambioIteración 23
      • Cambio iteracion-23 - La contraseña en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then ahí cambia su contraseña, como antes.
    5. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el cambio de contraseñaWhen el usuario lo abreThen ve un asterisco en Contraseña actual, Contraseña nueva, Repite la contraseña nuevaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Contraseña actual» sin cumplirlo ve «Escribe tu contraseña actual» junto al campo.
    6. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Cambiar contraseña» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    7. Iteración 12 · Bug: TEC Configuración de seguridad de Django

      GREENbackend b83f39e
    8. v4.4 — iteracion-12: la contraseña no puede parecerse al correo

      BacklogBugIteración 12
      • Bug iteracion-12 - Contraseña parecida al correoGiven una persona que crea o cambia su contraseñaWhen se parece a su correoThen se rechaza explicando por qué.
    9. v3.3

      Backlog
      • Cambio v3.3 - Contraseña desde el perfilGiven que la contraseña sólo se cambiaba recuperándolaWhen se agrega US-125 en v3.3Then se cambia desde el perfil.

    Formulario

    • Obligatorios Contraseña actual, Contraseña nueva, Repite la contraseña nueva
    • Mensaje Contraseña actual: «Escribe tu contraseña actual»
    • Mensaje Contraseña nueva: «La contraseña debe tener al menos 8 caracteres»
    • Mensaje Repite la contraseña nueva: «No coincide con la contraseña nueva»
  18. US-126 Eliminar mi cuenta con todo lo suyo

    Como arquitecto quiero eliminar mi cuenta y que se borre todo —también los archivos— sin anonimizar nada.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Se borra todoGiven una cuenta con organización, logotipo, servicios, clientes, cotizaciones, proyectos, avances con fotos, pagos, personal, planos, texturas y modelosWhen la elimino con mi contraseñaThen no queda ninguna fila de la cuenta ni ningún archivo suyo en el almacenamiento, incluidos los que ninguna fila nombraba.
    2. Flujo principal - Al final del perfil, con confirmaciónGiven mi perfilWhen bajo hasta el finalThen encuentro «Eliminar cuenta»; eliminarla pide mi contraseña y marcar que entiendo que no se puede deshacer.
    3. Flujo principal - El navegador también la olvidaGiven que elimino la cuentaWhen terminaThen la sesión y las copias locales de esa cuenta se borran del navegador y llego al acceso con el aviso de que se eliminó.
    4. Caso alternativo - Contraseña equivocadaGiven el diálogo de eliminarWhen la contraseña no es la correctaThen no se borra nada y se explica.
    5. Caso de borde - Otras cuentas intactasGiven otra cuenta con sus datos y archivosWhen elimino la míaThen lo suyo sigue igual.
    6. Caso de borde - El correo queda libreGiven una cuenta eliminadaWhen alguien se registra con ese correoThen se puede, porque no quedó rastro.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. v5.6 — iteracion-28: «¿Eliminar tu cuenta?» como confirmación del sistema de diseño

      BacklogCambioIteración 28
      • Cambio iteracion-28 - La pregunta solo se cierra con Esc o «Cancelar»Given la pregunta «¿Eliminar tu cuenta?» abiertaWhen el usuario toca fuera de ellaThen la pregunta sigue abiertaAnd con Esc o «Cancelar» se cierra sin borrar nada y sin guardar la contraseña escrita.
    3. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la contraseña escrita y el aviso aceptadoWhen el usuario toca «Eliminar definitivamente» y la respuesta tardaThen el botón dice «Eliminando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    7. v5.2 — iteracion-23: eliminar la cuenta vive al final de Cuenta

      BacklogCambioIteración 23
      • Cambio iteracion-23 - Eliminar la cuenta en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then al final, lejos de lo diario, puede eliminar su cuenta, como antes.
    8. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la eliminación de la cuentaWhen el usuario lo abreThen ve un asterisco en Tu contraseña, Confirmación del avisoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Tu contraseña» sin cumplirlo ve «Escribe tu contraseña» junto al campo.
    9. Iteración 14 · Nueva: US-137 Trabajar en las empresas que me invitan

      GREENbackend 71c80e4
    10. v4.6 — iteracion-14: un colaborador elimina sólo su cuenta

      BacklogCambioIteración 14
      • Cambio iteracion-14 - Colaborador que se vaGiven un colaborador sin empresa propiaWhen elimina su cuentaThen se borran su cuenta y su acceso a las empresasAnd nada de lo que registró en ellas.
    11. v3.3

      Backlog
      • Cambio v3.3 - Eliminar la cuentaGiven que no había forma de eliminar una cuentaWhen se agrega US-126 en v3.3Then se elimina con todo lo suyo, archivos incluidos, sin anonimizar.

    Formulario

    • Obligatorios Tu contraseña, Confirmación del aviso
    • Mensaje Tu contraseña: «Escribe tu contraseña»
  19. US-142 Folios de documentos configurables por organización

    Como administrador de la empresa quiero elegir cómo se numeran mis cotizaciones, estados de proyecto y comprobantes —un folio autogenerado o mi propia clave con un consecutivo— para reconocer mis documentos de un vistazo sin que nunca se repita un folio en mi empresa.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Sin configurar, el folio es autogenerado como siempreGiven una empresa que no ha configurado sus foliosWhen crea una cotizaciónThen el documento lleva un folio aleatorio con la forma de siempre, como «COT-1A2B3C4D», asignado por el sistema al crearla.
    2. Flujo principal - Folio con clave y consecutivoGiven el administrador en Organización › Folios de documentosWhen elige «Con clave» para las cotizaciones, escribe la clave «obr» y guardaThen la clave queda como «OBR»And las siguientes cotizaciones salen «OBR-1», «OBR-2» y «OBR-3».
    3. Flujo principal - El siguiente folio se ve antes de guardarGiven la clave «VEN» ya llegó a «VEN-100»When el administrador escribe «VEN» para otro tipo de documentoThen la pantalla dice «Siguiente folio VEN-101» sin apartar ese número.
    4. Flujo principal - Cada empresa tiene su numeraciónGiven dos empresas que usan la clave «VEN»When cada una crea su primer documentoThen las dos tienen su «VEN-1»And dentro de una misma empresa ningún folio se repite, aunque dos tipos de documento usen la misma clave.
    5. Caso de borde - Una clave nunca vuelve a empezarGiven la clave «VEN» llegó a «VEN-100»When el administrador cambia a la clave «OBR» y después vuelve a «VEN»Then el siguiente documento con «VEN» es «VEN-101», nunca «VEN-1».
    6. Caso de borde - Cambiar la modalidad no toca lo ya creadoGiven cotizaciones ya creadas con folio aleatorioWhen el administrador cambia a «Con clave»Then las cotizaciones anteriores conservan su folio en pantalla, en el PDF, en el nombre del archivo y en las búsquedas.
    7. Caso de borde - Los documentos de antes conservan su folioGiven documentos emitidos antes de esta versiónWhen se actualiza la aplicaciónThen cada uno conserva el folio que su PDF ya imprimía («COT-», «PRO-», «REC-» o «PAG-» y los primeros ocho caracteres de su identificador).
    8. Caso de borde - Dos documentos al mismo tiempoGiven dos personas de la empresa que crean una cotización en el mismo instante con la clave «OBR»When el sistema les asigna folioThen cada una recibe un número distinto, sin saltos ni repeticiones.
    9. Caso alternativo - Clave inválidaGiven el formulario de foliosWhen el administrador escribe la clave «VENTAS» o «V-N»Then se muestra bajo el campo «La clave lleva de 1 a 5 letras o números, sin espacios ni símbolos.»And no se guarda nada.
    10. Caso alternativo - Un colaboradorGiven un colaborador de la empresaWhen abre Organización › Folios de documentosThen ve cómo se numera cada documentoAnd no puede cambiarlo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend 6236451
    3. v5.7 — iteracion-29: si los folios no llegan, lo dice y deja reintentar

      BacklogCambioIteración 29
      • Cambio iteracion-29 - Si los folios no llegan, lo dice y deja reintentarGiven el administrador abre «Folios de documentos»When el servidor no respondeThen en lugar de la carga ve «No se pudieron cargar los folios.» con el motivo del servidor y el botón «Reintentar»And al tocarlo los folios se vuelven a pedir y aparecen los tipos de documento.
    4. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    5. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven los folios de un tipo de documento con un cambioWhen el usuario toca «Guardar» y la respuesta tardaThen el botón dice «Guardando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se guarda dos veces.
    6. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    7. v5.3 — iteracion-25: folios de documentos

      BacklogNuevaIteración 25
      • Nueva iteracion-25 - Folios de documentosGiven el administrador en OrganizaciónWhen abre la sección «Folios de documentos» (/organization/folios)Then elige por tipo de documento «Autogenerado» o «Con clave» y ve el siguiente folio.

    Formulario

    • Obligatorios Clave (con «Con clave»)
    • Mensaje Clave: «La clave lleva de 1 a 5 letras o números, sin espacios ni símbolos.»

Últimos cambios

  1. US-01 Registrar una cuenta con correo y contraseña

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  2. US-01 Registrar una cuenta con correo y contraseña

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend fbb4816
  3. US-01 Registrar una cuenta con correo y contraseña

    Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

    GREENfrontend 4182563
  4. US-01 Registrar una cuenta con correo y contraseña

    v5.7 — iteracion-29: la fotografía de la marca al crear la cuenta

    BacklogCambioIteración 29
    • Cambio iteracion-29 - La fotografía de la marca al crear la cuentaGiven un visitante en «Crear cuenta»When la pantalla se abre en la computadoraThen junto al formulario ve la fotografía de la maqueta blanca con tezontle y obsidiana, completa y sin velo, con el logotipo, el lema y las ventajas en la banda de obsidiana de arriba y la firma abajoAnd en el teléfono y la tableta la misma fotografía queda detrás del formulario, velada con el fondo de la appAnd todo el texto de la pantalla se lee con contraste AA en claro y en oscuro.
  5. US-01 Registrar una cuenta con correo y contraseña

    v5.8 — iteracion-30: la fotografía, de fondo del panel al crear la cuenta

    BacklogBugIteración 30
    • Bug iteracion-30 - La fotografía es el fondo del panel al crear la cuentaGiven un visitante en «Crear cuenta»When la pantalla se abre en la computadoraThen la fotografía de la maqueta blanca con tezontle y obsidiana ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
  6. US-02 Verificar el correo con un código

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  7. US-02 Verificar el correo con un código

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend fbb4816
  8. US-02 Verificar el correo con un código

    Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

    GREENfrontend 4182563
  9. US-02 Verificar el correo con un código

    v5.6 — iteracion-28: el código en seis casillas

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El código de verificación en seis casillasGiven el usuario en «Verifica tu cuenta»When escribe el código que le llegó por correoThen lo escribe en seis casillas, una por dígito, que solo aceptan númerosAnd el teléfono le ofrece el teclado numérico y el código que acaba de llegarAnd un código de menos de seis dígitos sigue diciendo «Ingresa el código de 6 dígitos» al salir del campo.
  10. US-02 Verificar el correo con un código

    v5.7 — iteracion-29: verificar el código con la foto del registro

    BacklogCambioIteración 29
    • Cambio iteracion-29 - Verificar el código con la foto del registroGiven el usuario en «Verifica tu cuenta»When la pantalla se abreThen lleva la misma fotografía que el registro, la maqueta blanca con tezontle y obsidiana: junto al formulario en la computadora y velada detrás de él en el teléfono.
  11. US-02 Verificar el correo con un código

    v5.8 — iteracion-30: la fotografía, de fondo del panel al verificar el código

    BacklogBugIteración 30
    • Bug iteracion-30 - La fotografía es el fondo del panel al verificar el códigoGiven el usuario en «Verifica tu cuenta»When la pantalla se abre en la computadoraThen la fotografía del registro, la maqueta blanca con tezontle y obsidiana, ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
  12. US-03 Iniciar sesión con correo y contraseña

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  13. US-03 Iniciar sesión con correo y contraseña

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend fbb4816
  14. US-03 Iniciar sesión con correo y contraseña

    Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

    GREENfrontend 4182563
  15. US-03 Iniciar sesión con correo y contraseña

    v5.7 — iteracion-29: la fotografía de la marca al iniciar sesión

    BacklogCambioIteración 29
    • Cambio iteracion-29 - La fotografía de la marca al iniciar sesiónGiven el usuario en «Iniciar sesión»When la pantalla se abreThen ve el plano en papel con el cubo de concreto, los bloques de tezontle y cantera, el metro y el nivel: sin velo junto al formulario en la computadora y velado detrás del formulario en el teléfonoAnd el texto nunca va encima de la fotografíaAnd es la fotografía de cualquier pantalla sin sesión que no tenga la suya.
  16. US-03 Iniciar sesión con correo y contraseña

    v5.8 — iteracion-30: la fotografía, de fondo del panel al iniciar sesión

    BacklogBugIteración 30
    • Bug iteracion-30 - La fotografía es el fondo del panel al iniciar sesiónGiven el usuario en «Iniciar sesión»When la pantalla se abre en la computadoraThen la fotografía del plano con el cubo de concreto ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
  17. US-71 Poner el nombre y el color de mi organización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  18. US-71 Poner el nombre y el color de mi organización

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend c5e18a3
  19. US-71 Poner el nombre y el color de mi organización

    v5.6 — iteracion-28: si los datos de la organización no llegan, la pantalla lo dice y deja reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si los datos de la organización no llegan, la pantalla lo dice y deja reintentarGiven la persona abre OrganizaciónAnd el servidor no entrega los datos de su organizaciónWhen se pinta la pantallaThen dice «No se pudieron cargar los datos de la organización.» con el motivo del servidor y el botón «Reintentar»And al tocar «Reintentar» se vuelven a pedir y el membrete muestra lo guardado.
  20. US-71 Poner el nombre y el color de mi organización

    v5.7 — iteracion-29: el color personalizado con el campo del sistema de diseño

    BacklogCambioIteración 29
    • Cambio iteracion-29 - El color personalizado con el campo del sistema de diseñoGiven el administrador en «Datos de la organización»When elige un color propioThen lo elige con el selector de color del teléfono o de la computadora, en un campo con el borde, el foco y el estado deshabilitado de los demás camposAnd el color elegido aparece en «Hexadecimal».
  21. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  22. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend fbb4816
  23. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

    GREENfrontend 4182563
  24. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.6 — iteracion-28: el código de recuperación en seis casillas

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El código del segundo paso en seis casillasGiven el usuario en el segundo paso de «Recuperar contraseña»When escribe el código que le llegó por correoThen lo escribe en seis casillas numéricas, una por dígitoAnd después elige su nueva contraseña como antes.
  25. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.7 — iteracion-29: la llave en los dos pasos de recuperar la contraseña

    BacklogCambioIteración 29
    • Cambio iteracion-29 - La llave en los dos pasos de recuperar la contraseñaGiven el usuario en «Recuperar contraseña»When pide el código y después elige su contraseña nuevaThen en los dos pasos ve la fotografía de la maqueta con la llave y el llavero de piel tezontle, junto al formulario en la computadora y velada detrás de él en el teléfono.
  26. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.8 — iteracion-30: la fotografía, de fondo del panel al recuperar la contraseña

    BacklogBugIteración 30
    • Bug iteracion-30 - La fotografía es el fondo del panel al recuperar la contraseñaGiven el usuario en «Recuperar contraseña», en sus dos pasos,When la pantalla se abre en la computadoraThen la fotografía de la maqueta con la llave ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
  27. US-89 Que el código me llegue otra vez si no me llegó

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  28. US-90 Que entrar sin verificar me lleve a verificar

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  29. US-102 Poner mi logotipo en los documentos

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  30. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  31. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    v5.6 — iteracion-28: si la cuenta no llega, Cuenta lo dice en el correo de acceso y deja reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si la cuenta no llega, Cuenta lo dice en el correo de acceso y deja reintentarGiven la persona abre Cuenta en Mi perfilAnd el servidor no entrega su cuentaWhen se pinta la secciónThen el bloque «Correo de acceso» dice «No se pudo cargar tu cuenta.» con el motivo del servidor y el botón «Reintentar»And cambiar la contraseña y eliminar la cuenta siguen a la manoAnd al tocar «Reintentar» aparece el correo con su formulario para cambiarlo.
  32. US-105 Mandar mis documentos por correo desde la aplicación

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  33. US-118 Poner el teléfono y el correo de contacto de mi organización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  34. US-121 Leer los términos y la política de privacidad

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  35. US-121 Leer los términos y la política de privacidad

    v5.6 — iteracion-28: si el documento legal no llega, la página lo dice y deja reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si el documento legal no llega, la página lo dice y deja reintentarGiven alguien abre los términos o la política de privacidad, con o sin cuentaAnd el servidor no entrega el documentoWhen se pinta la páginaThen dice «No se pudo cargar el documento.» con el motivo del servidor y el botón «Reintentar»And al tocar «Reintentar» se vuelve a pedir y aparecen el título, la versión vigente y el texto.
  36. US-122 Aceptar los documentos al crear la cuenta

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  37. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  38. US-124 Cambiar mi correo confirmándolo con un código

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  39. US-124 Cambiar mi correo confirmándolo con un código

    v5.6 — iteracion-28: el código del correo nuevo en seis casillas

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El código del correo nuevo en seis casillasGiven el usuario pidió cambiar su correo en Mi perfil › CuentaWhen escribe el código que llegó al correo nuevoThen lo escribe en seis casillas numéricasAnd «Confirmar correo» se habilita con los seis dígitos.
  40. US-125 Cambiar mi contraseña desde el perfil

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  41. US-126 Eliminar mi cuenta con todo lo suyo

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  42. US-126 Eliminar mi cuenta con todo lo suyo

    v5.6 — iteracion-28: «¿Eliminar tu cuenta?» como confirmación del sistema de diseño

    BacklogCambioIteración 28
    • Cambio iteracion-28 - La pregunta solo se cierra con Esc o «Cancelar»Given la pregunta «¿Eliminar tu cuenta?» abiertaWhen el usuario toca fuera de ellaThen la pregunta sigue abiertaAnd con Esc o «Cancelar» se cierra sin borrar nada y sin guardar la contraseña escrita.
  43. US-142 Folios de documentos configurables por organización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  44. US-142 Folios de documentos configurables por organización

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend 6236451
  45. US-142 Folios de documentos configurables por organización

    v5.7 — iteracion-29: si los folios no llegan, lo dice y deja reintentar

    BacklogCambioIteración 29
    • Cambio iteracion-29 - Si los folios no llegan, lo dice y deja reintentarGiven el administrador abre «Folios de documentos»When el servidor no respondeThen en lugar de la carga ve «No se pudieron cargar los folios.» con el motivo del servidor y el botón «Reintentar»And al tocarlo los folios se vuelven a pedir y aparecen los tipos de documento.
  46. US-01 Registrar una cuenta con correo y contraseña

    v5.4 — iteracion-26: crear la cuenta deja la sesión abierta para verificar

    BacklogCambioIteración 26
    • Cambio iteracion-26 - La sesión nace sin verificarGiven un registro válidoWhen se crea la cuentaThen la sesión queda abierta en cookies seguras que ningún script de la página puede leerAnd la pantalla lleva a escribir el códigoAnd mientras el correo no se verifique la cuenta solo puede verificarlo, pedir el código otra vez, ver su cuenta o salir.
  47. US-02 Verificar el correo con un código

    v5.4 — iteracion-26: verificar el correo entra a la aplicación

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Verificar entra a la aplicaciónGiven una cuenta que acaba de registrarse o que entró sin verificarWhen escribe el código correctoThen entra directo a la aplicación sin volver a escribir su contraseña.
    • Cambio iteracion-26 - Una sesión sin verificar vuelve al códigoGiven una sesión cuyo correo no está verificadoWhen abre cualquier pantalla de la aplicación o una acción le responde que falta verificarThen la aplicación la lleva a escribir el código de su correo.
  48. US-71 Poner el nombre y el color de mi organización

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  49. US-71 Poner el nombre y el color de mi organización

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la organización con un cambio sin guardarWhen el usuario toca «Guardar organización» y la respuesta tardaThen el botón dice «Guardando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se guarda dos veces.
  50. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.4 — iteracion-26: el código no revela si la cuenta existe

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Un correo sin cuenta responde como un código equivocadoGiven un correo que no tiene cuentaWhen alguien escribe un código y una contraseña nuevaThen recibe el mismo mensaje que con un código incorrectoAnd no se revela si la cuenta existe.
  51. US-89 Que el código me llegue otra vez si no me llegó

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  52. US-89 Que el código me llegue otra vez si no me llegó

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la pantalla de verificaciónWhen el usuario toca «Reenviar código» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el código no se pide dos veces.
  53. US-89 Que el código me llegue otra vez si no me llegó

    v5.4 — iteracion-26: un minuto entre reenvíos y hasta cinco códigos por hora

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Espera y tope del reenvíoGiven que acabo de pedir el códigoWhen lo pido otra vez antes de un minuto, o ya pedí cinco en la última horaThen la pantalla dice cuántos segundos esperarAnd no sale otro correo.
  54. US-90 Que entrar sin verificar me lleve a verificar

    v5.4 — iteracion-26: después del código se entra a la aplicación

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Del código a la aplicaciónGiven que entré con una cuenta sin verificar y me llegó el códigoWhen lo escribo bienThen entro a la aplicación sin volver a la pantalla de acceso.
  55. US-102 Poner mi logotipo en los documentos

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  56. US-102 Poner mi logotipo en los documentos

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la pantalla de organizaciónWhen el usuario sube su logotipo o toca «Quitar» y la respuesta tardaThen el botón que tocó muestra el indicador de carga del sistema junto a su textoAnd los dos quedan deshabilitados hasta que termina.
  57. US-105 Mandar mis documentos por correo desde la aplicación

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  58. US-105 Mandar mis documentos por correo desde la aplicación

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven el correo de quien recibe el documentoWhen el usuario toca «Enviar» y armar el documento o la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el documento no se manda dos veces.
  59. US-105 Mandar mis documentos por correo desde la aplicación

    v5.4 — iteracion-26: documentos de hasta 4 MB por correo

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Tope de 4 MB del adjuntoGiven un documento que pesa más de 4 MBWhen lo mando por correoThen la aplicación avisa que el tope es de 4 MBAnd no se envía.
  60. US-124 Cambiar mi correo confirmándolo con un código

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  61. US-124 Cambiar mi correo confirmándolo con un código

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven el cambio de correoWhen el usuario toca «Enviar código», «Confirmar correo» o «Cancelar el cambio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  62. US-126 Eliminar mi cuenta con todo lo suyo

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  63. US-126 Eliminar mi cuenta con todo lo suyo

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la contraseña escrita y el aviso aceptadoWhen el usuario toca «Eliminar definitivamente» y la respuesta tardaThen el botón dice «Eliminando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se manda dos veces.
  64. US-142 Folios de documentos configurables por organización

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  65. US-142 Folios de documentos configurables por organización

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven los folios de un tipo de documento con un cambioWhen el usuario toca «Guardar» y la respuesta tardaThen el botón dice «Guardando…» con el indicador de carga del sistema y queda deshabilitadoAnd no se guarda dos veces.
  66. US-01 Registrar una cuenta con correo y contraseña

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  67. US-01 Registrar una cuenta con correo y contraseña

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el registroWhen el usuario lo abreThen ve un asterisco en Correo, Contraseña, Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
  68. US-01 Registrar una cuenta con correo y contraseña

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear cuenta» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  69. US-02 Verificar el correo con un código

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  70. US-02 Verificar el correo con un código

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la verificación de la cuentaWhen el usuario lo abreThen ve un asterisco en Código de verificaciónAnd la leyenda «Los campos con * son obligatorios»And si sale de «Código de verificación» sin cumplirlo ve «Ingresa el código de 6 dígitos» junto al campo.
  71. US-02 Verificar el correo con un código

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Verificar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  72. US-03 Iniciar sesión con correo y contraseña

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  73. US-03 Iniciar sesión con correo y contraseña

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el accesoWhen el usuario lo abreThen ve un asterisco en Correo, ContraseñaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
  74. US-03 Iniciar sesión con correo y contraseña

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Iniciar sesión» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  75. US-71 Poner el nombre y el color de mi organización

    Iteración 23 · Cambio: Organización con el layout de configuración: «Datos de la organización»

    GREENfrontend 8fd4d0f
  76. US-71 Poner el nombre y el color de mi organización

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  77. US-71 Poner el nombre y el color de mi organización

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  78. US-71 Poner el nombre y el color de mi organización

    v5.2 — iteracion-23: Organización con el estándar de configuración

    BacklogCambioIteración 23
    • Cambio iteracion-23 - Datos de la organizaciónGiven el usuario en Organización (/organization)When la abreThen ve el encabezado de configuración y la sección «Datos de la organización» con el nombre, el contacto, el color, el logotipo y la vista previa del membrete, como antesAnd sin navegación de secciones, porque es la única.
  79. US-71 Poner el nombre y el color de mi organización

    v5.3 — iteracion-25: Organización con Folios de documentos

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Dos secciones en OrganizaciónGiven el usuario en OrganizaciónWhen la abreThen ve la navegación de secciones con «Datos de la organización» (/organization) y «Folios de documentos» (/organization/folios), la activa marcada.
  80. US-71 Poner el nombre y el color de mi organización

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven OrganizaciónWhen el usuario llega con el teclado a cada color de la organizaciónThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  81. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  82. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la recuperación de la contraseñaWhen el usuario lo abreThen ve un asterisco en Correo, Código de verificación, Nueva contraseñaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo» sin cumplirlo ve «Escribe tu correo» junto al campo.
  83. US-82 Volver a entrar cuando olvidé mi contraseña

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Cambiar contraseña» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  84. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  85. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    v5.2 — iteracion-23: el correo se cambia en la sección Cuenta

    BacklogCambioIteración 23
    • Cambio iteracion-23 - El correo en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then ahí cambia su correo de acceso, como antes.
  86. US-105 Mandar mis documentos por correo desde la aplicación

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  87. US-105 Mandar mis documentos por correo desde la aplicación

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  88. US-105 Mandar mis documentos por correo desde la aplicación

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el envío de un documento por correoWhen el usuario lo abreThen ve un asterisco en Correo de quien lo recibeAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo de quien lo recibe» sin cumplirlo ve «Escribe el correo de quien lo recibe» junto al campo.
  89. US-105 Mandar mis documentos por correo desde la aplicación

    v5.3 — iteracion-25: el correo cita el folio del sistema

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El correo lleva el folio del documentoGiven un documento con folio «OBR-7»When se manda por correoThen el cuerpo del correo dice «Folio OBR-7»And el adjunto lleva ese folio en su nombre.
  90. US-118 Poner el teléfono y el correo de contacto de mi organización

    Iteración 23 · Cambio: Organización con el layout de configuración: «Datos de la organización»

    GREENfrontend 8fd4d0f
  91. US-118 Poner el teléfono y el correo de contacto de mi organización

    v5.2 — iteracion-23: el contacto vive en Datos de la organización

    BacklogCambioIteración 23
    • Cambio iteracion-23 - El contacto en Datos de la organizaciónGiven el usuario en OrganizaciónWhen abre «Datos de la organización»Then ahí pone el teléfono y el correo de contacto, como antes.
  92. US-122 Aceptar los documentos al crear la cuenta

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  93. US-122 Aceptar los documentos al crear la cuenta

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la aceptación de los documentos al crear la cuentaWhen el usuario lo abreThen ve un asterisco en Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Aceptación de los términos y la política de privacidad» sin cumplirlo ve «Acepta los términos y la política de privacidad para crear tu cuenta» junto al campo.
  94. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend f16eca4
  95. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Aceptar y continuar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  96. US-124 Cambiar mi correo confirmándolo con un código

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  97. US-124 Cambiar mi correo confirmándolo con un código

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  98. US-124 Cambiar mi correo confirmándolo con un código

    v5.2 — iteracion-23: el cambio de correo vive en la sección Cuenta

    BacklogCambioIteración 23
    • Cambio iteracion-23 - El código en CuentaGiven un cambio de correo en cursoWhen el usuario abre Cuenta (/profile/account)Then ahí confirma el código, lo reenvía o cancela el cambio, como antes.
  99. US-124 Cambiar mi correo confirmándolo con un código

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el cambio de correoWhen el usuario lo abreThen ve un asterisco en Correo nuevo, Código de verificaciónAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correo nuevo» sin cumplirlo ve «Escribe tu correo nuevo» junto al campo.
  100. US-125 Cambiar mi contraseña desde el perfil

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  101. US-125 Cambiar mi contraseña desde el perfil

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  102. US-125 Cambiar mi contraseña desde el perfil

    v5.2 — iteracion-23: la contraseña se cambia en la sección Cuenta

    BacklogCambioIteración 23
    • Cambio iteracion-23 - La contraseña en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then ahí cambia su contraseña, como antes.
  103. US-125 Cambiar mi contraseña desde el perfil

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el cambio de contraseñaWhen el usuario lo abreThen ve un asterisco en Contraseña actual, Contraseña nueva, Repite la contraseña nuevaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Contraseña actual» sin cumplirlo ve «Escribe tu contraseña actual» junto al campo.
  104. US-125 Cambiar mi contraseña desde el perfil

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Cambiar contraseña» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  105. US-126 Eliminar mi cuenta con todo lo suyo

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  106. US-126 Eliminar mi cuenta con todo lo suyo

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  107. US-126 Eliminar mi cuenta con todo lo suyo

    v5.2 — iteracion-23: eliminar la cuenta vive al final de Cuenta

    BacklogCambioIteración 23
    • Cambio iteracion-23 - Eliminar la cuenta en CuentaGiven el usuario en Mi perfilWhen abre Cuenta (/profile/account)Then al final, lejos de lo diario, puede eliminar su cuenta, como antes.
  108. US-126 Eliminar mi cuenta con todo lo suyo

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la eliminación de la cuentaWhen el usuario lo abreThen ve un asterisco en Tu contraseña, Confirmación del avisoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Tu contraseña» sin cumplirlo ve «Escribe tu contraseña» junto al campo.
  109. US-142 Folios de documentos configurables por organización

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  110. US-142 Folios de documentos configurables por organización

    v5.3 — iteracion-25: folios de documentos

    BacklogNuevaIteración 25
    • Nueva iteracion-25 - Folios de documentosGiven el administrador en OrganizaciónWhen abre la sección «Folios de documentos» (/organization/folios)Then elige por tipo de documento «Autogenerado» o «Con clave» y ve el siguiente folio.
  111. US-71 Poner el nombre y el color de mi organización

    Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

    GREENbackend 502e2e7
  112. US-71 Poner el nombre y el color de mi organización

    v4.6 — iteracion-14: el nombre y el color los cambia sólo el administrador

    BacklogCambioIteración 14
    • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
  113. US-102 Poner mi logotipo en los documentos

    Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

    GREENbackend 502e2e7
  114. US-102 Poner mi logotipo en los documentos

    v4.6 — iteracion-14: el logotipo lo cambia sólo el administrador

    BacklogCambioIteración 14
    • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
  115. US-118 Poner el teléfono y el correo de contacto de mi organización

    Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

    GREENbackend 502e2e7
  116. US-118 Poner el teléfono y el correo de contacto de mi organización

    v4.6 — iteracion-14: el contacto de la organización lo cambia sólo el administrador

    BacklogCambioIteración 14
    • Cambio iteracion-14 - Sólo el administradorGiven un colaborador de la empresaWhen abre la configuración de la organizaciónThen la veAnd no puede cambiarla.
  117. US-121 Leer los términos y la política de privacidad

    Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

    GREENbackend c9eb9b8
  118. US-121 Leer los términos y la política de privacidad

    v4.7 — iteracion-15: los documentos legales faltaban en producción

    BacklogBugIteración 15
    • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
  119. US-122 Aceptar los documentos al crear la cuenta

    Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

    GREENbackend c9eb9b8
  120. US-122 Aceptar los documentos al crear la cuenta

    v4.7 — iteracion-15: los documentos legales faltaban en producción

    BacklogBugIteración 15
    • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
  121. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    Iteración 15 · Bug: US-121 Leer los términos y la política de privacidad · US-122 · US-123 (documentos legales en el paquete de producción)

    GREENbackend c9eb9b8
  122. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    v4.7 — iteracion-15: los documentos legales faltaban en producción

    BacklogBugIteración 15
    • Bug iteracion-15 - Los documentos se cargan en producciónGiven la aplicación publicadaWhen alguien abre el registro, los términos o su cuentaThen se cargan los términos y la política de privacidad vigentesAnd se puede registrar y aceptarlos.
  123. US-126 Eliminar mi cuenta con todo lo suyo

    Iteración 14 · Nueva: US-137 Trabajar en las empresas que me invitan

    GREENbackend 71c80e4
  124. US-126 Eliminar mi cuenta con todo lo suyo

    v4.6 — iteracion-14: un colaborador elimina sólo su cuenta

    BacklogCambioIteración 14
    • Cambio iteracion-14 - Colaborador que se vaGiven un colaborador sin empresa propiaWhen elimina su cuentaThen se borran su cuenta y su acceso a las empresasAnd nada de lo que registró en ellas.
  125. US-01 Registrar una cuenta con correo y contraseña

    Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

    GREENbackend 6e7cc23
  126. US-01 Registrar una cuenta con correo y contraseña

    Iteración 12 · Bug: TEC Configuración de seguridad de Django

    GREENbackend b83f39e
  127. US-02 Verificar el correo con un código

    Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

    GREENbackend b1071c7
  128. US-02 Verificar el correo con un código

    v4.4 — iteracion-12: el código se anula tras varios errores

    BacklogBugIteración 12
    • Bug iteracion-12 - Cinco errores anulan el códigoGiven un código de verificación vigenteWhen se escribe mal 5 vecesThen el código deja de servir y hay que pedir otro.
    • Bug iteracion-12 - Demasiados intentos piden esperarGiven muchos intentos seguidos de entrar o verificarWhen se pasa del límiteThen se pide esperar antes de volver a intentar.
  129. US-03 Iniciar sesión con correo y contraseña

    Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

    GREENbackend 23c6d4d
  130. US-03 Iniciar sesión con correo y contraseña

    Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

    GREENbackend b1071c7
  131. US-03 Iniciar sesión con correo y contraseña

    v4.4 — iteracion-12: la sesión no se guarda en el dispositivo

    BacklogBugIteración 12
    • Bug iteracion-12 - La sesión no queda a la vista de otros programasGiven una persona que entra a CUOTREKAWhen se guarda su sesiónThen ningún programa de la página ni una extensión del navegador puede leerla.
    • Bug iteracion-12 - La sesión se renueva sola y dura una semanaGiven una sesión abiertaWhen pasa media hora sin renovarseThen se renueva sola mientras la persona sigue usando la aplicaciónAnd a los 7 días sin entrar pide volver a iniciar sesión.
  132. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

    GREENbackend b1071c7
  133. US-82 Volver a entrar cuando olvidé mi contraseña

    Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

    GREENbackend 6e7cc23
  134. US-89 Que el código me llegue otra vez si no me llegó

    Iteración 12 · Bug: US-02 Límites de intentos, código anulado y código universal cerrado

    GREENbackend b1071c7
  135. US-90 Que entrar sin verificar me lleve a verificar

    Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

    GREENbackend 23c6d4d
  136. US-102 Poner mi logotipo en los documentos

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  137. US-105 Mandar mis documentos por correo desde la aplicación

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  138. US-105 Mandar mis documentos por correo desde la aplicación

    v4.4 — iteracion-12: sólo se envían documentos PDF

    BacklogBugIteración 12
    • Bug iteracion-12 - Adjunto que no es PDFGiven el envío de un documento por correoWhen el archivo adjunto no es un PDFThen no se envía.
  139. US-118 Poner el teléfono y el correo de contacto de mi organización

    Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

    GREENbackend 57daef9
  140. US-118 Poner el teléfono y el correo de contacto de mi organización

    v4.5 — iteracion-13: el teléfono de la organización se valida

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
    • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
  141. US-121 Leer los términos y la política de privacidad

    Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

    GREENfrontend 1fd8e20
  142. US-125 Cambiar mi contraseña desde el perfil

    Iteración 12 · Bug: TEC Configuración de seguridad de Django

    GREENbackend b83f39e
  143. US-125 Cambiar mi contraseña desde el perfil

    v4.4 — iteracion-12: la contraseña no puede parecerse al correo

    BacklogBugIteración 12
    • Bug iteracion-12 - Contraseña parecida al correoGiven una persona que crea o cambia su contraseñaWhen se parece a su correoThen se rechaza explicando por qué.
  144. US-107 Que nadie entre con un correo sin confirmar

    Registrada como existente (adopción)

    GREEN
  145. US-01 Registrar una cuenta con correo y contraseña

    v1.0

    Backlog
    • Cambio v1.0 - Alta de registro de cuenta y suscripciónGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-01 de registro de cuenta con teléfono, contraseña y creación de suscripción.
  146. US-01 Registrar una cuenta con correo y contraseña

    v3.2

    Backlog
    • Cambio v3.2 - Sólo correoGiven que la cuenta se creaba con teléfono o con correoWhen se revisa US-01 en v3.2Then se crea sólo con correo, porque es el único canal por el que se puede mandar el código.
  147. US-02 Verificar el correo con un código

    v1.0

    Backlog
    • Cambio v1.0 - Alta de verificación por OTPGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-02 de verificación del teléfono por OTP con código universal del MVP.
  148. US-02 Verificar el correo con un código

    v3.2

    Backlog
    • Cambio v3.2 - El código verifica el correoGiven que el código verificaba el teléfonoWhen se revisa US-02 en v3.2Then verifica el correo, que es por donde llega.
  149. US-03 Iniciar sesión con correo y contraseña

    v1.0

    Backlog
    • Cambio v1.0 - Alta de inicio de sesiónGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-03 de inicio de sesión con teléfono y contraseña.
  150. US-03 Iniciar sesión con correo y contraseña

    v1.1

    Backlog
    • Cambio v1.1 - Sesión persistente y renovación de accesoGiven sesiones que se cerraban por expiración del tokenWhen se refina US-03 en v1.1Then la sesión persiste entre recargas y el acceso se renueva automáticamente (token de refresco) para no cerrar sesiones activas.
  151. US-03 Iniciar sesión con correo y contraseña

    v3.2

    Backlog
    • Cambio v3.2 - Se entra con correoGiven que se entraba con teléfono o correoWhen se revisa US-03 en v3.2Then se entra sólo con correo.
  152. US-71 Poner el nombre y el color de mi organización

    v2.14

    Backlog
    • Cambio v2.14 - Nace la organizaciónGiven que los documentos salían firmados por CUOTREKA y un teléfonoWhen se agrega US-71 en v2.14Then cada cuenta firma con el nombre y el color de su despacho.
  153. US-71 Poner el nombre y el color de mi organización

    v3.2

    Backlog
    • Cambio v3.2 - Contacto de la organizaciónGiven que la organización guardaba nombre, color y logotipoWhen se revisa US-71 en v3.2Then guarda también el teléfono y el correo de contacto.
  154. US-82 Volver a entrar cuando olvidé mi contraseña

    v2.18

    Backlog
    • Cambio v2.18 - Deja de ser una puerta sin llaveGiven que no existía ni pantalla ni endpoint y quien olvidaba su contraseña quedaba fuera para siempreWhen se agrega US-82 en v2.18Then hay una forma de volver a entrar.
  155. US-82 Volver a entrar cuando olvidé mi contraseña

    v3.2

    Backlog
    • Cambio v3.2 - Se recupera con el correoGiven que se recuperaba con el teléfonoWhen se revisa US-82 en v3.2Then se recupera con el correo, que es por donde llega el código.
  156. US-89 Que el código me llegue otra vez si no me llegó

    v2.21

    Backlog
    • Cambio v2.21 - El alta ya no se queda a mediasGiven que crear la cuenta dejaba un aviso con un botón y que un código que no llegaba no se podía volver a pedirWhen se agrega US-89 en v2.21Then el registro lleva solo a verificar y hay reenvío con espera entre intentos.
  157. US-89 Que el código me llegue otra vez si no me llegó

    v3.2

    Backlog
    • Cambio v3.2 - El código va al correoGiven que el reenvío hablaba del teléfonoWhen se revisa US-89 en v3.2Then habla del correo, el único canal.
  158. US-90 Que entrar sin verificar me lleve a verificar

    v2.22

    Backlog
    • Cambio v2.22 - El acceso deja de ser un callejónGiven que entrar sin verificar sólo devolvía un error rojo sin nada que hacer desde ahíWhen se agrega US-90 en v2.22Then el acceso manda el código y lleva a escribirlo.
  159. US-90 Que entrar sin verificar me lleve a verificar

    v3.6

    Backlog
    • Cambio v3.6 - Texto alineado con el sistemaGiven que la historia hablaba de verificar el teléfonoWhen se revisa US-90 en v3.6Then habla del correo, que es la única forma de entrar desde v3.2.
  160. US-102 Poner mi logotipo en los documentos

    v2.29

    Backlog
    • Cambio v2.29 - El membrete lleva marcaGiven que el membrete era un nombre y un colorWhen se agrega US-102 en v2.29Then también lleva el logotipo del despacho.
  161. US-102 Poner mi logotipo en los documentos

    v3.0

    Backlog
    • Cambio v3.0 - El logotipo llega al documentoGiven que el logotipo se bajaba del almacenamiento —otro dominio, que no autoriza la descarga— y la banda quedaba sin marcaWhen se corrige en v3.0Then la propia aplicación lo entrega en bytes y el documento lo lleva.
  162. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    v2.30

    Backlog
    • Cambio v2.30 - La identidad deja de ser sólo el teléfonoGiven que la cuenta se identificaba únicamente por su teléfonoWhen se agrega US-104 en v2.30Then se identifica por teléfono, por correo, o por ambos.
  163. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    v3.2

    Backlog
    • Cambio v3.2 - Sólo correoGiven que la cuenta se identificaba por teléfono, por correo o por ambosWhen se revisa US-104 en v3.2Then se identifica sólo por su correo: no había cómo mandar un código a un teléfono, y el teléfono de los documentos pasa a ser el de la organización.
  164. US-104 Entrar con mi correo y cambiarlo desde mi perfil

    v3.3

    Backlog
    • Cambio v3.3 - El correo nuevo espera su códigoGiven que el correo nuevo reemplazaba al de siempre al guardarloWhen se revisa US-104 en v3.3Then espera su código antes de reemplazarlo.
  165. US-105 Mandar mis documentos por correo desde la aplicación

    v2.30

    Backlog
    • Cambio v2.30 - La aplicación aprende a mandar correoGiven que los documentos sólo se descargaban o se compartían por el teléfonoWhen se agrega US-105 en v2.30Then se pueden entregar por correo desde la propia aplicación.
  166. US-105 Mandar mis documentos por correo desde la aplicación

    v3.0

    Backlog
    • Cambio v3.0 - El correo sale de la casaGiven que el cliente de correo se presentaba sin nombre y la protección del proveedor cortaba la peticiónWhen se corrige en v3.0Then se presenta con el suyo y el correo sale.
  167. US-107 Que nadie entre con un correo sin confirmar

    v3.0

    Backlog
    • Cambio v3.0 - Entrar exige el canal que existe de verdadGiven que bastaba con el teléfono verificadoWhen se agrega US-107 en v3.0Then una cuenta con correo lo confirma antes de entrar.
  168. US-107 Que nadie entre con un correo sin confirmar

    v3.6

    Backlog
    • Cambio v3.6 - Texto alineado con el sistemaGiven dos escenarios sobre cuentas con teléfonoWhen se revisa US-107 en v3.6Then se retira el de la cuenta con sólo teléfono, que ya no existe, y el otro se reescribe sobre el correo.
  169. US-118 Poner el teléfono y el correo de contacto de mi organización

    v3.2

    Backlog
    • Cambio v3.2 - Contacto de la organizaciónGiven que los documentos imprimían el teléfono de la cuentaWhen se agrega US-118 en v3.2Then imprimen el contacto de la organización, y nada si no lo tiene.
  170. US-121 Leer los términos y la política de privacidad

    v3.3

    Backlog
    • Cambio v3.3 - Documentos legalesGiven que CUOTREKA no tenía términos ni aviso de privacidadWhen se agrega US-121 en v3.3Then los dos existen, versionados en el repositorio, y se leen sin cuenta.
  171. US-122 Aceptar los documentos al crear la cuenta

    v3.3

    Backlog
    • Cambio v3.3 - Aceptar al registrarseGiven que el registro no pedía aceptar nadaWhen se agrega US-122 en v3.3Then exige aceptar las versiones vigentes y guarda la constancia.
  172. US-123 Aceptar los documentos al entrar cuando faltan o cambian

    v3.3

    Backlog
    • Cambio v3.3 - Aceptar al entrarGiven que no había forma de pedir una versión nuevaWhen se agrega US-123 en v3.3Then cambiar la versión de un documento se la pide a todas las cuentas.
  173. US-124 Cambiar mi correo confirmándolo con un código

    v3.3

    Backlog
    • Cambio v3.3 - Correo con códigoGiven que el correo nuevo reemplazaba al de siempre de inmediatoWhen se agrega US-124 en v3.3Then espera su código.
  174. US-125 Cambiar mi contraseña desde el perfil

    v3.3

    Backlog
    • Cambio v3.3 - Contraseña desde el perfilGiven que la contraseña sólo se cambiaba recuperándolaWhen se agrega US-125 en v3.3Then se cambia desde el perfil.
  175. US-126 Eliminar mi cuenta con todo lo suyo

    v3.3

    Backlog
    • Cambio v3.3 - Eliminar la cuentaGiven que no había forma de eliminar una cuentaWhen se agrega US-126 en v3.3Then se elimina con todo lo suyo, archivos incluidos, sin anonimizar.
EPIC-02

Catálogo de servicios

100%5 de 5 en GREEN

5 historias · aún sin integrar en develop

Detalles

Mantener, por cada cuenta, su catálogo de productos/servicios con tipo de unidad y precio, base de cálculo de sus cotizaciones.

  • GREEN 5
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
12 · 17 · 25 · 28
Último cambio
2026-11-01

Historias

  1. US-04 Registrar un servicio

    Como usuario autenticado quiero registrar un servicio con su tipo de unidad y precio para usarlo al cotizar.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Alta de servicio válidoGiven el usuario autenticado en su catálogo de serviciosWhen registra el servicio 'Muro de tablaroca' con tipo de unidad 'metro cuadrado' y precio 350Then el servicio queda guardado en el catálogo de su cuentaAnd aparece listado con su unidad y su precio 350.
    2. Caso alternativo - Precio no válidoGiven el usuario autenticado registrando un servicioWhen ingresa un precio de 0Then el sistema muestra 'El precio debe ser mayor a 0'And no guarda el servicio.
    3. Caso de borde - Nombre vacíoGiven el usuario autenticado registrando un servicioWhen deja el nombre en blancoThen el sistema muestra 'El nombre es obligatorio'And no guarda el servicio.
    4. Refinamiento v1.1 - Descripción opcional del servicioGiven el usuario autenticado registrando un servicioWhen agrega una descripción 'Incluye material y mano de obra'Then el servicio se guarda con su descripciónAnd si omite la descripción el servicio también se guarda correctamente porque es opcional.
    5. Flujo principal - Consultar va antes que dar de altaGiven el catálogoWhen el usuario abre la pantallaThen lo primero que ve es su catálogo, y el alta de un servicio se abre desde el botón del encabezado.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de un servicioWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar servicio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. v1.0

      Backlog
      • Cambio v1.0 - Alta de registro de tarifasGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-04 de registro de tarifas por cuenta.
    6. v1.1

      Backlog
      • Cambio v1.1 - Descripción opcional en tarifasGiven la necesidad de detallar tarifasWhen se refina US-04 en v1.1Then la tarifa admite una descripción opcional.
    7. v2.16

      Backlog
      • Cambio v2.16 - La lista sube, el formulario se guardaGiven que el formulario de alta ocupaba la mitad superior de la pantalla y empujaba la lista hacia abajoWhen se amplía esta historia en v2.16Then la lista va primero y el alta vive en un diálogo.

    Formulario

    • Obligatorios Nombre, Tipo de unidad, Precio por unidad
    • Catálogo Tipo de unidad de Unidades (cerrado: lista fija)
    • Mensaje Nombre: «El nombre es obligatorio»
    • Mensaje Precio por unidad: «El precio es obligatorio»
    • Mensaje Precio por unidad: «El precio debe ser mayor a 0»
  2. US-05 Editar un servicio

    Como usuario autenticado quiero editar el precio o los datos de un servicio para mantener mi catálogo actualizado sin alterar cotizaciones ya emitidas.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Actualizar precio de un servicioGiven el servicio 'Muro de tablaroca' con precio 350 en la cuenta del usuarioWhen el usuario cambia su precio a 400 y guardaThen el servicio muestra el precio 400And las nuevas cotizaciones usan el precio 400.
    2. Caso alternativo - Precio no numéricoGiven el usuario editando el servicio 'Muro de tablaroca'When cambia el precio a un valor no numéricoThen el sistema muestra 'El precio debe ser un número mayor a 0'And conserva el precio anterior 350.
    3. Caso de borde - No afecta cotizaciones ya creadasGiven el servicio 'Muro de tablaroca' usado en una cotización existente a 350When el usuario cambia su precio a 400Then la cotización existente conserva el precio 350 con el que fue cotizadaAnd solo las nuevas cotizaciones usan 400.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c0a3352
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de un servicioWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. v1.0

      Backlog
      • Cambio v1.0 - Alta de edición de tarifasGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-05 de edición de tarifas con conservación de precios históricos.

    Formulario

    • Obligatorios Nombre, Tipo de unidad, Precio por unidad
    • Catálogo Tipo de unidad de Unidades (cerrado: lista fija)
    • Mensaje Nombre: «El nombre es obligatorio»
    • Mensaje Precio por unidad: «El precio es obligatorio»
    • Mensaje Precio por unidad: «El precio debe ser mayor a 0»
  3. US-06 Consultar el catálogo de servicios

    Como usuario autenticado quiero consultar mis servicios para elegirlos al cotizar, viendo solo los de mi cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Listar servicios de la cuentaGiven el usuario autenticado con varios servicios en su cuentaWhen abre su catálogoThen ve la lista de sus servicios con nombre, tipo de unidad y precio.
    2. Caso alternativo - Aislamiento entre cuentasGiven otra cuenta que tiene registrado el servicio 'Piso porcelanato'When el usuario autenticado abre su propio catálogoThen no ve el servicio 'Piso porcelanato' porque pertenece a otra cuentaAnd solo ve los servicios de su cuenta.
    3. Caso de borde - Catálogo vacíoGiven el usuario autenticado sin servicios registradosWhen abre su catálogoThen el sistema muestra 'Aún no hay servicios registrados'.
    4. Refinamiento v1.1 - Mostrar la descripción del servicioGiven un servicio con descripción registradaWhen el usuario abre su catálogoThen ve la descripción del servicio junto a su nombre, unidad y precio.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c0a3352
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    3. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Servicio» o «Precio»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Servicio» (de la A a la Z) ya se ve ordenada.
    4. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 9359f15
    5. v4.9 — iteracion-17: el catálogo de servicios se pide por páginas y se borra en lote

      BacklogCambioIteración 17
      • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 45 serviciosWhen el usuario abre ServiciosThen recibe solo los primeros 20, en orden alfabético, y el contador dice «1–20 de 45»And al pasar a la página 3 ve los servicios 41 a 45 sin haber descargado los demás.
      • Cambio iteracion-17 - Buscar en todo el catálogoGiven 45 servicios, de los que dos dicen «porcelanato» en el nombre o la descripciónWhen el usuario escribe «porce» en BuscarThen la lista se actualiza una sola vez al dejar de escribirAnd muestra los dos, estén en la página que estén.
      • Cambio iteracion-17 - Varios tipos de unidadWhen el usuario filtra Tipo de unidad por «Metro cuadrado» y «Metro lineal»Then ve los servicios de cualquiera de los dos y el total combinado, desde la página 1.
      • Cambio iteracion-17 - El orden es de todo el catálogoWhen el usuario ordena por precio de mayor a menorThen el primer servicio es el más caro de los 45, no solo de la página.
      • Cambio iteracion-17 - Borrar variosGiven el usuario selecciona 3 servicios que no están en ninguna cotizaciónWhen elige «Borrar»Then ve «¿Borrar 3 servicios?»And al confirmar se borran y ve «3 servicios borrados».
      • Cambio iteracion-17 - Borrar varios con falla parcialGiven el usuario selecciona 5 servicios y 2 están en una cotizaciónWhen los borra y confirmaThen se borran 3And ve «3 de 5 borrados. 2 no se pudieron: está en una cotización».
      • Cambio iteracion-17 - Seleccionar todos los resultadosGiven el filtro «Metro cuadrado» tiene 30 servicios y el usuario selecciona los 20 de la páginaWhen elige «Seleccionar los 30 resultados» y los borraThen se borran también los de la página 2 que no están en una cotización.
    6. Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

      GREENbackend 073df9f
    7. v4.4 — iteracion-12: cada recurso prueba que no se alcanza lo ajeno

      BacklogBugIteración 12
      • Bug iteracion-12 - Detalle, edición y borrado ajenosGiven un servicio, una persona del personal o un archivo de otra cuentaWhen alguien intenta verlo, cambiarlo o borrarloThen el sistema responde como si no existiera.
    8. v1.0

      Backlog
      • Cambio v1.0 - Alta de consulta del catálogo con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-06 de consulta del catálogo aislado por cuenta.
    9. v1.1

      Backlog
      • Cambio v1.1 - Descripción visible en el catálogoGiven la descripción opcional de tarifasWhen se refina US-06 en v1.1Then el catálogo muestra la descripción cuando existe.

    Lista

    • Página 20 registros por página
    • Busca en Nombre, Descripción
    • Filtros Tipo de unidad (varios valores: Metro cuadrado, Metro lineal, Piso/Muro, Por lote (único))
    • Orden Nombre (A-Z) · también por Nombre, Precio
    • Acciones de fila Editar, Borrar
    • En lote Borrar (por registro, pide confirmación)
  4. US-110 Borrar un servicio que no está en ninguna cotización

    Como arquitecto quiero borrar un servicio que ya no ofrezco para que mi catálogo no se llene de lo que nunca cotizo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Servicio que nunca se cotizóGiven un servicio que no está en ninguna cotizaciónWhen lo borro y confirmoThen desaparece del catálogoAnd de lo que hace cada quien del personal.
    2. Caso alternativo - El servicio está en cotizacionesGiven un servicio que está en 2 cotizacionesWhen intento borrarloThen la aplicación me dice 'está en 2 cotizaciones'And el servicio se queda.
    3. Caso de borde - Lo sé antes de intentarloGiven la lista de serviciosWhen un servicio está en cotizacionesThen su botón de borrar se ve atenuado y al tocarlo explica por qué.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.1

      Backlog
      • Cambio v3.1 - Borrar serviciosGiven que un servicio no se podía borrarWhen se agrega US-110 en v3.1Then se borra el que nunca se cotizó.
  5. US-117 Cobrar un servicio por lote

    Como arquitecto quiero que la unidad de un servicio que se cobra de una vez se llame «Por lote (único)» para que el cliente no lea «unidad» y piense en piezas.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - La unidad se llama por loteGiven el formulario de un servicioWhen abro las unidadesThen la opción que antes decía «Unidad» dice «Por lote (único)».
    2. Flujo principal - Así sale en la cotizaciónGiven una cotización con un servicio por loteWhen genero su documentoThen la columna «Unidad» dice «Por lote (único)».
    3. Caso de borde - Los servicios ya creados no cambianGiven servicios creados antes con la unidad «Unidad»When abro el catálogoThen se leen como «Por lote (único)» sin volver a guardarlos.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.2

      Backlog
      • Cambio v3.2 - Por loteGiven que la unidad se llamaba «Unidad»When se agrega US-117 en v3.2Then se llama «Por lote (único)».

Últimos cambios

  1. US-04 Registrar un servicio

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-05 Editar un servicio

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c0a3352
  3. US-06 Consultar el catálogo de servicios

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c0a3352
  4. US-04 Registrar un servicio

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  5. US-04 Registrar un servicio

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de un servicioWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
  6. US-04 Registrar un servicio

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar servicio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  7. US-05 Editar un servicio

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  8. US-05 Editar un servicio

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de un servicioWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
  9. US-05 Editar un servicio

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  10. US-06 Consultar el catálogo de servicios

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  11. US-06 Consultar el catálogo de servicios

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Servicio» o «Precio»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Servicio» (de la A a la Z) ya se ve ordenada.
  12. US-06 Consultar el catálogo de servicios

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 9359f15
  13. US-06 Consultar el catálogo de servicios

    v4.9 — iteracion-17: el catálogo de servicios se pide por páginas y se borra en lote

    BacklogCambioIteración 17
    • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 45 serviciosWhen el usuario abre ServiciosThen recibe solo los primeros 20, en orden alfabético, y el contador dice «1–20 de 45»And al pasar a la página 3 ve los servicios 41 a 45 sin haber descargado los demás.
    • Cambio iteracion-17 - Buscar en todo el catálogoGiven 45 servicios, de los que dos dicen «porcelanato» en el nombre o la descripciónWhen el usuario escribe «porce» en BuscarThen la lista se actualiza una sola vez al dejar de escribirAnd muestra los dos, estén en la página que estén.
    • Cambio iteracion-17 - Varios tipos de unidadWhen el usuario filtra Tipo de unidad por «Metro cuadrado» y «Metro lineal»Then ve los servicios de cualquiera de los dos y el total combinado, desde la página 1.
    • Cambio iteracion-17 - El orden es de todo el catálogoWhen el usuario ordena por precio de mayor a menorThen el primer servicio es el más caro de los 45, no solo de la página.
    • Cambio iteracion-17 - Borrar variosGiven el usuario selecciona 3 servicios que no están en ninguna cotizaciónWhen elige «Borrar»Then ve «¿Borrar 3 servicios?»And al confirmar se borran y ve «3 servicios borrados».
    • Cambio iteracion-17 - Borrar varios con falla parcialGiven el usuario selecciona 5 servicios y 2 están en una cotizaciónWhen los borra y confirmaThen se borran 3And ve «3 de 5 borrados. 2 no se pudieron: está en una cotización».
    • Cambio iteracion-17 - Seleccionar todos los resultadosGiven el filtro «Metro cuadrado» tiene 30 servicios y el usuario selecciona los 20 de la páginaWhen elige «Seleccionar los 30 resultados» y los borraThen se borran también los de la página 2 que no están en una cotización.
  14. US-06 Consultar el catálogo de servicios

    Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

    GREENbackend 073df9f
  15. US-06 Consultar el catálogo de servicios

    v4.4 — iteracion-12: cada recurso prueba que no se alcanza lo ajeno

    BacklogBugIteración 12
    • Bug iteracion-12 - Detalle, edición y borrado ajenosGiven un servicio, una persona del personal o un archivo de otra cuentaWhen alguien intenta verlo, cambiarlo o borrarloThen el sistema responde como si no existiera.
  16. US-110 Borrar un servicio que no está en ninguna cotización

    Registrada como existente (adopción)

    GREEN
  17. US-117 Cobrar un servicio por lote

    Registrada como existente (adopción)

    GREEN
  18. US-04 Registrar un servicio

    v1.0

    Backlog
    • Cambio v1.0 - Alta de registro de tarifasGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-04 de registro de tarifas por cuenta.
  19. US-04 Registrar un servicio

    v1.1

    Backlog
    • Cambio v1.1 - Descripción opcional en tarifasGiven la necesidad de detallar tarifasWhen se refina US-04 en v1.1Then la tarifa admite una descripción opcional.
  20. US-04 Registrar un servicio

    v2.16

    Backlog
    • Cambio v2.16 - La lista sube, el formulario se guardaGiven que el formulario de alta ocupaba la mitad superior de la pantalla y empujaba la lista hacia abajoWhen se amplía esta historia en v2.16Then la lista va primero y el alta vive en un diálogo.
  21. US-05 Editar un servicio

    v1.0

    Backlog
    • Cambio v1.0 - Alta de edición de tarifasGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-05 de edición de tarifas con conservación de precios históricos.
  22. US-06 Consultar el catálogo de servicios

    v1.0

    Backlog
    • Cambio v1.0 - Alta de consulta del catálogo con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-06 de consulta del catálogo aislado por cuenta.
  23. US-06 Consultar el catálogo de servicios

    v1.1

    Backlog
    • Cambio v1.1 - Descripción visible en el catálogoGiven la descripción opcional de tarifasWhen se refina US-06 en v1.1Then el catálogo muestra la descripción cuando existe.
  24. US-110 Borrar un servicio que no está en ninguna cotización

    v3.1

    Backlog
    • Cambio v3.1 - Borrar serviciosGiven que un servicio no se podía borrarWhen se agrega US-110 en v3.1Then se borra el que nunca se cotizó.
  25. US-117 Cobrar un servicio por lote

    v3.2

    Backlog
    • Cambio v3.2 - Por loteGiven que la unidad se llamaba «Unidad»When se agrega US-117 en v3.2Then se llama «Por lote (único)».
EPIC-03

Gestión de clientes

100%4 de 4 en GREEN

4 historias · aún sin integrar en develop

Detalles

Registrar y mantener, por cada cuenta, sus clientes para asociarlos a cotizaciones y proyectos.

  • GREEN 4
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
13 · 17 · 25 · 26 · 28
Último cambio
2026-11-01

Historias

  1. US-07 Registrar un cliente

    Como usuario autenticado quiero registrar un cliente con sus datos de contacto para poder cotizarle.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Alta de cliente válidoGiven el usuario autenticado en su sección de clientesWhen registra el cliente 'Constructora Reyes' con teléfono '555-1234'Then el cliente queda guardado en su cuentaAnd aparece en su lista de clientes.
    2. Caso alternativo - Correo con formato inválidoGiven el usuario autenticado registrando un clienteWhen ingresa el correo 'correo-invalido' sin formato válidoThen el sistema muestra 'El correo no tiene un formato válido'And no guarda el cliente.
    3. Caso de borde - Nombre vacíoGiven el usuario autenticado registrando un clienteWhen deja el nombre en blancoThen el sistema muestra 'El nombre del cliente es obligatorio'And no guarda el cliente.
    4. Flujo principal - Consultar va antes que dar de altaGiven la lista de clientesWhen el usuario abre la pantallaThen lo primero que ve son sus clientes, y el alta se abre desde el botón del encabezado.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de un clienteWhen el usuario lo abreThen ve un asterisco en NombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre del cliente es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar cliente» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

      GREENbackend 57daef9
    6. v4.5 — iteracion-13: el teléfono del cliente se valida

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
      • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
    7. v1.0

      Backlog
      • Cambio v1.0 - Alta de registro de clientesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-07 de registro de clientes por cuenta.
    8. v2.16

      Backlog
      • Cambio v2.16 - La lista sube, el formulario se guardaGiven que el formulario de alta ocupaba la mitad superior de la pantalla y empujaba la lista hacia abajoWhen se amplía esta historia en v2.16Then la lista va primero y el alta vive en un diálogo.

    Formulario

    • Obligatorios Nombre
    • Mensaje Nombre: «El nombre del cliente es obligatorio»
    • Mensaje Correo: «El correo no tiene un formato válido»
  2. US-08 Editar un cliente

    Como usuario autenticado quiero editar los datos de un cliente para mantener su información al día.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Actualizar datos del clienteGiven el cliente 'Constructora Reyes' con teléfono '555-1234' en la cuenta del usuarioWhen el usuario cambia el teléfono a '555-9999' y guardaThen el cliente muestra el teléfono '555-9999'.
    2. Caso alternativo - Nombre borrado al editarGiven el usuario editando el cliente 'Constructora Reyes'When borra el nombre y guardaThen el sistema muestra 'El nombre del cliente es obligatorio'And conserva los datos anteriores.
    3. Caso de borde - No altera cotizaciones asociadasGiven el cliente 'Constructora Reyes' con una cotización asociadaWhen el usuario actualiza su teléfonoThen el cambio se refleja en el clienteAnd las cotizaciones asociadas permanecen sin cambios.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 9d8779d
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de un clienteWhen el usuario lo abreThen ve un asterisco en NombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre del cliente es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

      GREENbackend 57daef9
    6. v4.5 — iteracion-13: el teléfono del cliente se valida al editarlo

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
      • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
    7. v1.0

      Backlog
      • Cambio v1.0 - Alta de edición de clientesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-08 de edición de clientes.

    Formulario

    • Obligatorios Nombre
    • Mensaje Nombre: «El nombre del cliente es obligatorio»
    • Mensaje Correo: «El correo no tiene un formato válido»
  3. US-09 Consultar la lista de clientes

    Como usuario autenticado quiero consultar y buscar mis clientes para seleccionarlos al cotizar, viendo solo los de mi cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Listar clientes de la cuentaGiven el usuario autenticado con varios clientes en su cuentaWhen abre su lista de clientesThen ve cada cliente con su nombre y datos de contacto.
    2. Caso alternativo - Aislamiento entre cuentasGiven otra cuenta que tiene registrado al cliente 'Obras del Sur'When el usuario autenticado abre su propia lista de clientesThen no ve al cliente 'Obras del Sur' porque pertenece a otra cuentaAnd solo ve sus propios clientes.
    3. Caso de borde - Sin clientes registradosGiven el usuario autenticado sin clientes registradosWhen abre su lista de clientesThen el sistema muestra 'Aún no hay clientes registrados'.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c0a3352
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend 9d8e786
    3. v5.4 — iteracion-26: la tabla de clientes se ordena por fecha de alta

      BacklogCambioIteración 26
      • Cambio iteracion-26 - La fecha de alta en la tablaGiven la lista de clientes en la tabla, desde 900 pxWhen el usuario la miraThen cada cliente dice en la columna «Alta» el día en que se dio de alta, como «10 sep 2026».
      • Cambio iteracion-26 - Los más recientes desde el encabezadoGiven la tabla de clientesWhen el usuario toca el encabezado «Alta»Then la lista se ordena de los más antiguos a los más recientes, al tocarlo otra vez de los más recientes a los más antiguos y luego vuelve al orden de siempre (nombre de la A a la Z)And el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-26 - En el teléfono, «Más reciente» sigue en «Ordenar por»Given la lista de clientes en el teléfonoWhen el usuario abre «Filtros y orden» y elige «Más reciente» en «Ordenar por»Then ve primero los clientes dados de alta más recientementeAnd la fila no repite la fecha.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    5. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Cliente» (de la A a la Z) ya se ve ordenada.
    6. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 6d6a64d
    7. v4.9 — iteracion-17: los clientes se piden por páginas y se borran en lote

      BacklogCambioIteración 17
      • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 60 clientesWhen el usuario abre ClientesThen recibe solo los primeros 20, en orden alfabético, y el contador dice «1–20 de 60».
      • Cambio iteracion-17 - Buscar por nombre, teléfono o correoWhen el usuario escribe «5512» en BuscarThen ve solo los clientes cuyo nombre, teléfono o correo contiene «5512», de los 60.
      • Cambio iteracion-17 - Filtrar por contactoWhen el usuario elige «Sin contacto»Then ve solo los clientes sin teléfono ni correo y el contador dice cuántos son de los 60.
      • Cambio iteracion-17 - Borrar varios con falla parcialGiven el usuario selecciona 4 clientes y uno está en una cotizaciónWhen elige «Borrar» y confirma «¿Borrar 4 clientes?»Then se borran 3And ve «3 de 4 borrados. 1 no se pudo: está en una cotización».
    8. v1.0

      Backlog
      • Cambio v1.0 - Alta de consulta de clientes con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-09 de consulta de clientes aislada por cuenta.

    Lista

    • Página 20 registros por página
    • Busca en Nombre, Teléfono, Correo
    • Filtros Contacto (un valor: Con contacto, Sin contacto)
    • Orden Nombre (A-Z) · también por Nombre, Alta
    • Acciones de fila Editar, Borrar
    • En lote Borrar (por registro, pide confirmación)
  4. US-109 Borrar un cliente que no está en ninguna cotización

    Como arquitecto quiero borrar un cliente que capturé por error para que mi lista tenga sólo a quien de verdad le cotizo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Cliente sin cotizacionesGiven un cliente que no está en ninguna cotizaciónWhen lo borro y confirmoThen desaparece de mis clientes.
    2. Caso alternativo - El cliente está en cotizacionesGiven un cliente que está en 3 cotizacionesWhen intento borrarloThen la aplicación me dice 'está en 3 cotizaciones'And el cliente se queda.
    3. Caso de borde - Otra cuentaGiven un cliente de otra cuentaWhen intento borrarloThen no lo encuentro.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.1

      Backlog
      • Cambio v3.1 - Borrar clientesGiven que un cliente no se podía borrarWhen se agrega US-109 en v3.1Then se borra el que nunca se cotizó.

Últimos cambios

  1. US-07 Registrar un cliente

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-08 Editar un cliente

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 9d8779d
  3. US-09 Consultar la lista de clientes

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c0a3352
  4. US-09 Consultar la lista de clientes

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend 9d8e786
  5. US-09 Consultar la lista de clientes

    v5.4 — iteracion-26: la tabla de clientes se ordena por fecha de alta

    BacklogCambioIteración 26
    • Cambio iteracion-26 - La fecha de alta en la tablaGiven la lista de clientes en la tabla, desde 900 pxWhen el usuario la miraThen cada cliente dice en la columna «Alta» el día en que se dio de alta, como «10 sep 2026».
    • Cambio iteracion-26 - Los más recientes desde el encabezadoGiven la tabla de clientesWhen el usuario toca el encabezado «Alta»Then la lista se ordena de los más antiguos a los más recientes, al tocarlo otra vez de los más recientes a los más antiguos y luego vuelve al orden de siempre (nombre de la A a la Z)And el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-26 - En el teléfono, «Más reciente» sigue en «Ordenar por»Given la lista de clientes en el teléfonoWhen el usuario abre «Filtros y orden» y elige «Más reciente» en «Ordenar por»Then ve primero los clientes dados de alta más recientementeAnd la fila no repite la fecha.
  6. US-07 Registrar un cliente

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  7. US-07 Registrar un cliente

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de un clienteWhen el usuario lo abreThen ve un asterisco en NombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre del cliente es obligatorio» junto al campo.
  8. US-07 Registrar un cliente

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar cliente» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  9. US-08 Editar un cliente

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  10. US-08 Editar un cliente

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de un clienteWhen el usuario lo abreThen ve un asterisco en NombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre del cliente es obligatorio» junto al campo.
  11. US-08 Editar un cliente

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  12. US-09 Consultar la lista de clientes

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  13. US-09 Consultar la lista de clientes

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Cliente» (de la A a la Z) ya se ve ordenada.
  14. US-09 Consultar la lista de clientes

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 6d6a64d
  15. US-09 Consultar la lista de clientes

    v4.9 — iteracion-17: los clientes se piden por páginas y se borran en lote

    BacklogCambioIteración 17
    • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 60 clientesWhen el usuario abre ClientesThen recibe solo los primeros 20, en orden alfabético, y el contador dice «1–20 de 60».
    • Cambio iteracion-17 - Buscar por nombre, teléfono o correoWhen el usuario escribe «5512» en BuscarThen ve solo los clientes cuyo nombre, teléfono o correo contiene «5512», de los 60.
    • Cambio iteracion-17 - Filtrar por contactoWhen el usuario elige «Sin contacto»Then ve solo los clientes sin teléfono ni correo y el contador dice cuántos son de los 60.
    • Cambio iteracion-17 - Borrar varios con falla parcialGiven el usuario selecciona 4 clientes y uno está en una cotizaciónWhen elige «Borrar» y confirma «¿Borrar 4 clientes?»Then se borran 3And ve «3 de 4 borrados. 1 no se pudo: está en una cotización».
  16. US-07 Registrar un cliente

    Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

    GREENbackend 57daef9
  17. US-07 Registrar un cliente

    v4.5 — iteracion-13: el teléfono del cliente se valida

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
    • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
  18. US-08 Editar un cliente

    Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

    GREENbackend 57daef9
  19. US-08 Editar un cliente

    v4.5 — iteracion-13: el teléfono del cliente se valida al editarlo

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
    • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
  20. US-109 Borrar un cliente que no está en ninguna cotización

    Registrada como existente (adopción)

    GREEN
  21. US-07 Registrar un cliente

    v1.0

    Backlog
    • Cambio v1.0 - Alta de registro de clientesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-07 de registro de clientes por cuenta.
  22. US-07 Registrar un cliente

    v2.16

    Backlog
    • Cambio v2.16 - La lista sube, el formulario se guardaGiven que el formulario de alta ocupaba la mitad superior de la pantalla y empujaba la lista hacia abajoWhen se amplía esta historia en v2.16Then la lista va primero y el alta vive en un diálogo.
  23. US-08 Editar un cliente

    v1.0

    Backlog
    • Cambio v1.0 - Alta de edición de clientesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-08 de edición de clientes.
  24. US-09 Consultar la lista de clientes

    v1.0

    Backlog
    • Cambio v1.0 - Alta de consulta de clientes con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-09 de consulta de clientes aislada por cuenta.
  25. US-109 Borrar un cliente que no está en ninguna cotización

    v3.1

    Backlog
    • Cambio v3.1 - Borrar clientesGiven que un cliente no se podía borrarWhen se agrega US-109 en v3.1Then se borra el que nunca se cotizó.
EPIC-04

Cotizaciones

100%18 de 18 en GREEN

18 historias · aún sin integrar en develop

Detalles

Armar cotizaciones para un cliente sumando servicios del catálogo con total automático, y generar su documento. Cada cotización pertenece a la cuenta que la crea.

  • GREEN 18
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
17 · 25 · 26 · 27 · 28
Último cambio
2026-11-01

Historias

  1. US-10 Crear una cotización con total automático

    Como usuario autenticado quiero crear una cotización para un cliente agregando servicios del catálogo para obtener el total automáticamente.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Total calculado a partir de los serviciosGiven el usuario autenticado crea una cotización para 'Constructora Reyes'When agrega el servicio 'Muro de tablaroca' (precio 350) con cantidad 10 y el servicio 'Zócalo' (precio 80) con cantidad 20Then el sistema calcula los subtotales 3500 y 1600And muestra el total de la cotización 5100.
    2. Caso alternativo - Cotización sin serviciosGiven el usuario autenticado creando una cotizaciónWhen intenta guardarla sin agregar ningún servicioThen el sistema muestra 'Agrega al menos un servicio a la cotización'And no crea la cotización.
    3. Caso de borde - Cantidad no válida en un servicioGiven un servicio agregado a la cotizaciónWhen el usuario ingresa una cantidad de 0 para ese servicioThen el sistema muestra 'La cantidad debe ser mayor a 0'And no suma ese servicio al total.
    4. Refinamiento v1.1 - Alta rápida de cliente desde la cotizaciónGiven el usuario armando una cotización y el cliente aún no existeWhen usa 'Nuevo cliente' para crearlo sin salir del armadoThen el cliente se creaAnd queda seleccionado como cliente de la cotización.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la cotización armada con su cliente y sus serviciosWhen el usuario toca «Crear cotización» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    5. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el armado de la cotizaciónWhen el usuario lo abreThen ve un asterisco en Cliente, Servicio de cada partida, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cliente» sin cumplirlo ve «Elige el cliente de la cotización» junto al campo.
    6. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 9359f15
    7. v4.9 — iteracion-17: el cliente y los servicios se buscan al cotizar

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Buscar el clienteGiven una cuenta con 200 clientesWhen el usuario escribe «gar» en Cliente al cotizarThen ve los clientes de su cuenta que contienen «gar», de los 200,And elige uno.
      • Cambio iteracion-17 - Buscar el servicio de una partidaWhen el usuario escribe «piso» en el servicio de una partidaThen ve los servicios de su catálogo que contienen «piso»And al elegir uno se llenan su unidad y su precio.
    8. v1.0

      Backlog
      • Cambio v1.0 - Alta de creación de cotizacionesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-10 de creación de cotizaciones con total automático.
    9. v1.1

      Backlog
      • Cambio v1.1 - Alta rápida de cliente en el armadoGiven la fricción de salir a crear un clienteWhen se refina US-10 en v1.1Then se permite crear un cliente desde el armado de la cotización y seleccionarlo automáticamente.

    Formulario

    • Obligatorios Cliente, Servicio de cada partida, Precio por unidad, Cantidad
    • Catálogo Cliente de Clientes (abierto: se busca al escribir)
    • Catálogo Servicio de cada partida de Servicios (abierto: se busca al escribir)
    • Mensaje Cliente: «Elige el cliente de la cotización»
    • Mensaje Servicio de cada partida: «Elige un servicio»
    • Mensaje Precio por unidad: «El precio debe ser mayor a 0»
    • Mensaje Cantidad: «La cantidad debe ser mayor a 0»
  2. US-11 Editar una cotización en borrador

    Como usuario autenticado quiero editar una cotización antes de generar su documento para corregir cantidades o servicios.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Recalcular total al cambiar una cantidadGiven una cotización en borrador con total 5100 y el servicio 'Muro de tablaroca' (precio 350) en cantidad 10When el usuario cambia esa cantidad a 12Then el subtotal del servicio pasa a 4200And el total de la cotización se recalcula a 5800.
    2. Caso alternativo - Cotización con documento ya generadoGiven una cotización cuyo documento ya fue generadoWhen el usuario intenta editar sus serviciosThen el sistema impide la edición y muestra 'La cotización ya tiene documento generado; crea una nueva versión para modificarla'.
    3. Caso de borde - Eliminar un servicio recalcula el totalGiven una cotización en borrador con dos servicios y total 5100When el usuario elimina el servicio 'Zócalo' (subtotal 1600)Then el total se recalcula a 3500 considerando solo los servicios restantes.
    4. Flujo alterno - Se edita hasta que empieza la obraGiven una cotización que ya se envió al clienteWhen el usuario necesita corregirlaThen puede hacerlo tantas veces como haga falta, y solo deja de poder editarse cuando se convierte en proyecto y hay avances midiéndose contra ella.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven una cotización en borrador abierta en el armadorWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    5. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de la cotización en borradorWhen el usuario lo abreThen ve un asterisco en Cliente, Servicio de cada partida, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cliente» sin cumplirlo ve «Elige el cliente de la cotización» junto al campo.
    6. v1.0

      Backlog
      • Cambio v1.0 - Alta de edición de cotizacionesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-11 de edición de cotizaciones en borrador.
    7. v2.12

      Backlog
      • Cambio v2.12 - El límite es el proyecto, no el documentoGiven que una cotización dejaba de editarse al generar su documentoWhen se amplía US-11 en v2.12Then el límite pasa a ser el proyecto en marcha.

    Formulario

    • Obligatorios Cliente, Servicio de cada partida, Precio por unidad, Cantidad
    • Catálogo Cliente de Clientes (abierto: se busca al escribir)
    • Catálogo Servicio de cada partida de Servicios (abierto: se busca al escribir)
    • Mensaje Cliente: «Elige el cliente de la cotización»
    • Mensaje Servicio de cada partida: «Elige un servicio»
    • Mensaje Precio por unidad: «El precio debe ser mayor a 0»
    • Mensaje Cantidad: «La cantidad debe ser mayor a 0»
  3. US-12 Consultar y compartir el documento de la cotización

    Como usuario autenticado quiero ver y compartir el documento de una cotización en cualquier momento, sin generarlo, para poder enviárselo al cliente en cuanto la termino.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - El documento existe desde el primer momentoGiven una cotización recién creadaWhen el usuario abre su detalleThen puede ver y compartir su documento sin ningún paso previo.
    2. Flujo principal - Editar rehace el documentoGiven una cotización con su documento ya enviadoWhen el usuario corrige una partidaThen el documento pasa a reflejar la corrección, porque se construye a partir de la cotización cada vez que se pide.
    3. Flujo principal - El documento lleva el detalle y el totalGiven una cotización con partidasWhen el usuario abre su documentoThen ve una nota de venta con el cliente, el detalle de servicios, cantidades, precios y el total.
    4. Caso de borde - El estado no habla del documentoGiven una cotización con documento ya compartidoWhen el usuario mira su estadoThen sigue siendo «Borrador», porque el estado dice en qué punto está el trato y no si se ha impreso un papel.
    5. Flujo principal - El documento se titula cotizaciónGiven el documento de una cotizaciónWhen el cliente lo abreThen su título es «COTIZACIÓN» y en ninguna parte se llama nota de venta.
    6. Flujo principal - Avisa que no es un acuerdoGiven el documento de una cotizaciónWhen el cliente lee su cierreThen se le advierte que es informativo: que no representa un acuerdo ni un contrato, que no obliga a ninguna de las partes y que los precios no están garantizados.
    7. Flujo principal - El documento se desglosa por habitaciónGiven una cotización hecha desde un plano con habitacionesWhen el usuario abre su documentoThen después del resumen global y su total aparece «Desglose por habitación», con cada habitación en orden alfabético, sus conceptos con su unidad, cantidad, precio e importe, y el subtotal de la habitación.
    8. Flujo principal - Un mismo concepto en varias habitacionesGiven el muro de block medido 12 m² en el «Cuarto A» y 8 m² en el «Cuarto B»When el usuario abre el documentoThen el resumen global lleva una sola partida de 20 m²And el desglose la lleva en cada cuarto con su cantidad y su importe.
    9. Flujo principal - Los subtotales suman el totalGiven el documento con su desgloseWhen se suman los subtotales de las habitacionesThen dan exactamente el total de la cotización, al centavo, aunque el precio por unidad lleve más de dos decimales.
    10. Caso alternativo - Lo que no es de ninguna habitaciónGiven una partida agregada a mano, o la parte de una partida del plano que no cae en ninguna habitaciónWhen el usuario abre el documentoThen va en el grupo «Sin habitación», al final del desglose.
    11. Caso alternativo - Sin habitaciones, sólo el resumenGiven una cotización sin ningún dato de habitaciónWhen el usuario abre su documentoThen lleva sólo el resumen global, como siempre.
    12. Caso de borde - Corregir a mano no inventa habitacionesGiven una partida del plano repartida entre habitacionesWhen el usuario corrige otra cosa de la cotizaciónThen el reparto se conservaAnd si le sube la cantidad, lo agregado va a «Sin habitación»And si se la baja, la partida completa pasa a «Sin habitación».
    13. Caso de borde - Un desglose largoGiven un desglose que no cabe en una hojaWhen se genera el documentoThen pasa a la hoja siguiente con el encabezado de la tabla, sin pisar el pie, su título nunca se queda solo al final de una hoja, y la vigencia y el aviso siguen al pie de la última hoja.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. Iteración 27 · Cambio: Mejora de cumplimiento

      GREENfrontend a682b8b
    3. v5.5 — iteracion-27: «Ver documento» dice que está trabajando

      BacklogCambioIteración 27
      • Cambio iteracion-27 - Armando el documentoGiven el detalle de una cotizaciónWhen el usuario toca «Ver documento» y el documento tarda en armarseThen ese botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd «Compartir» espera deshabilitado, sin indicadorAnd al abrirse el documento los dos vuelven a estar disponibles; lo mismo al tocar «Compartir».
    4. Iteración 25 · Nueva: US-12 PDF de cotización con desglose por habitación: el resumen global y, debajo, cada habitación con sus conceptos y su subtotal

      GREENbackend 830de0d
    5. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    6. v5.3 — iteracion-25: el documento desglosado por habitación

      BacklogNuevaIteración 25
      • Nueva iteracion-25 - Desglose por habitaciónGiven que hasta v5.2 el documento sólo llevaba el resumen global, una partida por servicio con todo lo que mide el planoWhen se agrega el desglose en iteracion-25Then después del resumen va cada habitación con sus conceptos y su subtotal, lo que no es de ninguna va en «Sin habitación», y los subtotales suman el total.
    7. v5.3 — iteracion-25: el documento de la cotización imprime su folio

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio de la cotización lo asigna el sistemaGiven una cotización con folio «OBR-7»When se consulta o comparte su documentoThen el PDF dice «Folio: OBR-7» y el archivo se llama «OBR-7.pdf».
    8. v1.0

      Backlog
      • Cambio v1.0 - Alta de documento de cotizaciónGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-12 de generación del documento de cotización.
    9. v1.1

      Backlog
      • Cambio v1.1 - Documento PDF nota de venta con validez y compartirGiven la necesidad de entregar el documento al clienteWhen se refina US-12 en v1.1Then el documento es un PDF tipo nota de venta con nota de validez de 20 días y opciones de visualizar y compartir.
    10. v2.12

      Backlog
      • Cambio v2.12 - Generar el documento deja de ser un pasoGiven que «Generar documento» era un botón que no generaba nada —el PDF se construye a partir de la cotización cada vez que se abre— y que además bloqueaba la ediciónWhen se corrige US-12 en v2.12Then el documento se consulta y se comparte siempre, y «documento generado» desaparece como estado.
    11. v2.14

      Backlog
      • Cambio v2.14 - Deja de ser una nota de ventaGiven que el papel se titulaba «NOTA DE VENTA», que es el nombre de una venta cerradaWhen se amplía US-12 en v2.14Then se titula «COTIZACIÓN» y dice expresamente que no obliga a nada.
  4. US-13 Consultar cotizaciones

    Como usuario autenticado quiero consultar y filtrar mis cotizaciones para dar seguimiento a su estado, viendo solo las de mi cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Listar cotizaciones con su estadoGiven el usuario autenticado con varias cotizaciones creadasWhen abre su lista de cotizacionesThen ve cada una con su cliente, su total y su estado (borrador, documento generado o en proyecto).
    2. Caso alternativo - Aislamiento entre cuentasGiven otra cuenta que tiene cotizaciones creadasWhen el usuario autenticado abre su propia lista de cotizacionesThen no ve las cotizaciones de la otra cuentaAnd solo ve las de su cuenta.
    3. Caso de borde - Sin cotizacionesGiven el usuario autenticado sin cotizaciones creadasWhen abre su lista de cotizacionesThen el sistema muestra 'Aún no hay cotizaciones'.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    3. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente», «Fecha» o «Total»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Fecha» (lo más reciente primero) ya se ve ordenada.
    4. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 78082f1
    5. v4.9 — iteracion-17: las cotizaciones se piden por páginas

      BacklogCambioIteración 17
      • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 50 cotizacionesWhen el usuario abre CotizacionesThen recibe las 20 más recientes y el contador dice «1–20 de 50», sin descargar las partidas de las demás.
      • Cambio iteracion-17 - Varios estados a la vezWhen el usuario filtra Estado por «Borrador» y «En proyecto»Then ve las de cualquiera de los dos estados y el total combinado.
      • Cambio iteracion-17 - Mayor importe de todasWhen el usuario ordena por importe de mayor a menorThen la primera cotización es la de mayor importe de las 50.
      • Cambio iteracion-17 - Sin acciones en loteGiven la lista de cotizacionesWhen el usuario la miraThen no hay casillas de selección, porque la única acción de cada fila abre su plano y borrar se hace desde la cotización (US-111).
    6. v1.0

      Backlog
      • Cambio v1.0 - Alta de consulta de cotizaciones con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-13 de consulta de cotizaciones aislada por cuenta.

    Lista

    • Página 20 registros por página
    • Busca en Cliente
    • Filtros Estado (varios valores: Borrador, En proyecto)
    • Orden Más reciente · también por Fecha, Importe, Cliente
    • Acciones de fila Ver plano
  5. US-22 Crear un servicio desde la cotización (única o al catálogo)

    Como usuario autenticado quiero crear un servicio mientras armo una cotización y decidir si se guarda en mi catálogo o es solo para esta cotización, para agilizar sin ensuciar mi catálogo.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Servicio único de la cotizaciónGiven el usuario armando una cotizaciónWhen crea el servicio 'Detalle especial' con precio 500 y NO marca 'Agregar al catálogo'Then el servicio se usa en esta cotizaciónAnd no aparece en el catálogo de servicios.
    2. Flujo alterno - Servicio agregado al catálogoGiven el usuario armando una cotizaciónWhen crea el servicio 'Piso laminado' con precio 300 y marca 'Agregar al catálogo'Then el servicio se usa en la cotizaciónAnd queda disponible en el catálogo para futuras cotizaciones.
    3. Caso de borde - El servicio único no aparece en otras cotizacionesGiven un servicio único creado solo para la cotización AWhen el usuario arma otra cotización BThen ese servicio único no aparece como opción disponible en B.
    4. Caso alternativo - El alta pide la cantidadGiven que doy de alta un servicio desde la cotizaciónWhen lleno nombre, unidad, precio y cantidadThen al volver al armador la partida está completa: servicio, precio, cantidad e importe.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el servicio creado desde la cotizaciónWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear servicio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. v1.1

      Backlog
      • Cambio v1.1 - Alta de tarifa desde la cotización con alcanceGiven la necesidad de tarifas puntualesWhen se agrega US-22 en v1.1Then al crear un producto desde la cotización un check decide si se guarda en el catálogo o es solo para esa cotización.
    6. v3.1

      Backlog
      • Cambio v3.1 - Cantidad en vez de descripciónGiven que el alta desde la cotización pedía descripciónWhen se cambia en v3.1Then pide la cantidad y deja la partida armada.

    Formulario

    • Obligatorios Nombre, Tipo de unidad, Precio por unidad, Cantidad
    • Catálogo Tipo de unidad de Unidades (cerrado: lista fija)
    • Mensaje Nombre: «El nombre es obligatorio»
    • Mensaje Precio por unidad: «El precio es obligatorio»
    • Mensaje Precio por unidad: «El precio debe ser mayor a 0»
    • Mensaje Cantidad: «La cantidad es obligatoria»
    • Mensaje Cantidad: «La cantidad debe ser mayor a 0»
  6. US-63 Ajustar el precio de un servicio dentro de la cotización

    Como usuario autenticado quiero ver y cambiar el precio por unidad al agregar un servicio, o escribir directamente el importe total acordado, para cotizar lo que de verdad negocié con el cliente sin tocar mi catálogo.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - El precio del catálogo llega por defectoGiven el usuario armando una cotizaciónWhen elige el servicio 'Muro de tablaroca' de 100Then el precio por unidad aparece en 100And al indicar cantidad 2 el importe muestra 200.
    2. Flujo principal - El precio se cambia solo para esta cotizaciónGiven un servicio elegido con su precio por defectoWhen el usuario cambia el precio por unidad a 75Then el importe y el total se recalculan con 75And el servicio conserva en el catálogo su precio original.
    3. Flujo principal - El importe total se reparte entre la cantidadGiven un servicio de 100 con cantidad 2 y un importe de 200When el usuario escribe 150 en el importeThen el precio por unidad pasa a 75And la cotización se registra con ese precio.
    4. Caso de borde - El total acordado no pierde centavosGiven una cantidad de 15When el usuario pide un importe de 32 000Then el precio por unidad queda en 2 133,333333And el importe sigue siendo 32 000,00, porque el total pactado es el que se cobra, no lo que sobrevive a redondear el precio a centavos.
    5. Caso de borde - Sin cantidad no hay nada que repartirGiven un importe escrito y ninguna cantidad indicadaWhen el usuario mira el precio por unidadThen sigue como estaba, porque no hay entre cuánto dividir.
    6. Caso alternativo - Un precio de cero no es un precioGiven un servicio elegidoWhen el usuario deja el precio por unidad en 0Then el servicio no se agrega a la cotización.
    7. Caso de borde - Lo que se factura son centavosGiven una partida cuyo precio por unidad tiene más de dos decimalesWhen se calcula su importeThen se redondea a centavos una sola vez —3 × 33,333333 se cobran como 100,00— en lugar de arrastrar millonésimas hasta el total.
    8. Caso de borde - El servicio recién creado también trae su precioGiven el usuario creando un servicio desde la cotización, se guarde o no en el catálogoWhen termina de crearloThen el precio que acaba de escribir ya está en la partida, sin tener que volver a elegir el servicio.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. v2.9

      Backlog
      • Cambio v2.9 - Nace el precio ajustableGiven que la cotización solo sabía multiplicar el precio del catálogo por la cantidadWhen se agrega US-63 en v2.9Then el precio por unidad y el importe total se pueden escribir, y el catálogo queda intacto.
    3. v2.11

      Backlog
      • Cambio v2.11 - El precio gana decimales para no perder dineroGiven que ajustar un total de 32 000 entre 15 dejaba la partida en 31 999,95 —el precio se redondeaba a 2 133,33 y los cinco centavos se perdían—When se corrige US-63 en v2.11Then el precio por unidad admite seis decimales, los mismos que el valor unitario de un CFDI, y el importe se redondea a centavos una sola vez.
    4. v2.15

      Backlog
      • Cambio v2.15 - El precio del servicio nuevo deja de perderseGiven que el servicio recién creado todavía no estaba en la lista cuando se le buscaba el precioWhen se amplía US-63 en v2.15Then el precio viene con él y la partida queda lista.
  7. US-72 Documentos con el mismo encabezado y con fecha de generación

    Como arquitecto quiero que la cotización, el comprobante de pago y el estado del proyecto lleven los mismos datos en el mismo lugar, para que todo lo que entrego se lea como salido del mismo escritorio.

    GREEN2026-10-30backend · frontend

    Criterios de aceptación

    1. Flujo principal - El título va en la parte blancaGiven cualquiera de los tres documentosWhen se mira su primera páginaThen el título está debajo de la banda de color, escrito con tinta, y la banda queda para el membrete.
    2. Flujo principal - Los mismos datos en los tresGiven los tres documentosWhen se comparan sus encabezadosThen los tres llevan membrete, título, folio, estado, cliente y fecha de emisión en el mismo lugar.
    3. Flujo principal - El pie fecha la copiaGiven un documento recién generadoWhen se lee su pie de páginaThen dice el día y la hora en que se generó.
    4. Caso de borde - Un nombre de organización muy largoGiven un despacho con nombre largoWhen se dibuja el encabezadoThen el nombre se achica hasta caber, en lugar de desbordarse fuera de la hoja.

    Historial de cambios

    1. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    2. v5.3 — iteracion-25: el encabezado imprime el folio del sistema

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio del encabezado viene del sistemaGiven cualquier documentoWhen se dibuja su encabezadoThen el folio es el que el sistema asignó al crearlo, nunca uno calculado en el navegador.
    3. v2.14

      Backlog
      • Cambio v2.14 - Un encabezado, tres documentosGiven que cada documento tenía su propio encabezado y el título iba sobre el colorWhen se agrega US-72 en v2.14Then el encabezado y el pie se dibujan desde un mismo lugar.
    4. v3.0

      Backlog
      • Cambio v3.0 - El documento dice a quién va dirigidoGiven un comprobante de pago a un trabajadorWhen se refina en v3.0Then el encabezado lo llama por lo que es y no «cliente».
  8. US-87 Armar una cotización sin cambiar de lenguaje

    Como arquitecto quiero que crear una cotización se sienta como crear cualquier otra cosa en la aplicación, para no tener que aprender dos formas de lo mismo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El armador vive en un diálogoGiven la pantalla de cotizacionesWhen el usuario toca «Nueva cotización»Then el armador se abre en un diálogo, como el alta de un servicio o de un cliente, y no en una tarjeta al pie.
    2. Flujo principal - Editar abre el mismo diálogoGiven el detalle de una cotización en borradorWhen el usuario toca «Editar»Then se abre el armador ya cargado con sus partidas, listo para guardar cambios.
    3. Flujo principal - En el teléfono ocupa la pantallaGiven un teléfonoWhen se abre el armadorThen llena la pantalla, para no dejar dos áreas de desplazamiento compitiendo por el dedo.
    4. Caso de borde - Cerrar deja el armador en limpioGiven un armador con algo escritoWhen el usuario lo cierraThen al volver a abrirlo está vacío, sin restos de la vez anterior.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.19

      Backlog
      • Cambio v2.19 - La única pantalla distinta deja de serloGiven que cotizaciones era la única pantalla donde crear algo ocurría en una tarjeta al pieWhen se agrega US-87 en v2.19Then usa el mismo diálogo que el resto.
  9. US-73 Que el documento se llame cotización y no nota de venta

    Como arquitecto quiero que el papel que entrego se llame cotización para que mi cliente entienda qué tiene en la mano.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El documento dice qué esGiven una cotización guardadaWhen genero su documentoThen el título impreso dice «COTIZACIÓN»And el archivo se nombra con su folio.
    2. Caso alternativo - Cada documento con su nombreGiven un comprobante de pagoWhen lo generoThen su título dice «COMPROBANTE DE PAGO» y no «COTIZACIÓN».
    3. Caso de borde - Una cotización sin folio legibleGiven una cotización cuyo identificador no deja armar folioWhen genero el documentoThen el folio sale como COT-SINFOLIO en vez de quedar en blanco.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
  10. US-74 Saber cuándo se generó el papel que tengo en la mano

    Como arquitecto quiero que cada documento diga cuándo se generó para saber si el que me enseña el cliente es el último.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El pie fecha el documentoGiven cualquiera de los cuatro documentosWhen lo generoThen el pie dice el día y la hora en que se generó.
    2. Caso alternativo - Dos copias del mismo documentoGiven la misma cotización generada en dos momentosWhen comparo las copiasThen cada una lleva su propia hora de generación.
    3. Caso de borde - La hora se lee sin ambigüedadGiven un documento generado por la tardeWhen leo el pieThen la hora va en formato de 24 horas, sin a. m. ni p. m.
    4. Flujo principal v3.2 - El pie numera la hojaGiven cualquiera de los cuatro documentosWhen lo generoThen a la derecha del pie dice «Página x/y», donde antes decía «Generado con Itzaka» (US-119).

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.2

      Backlog
      • Cambio v3.2 - Paginación en el pieGiven que el pie firmaba «Generado con CUOTREKA»When se revisa US-74 en v3.2Then dice «Página x/y».
  11. US-75 Que la cotización diga que no es un acuerdo ni obliga

    Como arquitecto quiero que la cotización avise que no obliga a las partes para no quedar comprometido por un precio que sólo era una propuesta.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El aviso viaja en el documentoGiven una cotizaciónWhen genero el documentoThen al final, al pie de la última hoja, avisa que no constituye un acuerdo ni obliga a las partesAnd dice el plazo de validez de esa cotización.
    2. Caso alternativo - Un comprobante sí acreditaGiven un comprobante de pagoWhen lo generoThen no lleva ese aviso, porque acredita un hecho ocurrido.
    3. Caso de borde - El aviso llega también compartidoGiven una cotización compartida como PDFWhen el cliente la abre en su teléfonoThen el aviso está dentro del documento y no sólo en la pantalla de la aplicación.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.2

      Backlog
      • Cambio v3.2 - Al pie de la última hojaGiven que el aviso iba justo debajo del totalWhen se revisa US-75 en v3.2Then va al final del documento y al pie de su última hoja (US-120).
  12. US-106 Que mis documentos nunca salgan sin marca

    Como arquitecto quiero que todo documento salga firmado con una marca para que nunca se entregue un papel anónimo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Con membrete propioGiven una cuenta con logotipo configuradoWhen genero una cotizaciónThen la banda lleva ese logotipo junto al nombre del despacho.
    2. Caso alternativo - Sin membrete configuradoGiven una cuenta sin nombre ni logotipoWhen genero el documentoThen la banda lleva la marca de Itzaka, dibujada en la tinta que se lee sobre el color de la banda.
    3. Caso de borde - Un logotipo que no se puede leerGiven un logotipo guardado que resulta ilegibleWhen genero el documentoThen el documento se genera igual, con el nombre solo, y no se pierde el trabajo.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.0

      Backlog
      • Cambio v3.0 - El documento nunca queda anónimoGiven que un documento sin membrete salía con la banda vacíaWhen se agrega US-106 en v3.0Then firma con la marca de CUOTREKA.
  13. US-111 Borrar una cotización que todavía no es proyecto

    Como arquitecto quiero borrar una cotización que no prosperó para que mi lista de cotizaciones sea la que vale.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Cotización en borradorGiven una cotización que no es proyectoWhen la borro y confirmoThen desaparece con sus partidas.
    2. Caso alternativo - Ya es proyectoGiven una cotización que ya es proyectoWhen abro su detalleThen no me ofrece borrarlaAnd la API la rechaza con 'ya es un proyecto'.
    3. Caso de borde - Sus servicios únicosGiven una cotización con un servicio creado sólo para ellaWhen la borroThen ese servicio se va con ella si nadie más lo usa.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. v3.1

      Backlog
      • Cambio v3.1 - Borrar cotizacionesGiven que una cotización no se podía borrarWhen se agrega US-111 en v3.1Then se borra la que no es proyecto.
  14. US-112 Corregir un servicio ya agregado a la cotización

    Como arquitecto quiero corregir el precio o la cantidad de una partida ya agregada para no tener que quitarla y volver a capturarla entera.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Corregir la cantidadGiven una partida de 10 m² en el armadorWhen la edito y pongo 12Then la partida queda en 12 en su mismo lugarAnd el total se recalcula.
    2. Caso alternativo - CancelarGiven que estoy corrigiendo una partidaWhen canceloThen la partida se queda como estaba.
    3. Caso de borde - Servicio único al reabrirGiven una cotización con un servicio creado sólo para ellaWhen la reabro para editarlaThen la partida se ve con su nombre y se puede corregir.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. v3.1

      Backlog
      • Cambio v3.1 - Partidas editablesGiven que una partida sólo se podía quitarWhen se agrega US-112 en v3.1Then se corrige en su lugar.
  15. US-115 Escribir observaciones en la cotización

    Como arquitecto quiero escribir observaciones en la cotización —qué incluye, qué no, cómo se paga— para que salgan en el documento que recibe el cliente.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Las observaciones salen en el documentoGiven una cotización con la observación 'No incluye flete'When genero su documentoThen después del total aparece «OBSERVACIONES» con ese texto, respetando sus renglones.
    2. Flujo alternativo - Se corrigen o se quitanGiven una cotización con observacionesWhen la edito y las borroThen el documento deja de llevar la sección.
    3. Caso de borde - Sin observaciones no queda un título vacíoGiven una cotización sin observacionesWhen genero su documentoThen no aparece la sección «OBSERVACIONES».
    4. Caso de borde - Son notas, no un contratoGiven unas observaciones de más de 2000 caracteresWhen intento guardarlasThen se rechazan diciendo el límite.
    5. Caso de borde - Unas notas largas pasan de hojaGiven observaciones que no caben en la hojaWhen genero el documentoThen continúan en la siguiente sin escribir encima del pie.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. v3.2

      Backlog
      • Cambio v3.2 - ObservacionesGiven que la cotización no tenía dónde aclarar nadaWhen se agrega US-115 en v3.2Then lleva observaciones que salen en su documento.
  16. US-116 Elegir los días de vigencia de cada cotización

    Como arquitecto quiero elegir cuántos días valen los precios de cada cotización para que el documento diga la vigencia que acordé y no siempre 20 días.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Por omisión, 20 díasGiven una cotización nuevaWhen no toco la vigenciaThen vale 20 días naturales, como siempre.
    2. Flujo principal - Una vigencia propiaGiven una cotización emitida el 10 de eneroWhen le pongo 45 díasThen su documento dice «validez de 45 días naturales» y que vence el 24 de febrero.
    3. Caso de borde - Ni cero días ni más de un añoGiven el armador de la cotizaciónWhen escribo 0, 366 o algo que no es un númeroThen se avisa «Entre 1 y 365 días» y no se puede guardar.
    4. Caso alternativo - Una pantalla vieja no la borraGiven una cotización con 30 díasWhen la guarda una versión de la aplicación que no conoce la vigenciaThen conserva sus 30 días y sus observaciones.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend dbfd87f
    2. v3.2

      Backlog
      • Cambio v3.2 - Vigencia por cotizaciónGiven que la vigencia era fija en 20 díasWhen se agrega US-116 en v3.2Then cada cotización tiene la suya.
  17. US-119 Saber qué hoja es y cuántas son

    Como arquitecto quiero que cada hoja de un documento diga «Página x/y» para que el cliente sepa si le falta alguna.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Cada hoja lleva su númeroGiven un documento de tres hojasWhen lo abroThen el pie de cada una dice «Página 1/3», «Página 2/3» y «Página 3/3».
    2. Flujo principal - En los cuatro documentosGiven una cotización, un estado de proyecto, un comprobante de pago o un pago al personalWhen lo generoThen su pie lleva la paginación en lugar de «Generado con Itzaka».
    3. Caso de borde - Nada escribe encima del pieGiven una tabla o unas notas más largas que la hojaWhen se genera el documentoThen continúan en la hoja siguiente sin pisar el pie, y el título de una tabla no se queda solo al final de una hoja.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.2

      Backlog
      • Cambio v3.2 - PaginaciónGiven que el pie firmaba «Generado con CUOTREKA»When se agrega US-119 en v3.2Then numera cada hoja.
  18. US-120 Que la vigencia y el aviso cierren la cotización

    Como arquitecto quiero que la vigencia y el aviso de que la cotización es informativa vayan al final, al pie de la última hoja, para que se lean como el cierre del documento.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Al pie de la hojaGiven una cotización cortaWhen genero su documentoThen la vigencia y el aviso quedan al pie de la hoja, justo encima del pie, aunque arriba sobre espacio.
    2. Flujo principal - Al pie de la última hojaGiven una cotización de varias hojasWhen genero su documentoThen la vigencia y el aviso aparecen sólo en la última, al pie.
    3. Caso de borde - Si ya no cabenGiven una cotización cuyo contenido llega hasta abajo de la hojaWhen genero su documentoThen la vigencia y el aviso pasan al pie de una hoja nueva.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v3.2

      Backlog
      • Cambio v3.2 - Leyendas al cierreGiven que la vigencia y el aviso iban justo debajo del totalWhen se agrega US-120 en v3.2Then van al pie de la última hoja.

Últimos cambios

  1. US-10 Crear una cotización con total automático

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-11 Editar una cotización en borrador

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  3. US-12 Consultar y compartir el documento de la cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  4. US-13 Consultar cotizaciones

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  5. US-22 Crear un servicio desde la cotización (única o al catálogo)

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  6. US-63 Ajustar el precio de un servicio dentro de la cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  7. US-111 Borrar una cotización que todavía no es proyecto

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  8. US-112 Corregir un servicio ya agregado a la cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  9. US-115 Escribir observaciones en la cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  10. US-116 Elegir los días de vigencia de cada cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend dbfd87f
  11. US-10 Crear una cotización con total automático

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  12. US-10 Crear una cotización con total automático

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la cotización armada con su cliente y sus serviciosWhen el usuario toca «Crear cotización» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  13. US-11 Editar una cotización en borrador

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  14. US-11 Editar una cotización en borrador

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven una cotización en borrador abierta en el armadorWhen el usuario toca «Guardar cambios» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  15. US-12 Consultar y compartir el documento de la cotización

    Iteración 27 · Cambio: Mejora de cumplimiento

    GREENfrontend a682b8b
  16. US-12 Consultar y compartir el documento de la cotización

    v5.5 — iteracion-27: «Ver documento» dice que está trabajando

    BacklogCambioIteración 27
    • Cambio iteracion-27 - Armando el documentoGiven el detalle de una cotizaciónWhen el usuario toca «Ver documento» y el documento tarda en armarseThen ese botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd «Compartir» espera deshabilitado, sin indicadorAnd al abrirse el documento los dos vuelven a estar disponibles; lo mismo al tocar «Compartir».
  17. US-10 Crear una cotización con total automático

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  18. US-10 Crear una cotización con total automático

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el armado de la cotizaciónWhen el usuario lo abreThen ve un asterisco en Cliente, Servicio de cada partida, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cliente» sin cumplirlo ve «Elige el cliente de la cotización» junto al campo.
  19. US-11 Editar una cotización en borrador

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  20. US-11 Editar una cotización en borrador

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la edición de la cotización en borradorWhen el usuario lo abreThen ve un asterisco en Cliente, Servicio de cada partida, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cliente» sin cumplirlo ve «Elige el cliente de la cotización» junto al campo.
  21. US-12 Consultar y compartir el documento de la cotización

    Iteración 25 · Nueva: US-12 PDF de cotización con desglose por habitación: el resumen global y, debajo, cada habitación con sus conceptos y su subtotal

    GREENbackend 830de0d
  22. US-12 Consultar y compartir el documento de la cotización

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  23. US-12 Consultar y compartir el documento de la cotización

    v5.3 — iteracion-25: el documento desglosado por habitación

    BacklogNuevaIteración 25
    • Nueva iteracion-25 - Desglose por habitaciónGiven que hasta v5.2 el documento sólo llevaba el resumen global, una partida por servicio con todo lo que mide el planoWhen se agrega el desglose en iteracion-25Then después del resumen va cada habitación con sus conceptos y su subtotal, lo que no es de ninguna va en «Sin habitación», y los subtotales suman el total.
  24. US-12 Consultar y compartir el documento de la cotización

    v5.3 — iteracion-25: el documento de la cotización imprime su folio

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio de la cotización lo asigna el sistemaGiven una cotización con folio «OBR-7»When se consulta o comparte su documentoThen el PDF dice «Folio: OBR-7» y el archivo se llama «OBR-7.pdf».
  25. US-13 Consultar cotizaciones

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  26. US-13 Consultar cotizaciones

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente», «Fecha» o «Total»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Fecha» (lo más reciente primero) ya se ve ordenada.
  27. US-22 Crear un servicio desde la cotización (única o al catálogo)

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  28. US-22 Crear un servicio desde la cotización (única o al catálogo)

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el servicio creado desde la cotizaciónWhen el usuario lo abreThen ve un asterisco en Nombre, Tipo de unidad, Precio por unidad, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
  29. US-22 Crear un servicio desde la cotización (única o al catálogo)

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear servicio» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  30. US-72 Documentos con el mismo encabezado y con fecha de generación

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  31. US-72 Documentos con el mismo encabezado y con fecha de generación

    v5.3 — iteracion-25: el encabezado imprime el folio del sistema

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio del encabezado viene del sistemaGiven cualquier documentoWhen se dibuja su encabezadoThen el folio es el que el sistema asignó al crearlo, nunca uno calculado en el navegador.
  32. US-10 Crear una cotización con total automático

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 9359f15
  33. US-10 Crear una cotización con total automático

    v4.9 — iteracion-17: el cliente y los servicios se buscan al cotizar

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Buscar el clienteGiven una cuenta con 200 clientesWhen el usuario escribe «gar» en Cliente al cotizarThen ve los clientes de su cuenta que contienen «gar», de los 200,And elige uno.
    • Cambio iteracion-17 - Buscar el servicio de una partidaWhen el usuario escribe «piso» en el servicio de una partidaThen ve los servicios de su catálogo que contienen «piso»And al elegir uno se llenan su unidad y su precio.
  34. US-13 Consultar cotizaciones

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 78082f1
  35. US-13 Consultar cotizaciones

    v4.9 — iteracion-17: las cotizaciones se piden por páginas

    BacklogCambioIteración 17
    • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 50 cotizacionesWhen el usuario abre CotizacionesThen recibe las 20 más recientes y el contador dice «1–20 de 50», sin descargar las partidas de las demás.
    • Cambio iteracion-17 - Varios estados a la vezWhen el usuario filtra Estado por «Borrador» y «En proyecto»Then ve las de cualquiera de los dos estados y el total combinado.
    • Cambio iteracion-17 - Mayor importe de todasWhen el usuario ordena por importe de mayor a menorThen la primera cotización es la de mayor importe de las 50.
    • Cambio iteracion-17 - Sin acciones en loteGiven la lista de cotizacionesWhen el usuario la miraThen no hay casillas de selección, porque la única acción de cada fila abre su plano y borrar se hace desde la cotización (US-111).
  36. US-87 Armar una cotización sin cambiar de lenguaje

    Registrada como existente (adopción)

    GREEN
  37. US-73 Que el documento se llame cotización y no nota de venta

    Registrada como existente (adopción)

    GREEN
  38. US-74 Saber cuándo se generó el papel que tengo en la mano

    Registrada como existente (adopción)

    GREEN
  39. US-75 Que la cotización diga que no es un acuerdo ni obliga

    Registrada como existente (adopción)

    GREEN
  40. US-106 Que mis documentos nunca salgan sin marca

    Registrada como existente (adopción)

    GREEN
  41. US-119 Saber qué hoja es y cuántas son

    Registrada como existente (adopción)

    GREEN
  42. US-120 Que la vigencia y el aviso cierren la cotización

    Registrada como existente (adopción)

    GREEN
  43. US-10 Crear una cotización con total automático

    v1.0

    Backlog
    • Cambio v1.0 - Alta de creación de cotizacionesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-10 de creación de cotizaciones con total automático.
  44. US-10 Crear una cotización con total automático

    v1.1

    Backlog
    • Cambio v1.1 - Alta rápida de cliente en el armadoGiven la fricción de salir a crear un clienteWhen se refina US-10 en v1.1Then se permite crear un cliente desde el armado de la cotización y seleccionarlo automáticamente.
  45. US-11 Editar una cotización en borrador

    v1.0

    Backlog
    • Cambio v1.0 - Alta de edición de cotizacionesGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-11 de edición de cotizaciones en borrador.
  46. US-11 Editar una cotización en borrador

    v2.12

    Backlog
    • Cambio v2.12 - El límite es el proyecto, no el documentoGiven que una cotización dejaba de editarse al generar su documentoWhen se amplía US-11 en v2.12Then el límite pasa a ser el proyecto en marcha.
  47. US-12 Consultar y compartir el documento de la cotización

    v1.0

    Backlog
    • Cambio v1.0 - Alta de documento de cotizaciónGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-12 de generación del documento de cotización.
  48. US-12 Consultar y compartir el documento de la cotización

    v1.1

    Backlog
    • Cambio v1.1 - Documento PDF nota de venta con validez y compartirGiven la necesidad de entregar el documento al clienteWhen se refina US-12 en v1.1Then el documento es un PDF tipo nota de venta con nota de validez de 20 días y opciones de visualizar y compartir.
  49. US-12 Consultar y compartir el documento de la cotización

    v2.12

    Backlog
    • Cambio v2.12 - Generar el documento deja de ser un pasoGiven que «Generar documento» era un botón que no generaba nada —el PDF se construye a partir de la cotización cada vez que se abre— y que además bloqueaba la ediciónWhen se corrige US-12 en v2.12Then el documento se consulta y se comparte siempre, y «documento generado» desaparece como estado.
  50. US-12 Consultar y compartir el documento de la cotización

    v2.14

    Backlog
    • Cambio v2.14 - Deja de ser una nota de ventaGiven que el papel se titulaba «NOTA DE VENTA», que es el nombre de una venta cerradaWhen se amplía US-12 en v2.14Then se titula «COTIZACIÓN» y dice expresamente que no obliga a nada.
  51. US-13 Consultar cotizaciones

    v1.0

    Backlog
    • Cambio v1.0 - Alta de consulta de cotizaciones con aislamientoGiven el MVP inicial multi-tenantWhen se define el backlog v1.0Then se incorpora la historia US-13 de consulta de cotizaciones aislada por cuenta.
  52. US-22 Crear un servicio desde la cotización (única o al catálogo)

    v1.1

    Backlog
    • Cambio v1.1 - Alta de tarifa desde la cotización con alcanceGiven la necesidad de tarifas puntualesWhen se agrega US-22 en v1.1Then al crear un producto desde la cotización un check decide si se guarda en el catálogo o es solo para esa cotización.
  53. US-22 Crear un servicio desde la cotización (única o al catálogo)

    v3.1

    Backlog
    • Cambio v3.1 - Cantidad en vez de descripciónGiven que el alta desde la cotización pedía descripciónWhen se cambia en v3.1Then pide la cantidad y deja la partida armada.
  54. US-63 Ajustar el precio de un servicio dentro de la cotización

    v2.9

    Backlog
    • Cambio v2.9 - Nace el precio ajustableGiven que la cotización solo sabía multiplicar el precio del catálogo por la cantidadWhen se agrega US-63 en v2.9Then el precio por unidad y el importe total se pueden escribir, y el catálogo queda intacto.
  55. US-63 Ajustar el precio de un servicio dentro de la cotización

    v2.11

    Backlog
    • Cambio v2.11 - El precio gana decimales para no perder dineroGiven que ajustar un total de 32 000 entre 15 dejaba la partida en 31 999,95 —el precio se redondeaba a 2 133,33 y los cinco centavos se perdían—When se corrige US-63 en v2.11Then el precio por unidad admite seis decimales, los mismos que el valor unitario de un CFDI, y el importe se redondea a centavos una sola vez.
  56. US-63 Ajustar el precio de un servicio dentro de la cotización

    v2.15

    Backlog
    • Cambio v2.15 - El precio del servicio nuevo deja de perderseGiven que el servicio recién creado todavía no estaba en la lista cuando se le buscaba el precioWhen se amplía US-63 en v2.15Then el precio viene con él y la partida queda lista.
  57. US-72 Documentos con el mismo encabezado y con fecha de generación

    v2.14

    Backlog
    • Cambio v2.14 - Un encabezado, tres documentosGiven que cada documento tenía su propio encabezado y el título iba sobre el colorWhen se agrega US-72 en v2.14Then el encabezado y el pie se dibujan desde un mismo lugar.
  58. US-72 Documentos con el mismo encabezado y con fecha de generación

    v3.0

    Backlog
    • Cambio v3.0 - El documento dice a quién va dirigidoGiven un comprobante de pago a un trabajadorWhen se refina en v3.0Then el encabezado lo llama por lo que es y no «cliente».
  59. US-87 Armar una cotización sin cambiar de lenguaje

    v2.19

    Backlog
    • Cambio v2.19 - La única pantalla distinta deja de serloGiven que cotizaciones era la única pantalla donde crear algo ocurría en una tarjeta al pieWhen se agrega US-87 en v2.19Then usa el mismo diálogo que el resto.
  60. US-74 Saber cuándo se generó el papel que tengo en la mano

    v3.2

    Backlog
    • Cambio v3.2 - Paginación en el pieGiven que el pie firmaba «Generado con CUOTREKA»When se revisa US-74 en v3.2Then dice «Página x/y».
  61. US-75 Que la cotización diga que no es un acuerdo ni obliga

    v3.2

    Backlog
    • Cambio v3.2 - Al pie de la última hojaGiven que el aviso iba justo debajo del totalWhen se revisa US-75 en v3.2Then va al final del documento y al pie de su última hoja (US-120).
  62. US-106 Que mis documentos nunca salgan sin marca

    v3.0

    Backlog
    • Cambio v3.0 - El documento nunca queda anónimoGiven que un documento sin membrete salía con la banda vacíaWhen se agrega US-106 en v3.0Then firma con la marca de CUOTREKA.
  63. US-111 Borrar una cotización que todavía no es proyecto

    v3.1

    Backlog
    • Cambio v3.1 - Borrar cotizacionesGiven que una cotización no se podía borrarWhen se agrega US-111 en v3.1Then se borra la que no es proyecto.
  64. US-112 Corregir un servicio ya agregado a la cotización

    v3.1

    Backlog
    • Cambio v3.1 - Partidas editablesGiven que una partida sólo se podía quitarWhen se agrega US-112 en v3.1Then se corrige en su lugar.
  65. US-115 Escribir observaciones en la cotización

    v3.2

    Backlog
    • Cambio v3.2 - ObservacionesGiven que la cotización no tenía dónde aclarar nadaWhen se agrega US-115 en v3.2Then lleva observaciones que salen en su documento.
  66. US-116 Elegir los días de vigencia de cada cotización

    v3.2

    Backlog
    • Cambio v3.2 - Vigencia por cotizaciónGiven que la vigencia era fija en 20 díasWhen se agrega US-116 en v3.2Then cada cotización tiene la suya.
  67. US-119 Saber qué hoja es y cuántas son

    v3.2

    Backlog
    • Cambio v3.2 - PaginaciónGiven que el pie firmaba «Generado con CUOTREKA»When se agrega US-119 en v3.2Then numera cada hoja.
  68. US-120 Que la vigencia y el aviso cierren la cotización

    v3.2

    Backlog
    • Cambio v3.2 - Leyendas al cierreGiven que la vigencia y el aviso iban justo debajo del totalWhen se agrega US-120 en v3.2Then van al pie de la última hoja.
EPIC-05

Proyecto y avances

100%6 de 6 en GREEN

6 historias · aún sin integrar en develop

Detalles

Convertir una cotización en un proyecto y registrar sus avances sobre los elementos cotizados (por cantidad), con evidencia fotográfica.

  • GREEN 6
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
12 · 13 · 19 · 25 · 26 · 27 · 28 · 29
Último cambio
2026-11-01

Historias

  1. US-14 Iniciar un proyecto desde una cotización

    Como usuario autenticado quiero iniciar un proyecto a partir de una cotización para dar seguimiento a sus avances y pagos.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Proyecto creado desde cotización con documentoGiven una cotización con documento generado para 'Constructora Reyes' y total 5100When el usuario inicia un proyecto a partir de ellaThen se crea un proyecto en estado 'en curso' ligado a esa cotizaciónAnd el valor cotizado del proyecto es 5100.
    2. Caso alternativo - Cotización aún en borradorGiven una cotización en borrador sin documento generadoWhen el usuario intenta iniciar un proyectoThen el sistema muestra 'Genera el documento de la cotización antes de iniciar el proyecto'And no crea el proyecto.
    3. Caso de borde - Cotización ya con proyectoGiven una cotización que ya tiene un proyecto en cursoWhen el usuario intenta iniciar otro proyecto con la misma cotizaciónThen el sistema muestra 'Esta cotización ya tiene un proyecto asociado'And no crea un segundo proyecto.
    4. Flujo principal - Se inicia desde el detalle de la cotizaciónGiven el detalle de una cotización abiertoWhen el usuario toca «Iniciar proyecto»Then el proyecto queda creado y se abre su pantalla, lista para registrar avances.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 9d8779d
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven una cotización en borrador abiertaWhen el usuario toca «Iniciar proyecto» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    4. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    5. v1.0

      Backlog
      • Cambio v1.0 - Alta de inicio de proyectoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-14 de inicio de proyecto desde una cotización.
    6. v2.12

      Backlog
      • Cambio v2.12 - Sin paso previo de documentaciónGiven que iniciar un proyecto exigía generar antes el documento y elegir la cotización en una lista aparteWhen se amplía US-14 en v2.12Then arranca desde el detalle de la propia cotización.
  2. US-15 Registrar un avance del proyecto

    Como usuario autenticado quiero registrar el avance sobre los elementos cotizados, por cantidad, para reflejar cuánto se ha ejecutado.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Avance por cantidadGiven un proyecto en curso con el servicio 'Muro de tablaroca' cotizado en 10 m² a 350When el usuario registra un avance por cantidad de 6 m² en ese servicio con su fechaThen el avance queda registradoAnd el valor avanzado del proyecto aumenta en 2100 (6 × 350).
    2. Refinamiento v1.1 - El selector solo muestra servicios con cantidad pendienteGiven un proyecto con el servicio 'Muro de tablaroca' cotizado en 10 m² y avanzado por completo (10 m²)And el servicio 'Zócalo' cotizado en 20 m con 5 m avanzadosWhen el usuario abre el selector de servicios para registrar un avanceThen ve 'Zócalo' como opción disponibleAnd no ve 'Muro de tablaroca' porque no tiene cantidad pendiente.
    3. Refinamiento v1.1 - El selector muestra nombre + cantidad pendienteGiven el servicio 'Zócalo' cotizado en 20 m con 5 m ya avanzadosWhen el usuario abre el selector de serviciosThen la opción muestra 'Zócalo' junto con su cantidad pendiente 15 (máximo a registrar).
    4. Caso alternativo - Avance supera la cantidad pendienteGiven el servicio 'Zócalo' con 15 m pendientesWhen el usuario registra un avance por cantidad de 16 mThen el sistema muestra 'El avance supera la cantidad pendiente (15)'And no registra el avance.
    5. Caso de borde - Avance en ceroGiven el usuario registrando un avance por cantidadWhen ingresa una cantidad de 0Then el sistema muestra 'El avance debe ser mayor a 0'And no registra el avance.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. Iteración 27 · Cambio: Mejora de cumplimiento

      GREENfrontend 61a2882
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven un avance con su servicio, su cantidad y su fechaWhen el usuario toca «Registrar avance» y la respuesta o la subida de sus fotos tardaThen el botón muestra el indicador de carga del sistema junto a su texto («Subiendo fotos…» mientras suben) y queda deshabilitadoAnd no se registra dos veces.
    5. v5.5 — iteracion-27: la fecha se elige en el calendario de la app

      BacklogCambioIteración 27
      • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Registrar avance»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar avance» se guarda la fecha elegida, sin correrse un día.
    6. v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

      BacklogBugIteración 27
      • Bug iteracion-27 - Hoy en el calendario de quien registraGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Registrar avance»Then la fecha por omisión es la de hoy, no la de mañana.
    7. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    8. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el registro de un avanceWhen el usuario lo abreThen ve un asterisco en Servicio, Cantidad, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Servicio» sin cumplirlo ve «Elige el servicio que avanzó» junto al campo.
    9. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    10. v1.0

      Backlog
      • Cambio v1.0 - Alta de registro de avances por cantidad o porcentajeGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-15 de registro de avances por cantidad o porcentaje sobre elementos cotizados.
    11. v1.1

      Backlog
      • Cambio v1.1 - Solo por cantidad y selector de pendientesGiven confusión con el avance por porcentajeWhen se refina US-15 en v1.1Then se elimina el registro por porcentaje (solo por cantidad)And el selector solo lista partidas con cantidad pendiente mostrando nombre + cantidad pendiente (máximo a registrar).
    12. v3.6

      Backlog
      • Cambio v3.6 - Texto alineado con el sistemaGiven que la descripción decía «por cantidad o por porcentaje»When se revisa US-15 en v3.6Then dice «por cantidad», porque el porcentaje se retiró en v1.1.

    Formulario

    • Obligatorios Servicio, Cantidad, Fecha
    • Catálogo Servicio de Partidas del proyecto (cerrado: lista fija)
    • Mensaje Servicio: «Elige el servicio que avanzó»
    • Mensaje Cantidad: «Escribe la cantidad que avanzó»
    • Mensaje Fecha: «Elige la fecha del avance»
  3. US-16 Adjuntar evidencia fotográfica a un avance

    Como usuario autenticado quiero adjuntar fotografías a un avance para respaldar el trabajo realizado.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Adjuntar imágenes a un avanceGiven un avance registrado en el proyectoWhen el usuario adjunta una o más fotografías al avanceThen las imágenes quedan asociadas al avanceAnd pueden visualizarse desde el detalle del avance.
    2. Caso alternativo - Archivo que no es imagenGiven el usuario adjuntando evidencia a un avanceWhen intenta subir un archivo que no es una imagenThen el sistema muestra 'Solo se permiten archivos de imagen'And no adjunta el archivo.
    3. Caso de borde - Imagen supera el tamaño máximoGiven el usuario adjuntando evidencia a un avanceWhen sube una imagen que supera el tamaño máximo permitidoThen el sistema muestra 'La imagen supera el tamaño máximo permitido'And no adjunta el archivo.
    4. Caso de borde - Un importe de seis cifras cabe en el indicadorGiven un proyecto de cientos de milesWhen el usuario abre su detalle en el teléfonoThen los importes se leen enteros, y el porcentaje de avance acompaña a su barra en lugar de competir por el espacio.
    5. Caso alternativo - La foto llega despuésGiven un avance registrado días antesWhen le agrego fotos desde la lista de avancesThen quedan asociadas a ese avance.
    6. Caso de borde - Foto de teléfono muy pesadaGiven una foto de cámara de más de 4.5 MBWhen la adjuntoThen se reduce antes de subirAnd se sube sin error.
    7. Caso alternativo - Quitar una fotoGiven una foto equivocada en un avanceWhen la quito desde el visorThen desaparece del avance y del almacenamiento.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 409ce23
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend c5e18a3
    3. v5.7 — iteracion-29: la foto en grande no brinca al cargar

      BacklogCambioIteración 29
      • Cambio iteracion-29 - La foto en grande no brinca al cargarGiven el usuario abre en grande una foto de evidencia de un avanceWhen la foto termina de cargarThen el visor no cambia de tamaño ni mueve sus botones: la foto se ajusta dentro de su espacio, sin deformarse.
    4. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    5. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven una foto de un avance abierta en grandeWhen el usuario toca «Quitar esta foto» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    6. v5.4 — iteracion-26: fotos de avance de hasta 4 MB

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Tope de 4 MBGiven una foto que, ya reducida, sigue pesando más de 4 MBWhen la adjunto a un avanceThen la aplicación avisa que el tope es de 4 MBAnd la foto no se sube; una de 4 MB justos sí se sube.
    7. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    8. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    9. v4.4 — iteracion-12: los archivos se aceptan por su contenido real

      BacklogBugIteración 12
      • Bug iteracion-12 - Archivo disfrazadoGiven un archivo cuyo contenido no corresponde a su tipoWhen se sube como evidencia, logotipo, textura, mobiliario o documentoThen se rechaza.
      • Bug iteracion-12 - Nombre y acceso propiosGiven un archivo aceptadoWhen se guardaThen lleva un nombre propio que no revela el originalAnd sólo se ve con un enlace temporal desde la aplicación.
    10. v1.0

      Backlog
      • Cambio v1.0 - Alta de evidencia fotográficaGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-16 de evidencia fotográfica en los avances.
    11. v3.0

      Backlog
      • Cambio v3.0 - Las fotos de avance vuelven a subirGiven que todo salía declarado como JSON y un formulario con archivo viajaba sin su delimitadorWhen se corrige en v3.0Then la evidencia, las texturas y el logotipo se suben de verdad.
    12. v3.1

      Backlog
      • Cambio v3.1 - La evidencia se veGiven que la foto se subía y no se volvía a verWhen se corrige en v3.1Then cada avance muestra sus fotos, se adjuntan en cualquier momento y se reducen antes de subir.

    Formulario

    • Mensaje Fotos del avance: «no es una foto: usa una imagen PNG, JPG, WebP o GIF.»
    • Mensaje Fotos del avance: «pesa más de 5 MB. Toma la foto de nuevo o elige otra.»
  4. US-17 Consultar el avance del proyecto

    Como usuario autenticado quiero ver el avance acumulado del proyecto para saber cuánto se ha ejecutado respecto a lo cotizado.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Resumen de avance con porcentajeGiven un proyecto con valor cotizado 5100 y avances por 2100When el usuario abre el resumen del proyectoThen ve el valor cotizado 5100, el valor avanzado 2100 y el porcentaje de avance correspondiente (aprox. 41%).
    2. Caso alternativo - Proyecto sin avancesGiven un proyecto sin avances registradosWhen el usuario abre su resumenThen ve el valor avanzado en 0And un 0% de avance.
    3. Caso de borde - Proyecto totalmente avanzadoGiven un proyecto cuyo valor avanzado iguala al valor cotizado 5100When el usuario abre su resumenThen ve un 100% de avance.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 409ce23
    2. v5.6 — iteracion-28: las tarjetas del proyecto sin ícono en el título

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El proyecto con los títulos y las cifras del manualGiven un proyecto en curso con avance registradoWhen el arquitecto abre el proyectoThen cada tarjeta lleva su título sin ícono al lado y Cotizado y Avanzado se ven en Inter seminegrita de 22 px con números tabulares, más chicas si la baldosa es angosta pero sin partirse.
    3. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    4. Iteración 13 · Cambio: US-67 Estado de error en Proyectos y su detalle

      GREENfrontend b65e628
    5. v4.5 — iteracion-13: el detalle del proyecto dice cuándo no cargó

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Error al cargar el detalleGiven que el detalle de un proyecto no se pudo cargarWhen se abreThen se explica que no se pudo cargarAnd hay un botón para reintentar.
    6. v1.0

      Backlog
      • Cambio v1.0 - Alta de consulta de avanceGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-17 de consulta del avance acumulado del proyecto.
  5. US-23 Generar el comprobante/PDF de estado del proyecto

    Como usuario autenticado quiero generar un PDF con el estado actual del proyecto (avances y pagos) para compartirlo con mi cliente en cualquier momento.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - PDF con tablas de avances y pagosGiven un proyecto con avances y pagos registradosWhen el usuario genera el comprobante del proyectoThen se produce un PDF con el estatus actual, una tabla de avances (descripción, fecha, ítem y cantidad) y una tabla de pagos (fecha, monto y método)And el usuario puede visualizarlo o compartirlo.
    2. Caso alternativo - Proyecto sin movimientosGiven un proyecto sin avances ni pagosWhen el usuario genera el PDF del proyectoThen el PDF se genera mostrando el estado inicial con las tablas vacías.
    3. Caso de borde - Totales consistentesGiven un proyecto con total cotizado 5100, avanzado 2100 y pagado 1000When se genera el PDFThen el PDF refleja los totales cotizado 5100, avanzado 2100, pagado 1000 y saldo por cobrar 4100.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 409ce23
    2. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    3. v5.3 — iteracion-25: el estado del proyecto imprime el folio del proyecto

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio del estado del proyectoGiven un proyecto iniciado con folio «PRO-3»When se genera su estadoThen el PDF dice «Folio: PRO-3».
    4. v1.1

      Backlog
      • Cambio v1.1 - Alta de PDF de estado del proyectoGiven la necesidad de un resumen en cualquier momentoWhen se agrega US-23 en v1.1Then el proyecto genera un PDF con tablas de avances y pagos, visualizable y compartible.
  6. US-113 Revisar, corregir y borrar los avances registrados

    Como arquitecto quiero ver la lista de avances de la obra y corregir o borrar uno equivocado para que el avance y lo que se le debe al personal sean ciertos.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Ver los avancesGiven un proyecto con avancesWhen abro su pantallaThen veo cada avance con servicio, cantidad, fecha, quién y lo que vale, el más reciente arriba.
    2. Caso alternativo - Corregir un avanceGiven un avance de 40 que era de 4When lo corrijoThen queda en 4And no puede pasar de lo que queda de la partida más lo que ya tenía.
    3. Caso alternativo - Borrar un avanceGiven un avance registrado dos vecesWhen borro uno y confirmoThen desaparece con sus fotosAnd el avance de obra baja.
    4. Caso de borde - Proyecto finalizadoGiven un proyecto finalizadoWhen abro sus avancesThen los veo con sus fotos pero no se pueden cambiar.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. v5.6 — iteracion-28: «Avances registrados» dice si no se pudo cargar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Los avances que no cargaron se pueden volver a pedirGiven un proyecto con avances registradosAnd la consulta de sus avances fallaWhen el arquitecto abre el proyectoThen «Avances registrados» dice «No se pudieron cargar los avances.» con el motivo y el botón «Reintentar», en lugar de «Todavía no hay avances registrados.»And al tocar «Reintentar» vuelve a pedir la página y la muestra.
      • Cambio iteracion-28 - La página que dejó de existir vuelve a la primeraGiven el arquitecto mira la página 2 de «Avances registrados»And desde otro dispositivo se borraron avances hasta que esa página ya no existeWhen la lista vuelve a pedirseThen regresa a la página 1 en lugar de quedarse en blanco.
    3. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    4. Iteración 27 · Cambio: Mejora de cumplimiento

      GREENfrontend 61a2882
    5. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la corrección de un avanceWhen el usuario toca «Guardar corrección» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    6. v5.5 — iteracion-27: la fecha se elige en el calendario de la app

      BacklogCambioIteración 27
      • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Corregir avance»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Guardar corrección» se guarda la fecha elegida, sin correrse un día.
    7. v5.6 — iteracion-28: los avances registrados llegan de cinco en cinco

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Solo llega la página que se veGiven un proyecto con 37 avancesWhen abro su pantallaThen en «Avances registrados» llegan solo los 5 más recientes, cada uno con sus fotos, y el pie dice «1–5 de 37»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demás.
      • Cambio iteracion-28 - El documento de estado sigue trayendo todos los avancesGiven un proyecto con 45 avancesWhen genero su documento de estadoThen su tabla de avances trae los 45, en el orden en que se trabajaron, aunque la pantalla muestre cinco.
    8. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    9. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la corrección de un avanceWhen el usuario lo abreThen ve un asterisco en Cantidad, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cantidad» sin cumplirlo ve «Escribe la cantidad que avanzó» junto al campo.
    10. v3.1

      Backlog
      • Cambio v3.1 - Historial de avancesGiven que los avances sólo se leían en el documento de estadoWhen se agrega US-113 en v3.1Then se revisan, corrigen y borran en pantalla.

    Lista y formulario

    • Página 5 registros por página
    • Orden Más reciente primero
    • Acciones de fila Corregir avance, Borrar avance, Agregar fotos, Ver foto
    • Sin lote Corregir avance: cada avance se corrige con su propia cantidad, fecha y quién lo hizo
    • Sin lote Borrar avance: se borra uno por uno, confirmando cuál, porque se lleva sus fotos y baja el avance de la obra
    • Sin lote Agregar fotos: cada foto respalda un avance en particular
    • Obligatorios Cantidad, Fecha
    • Mensaje Cantidad: «Escribe la cantidad que avanzó»
    • Mensaje Cantidad: «No puede pasar de N: es lo que queda de la partida.»
    • Mensaje Fecha: «Elige la fecha del avance»

Últimos cambios

  1. US-14 Iniciar un proyecto desde una cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 9d8779d
  2. US-15 Registrar un avance del proyecto

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  3. US-16 Adjuntar evidencia fotográfica a un avance

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 409ce23
  4. US-16 Adjuntar evidencia fotográfica a un avance

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend c5e18a3
  5. US-16 Adjuntar evidencia fotográfica a un avance

    v5.7 — iteracion-29: la foto en grande no brinca al cargar

    BacklogCambioIteración 29
    • Cambio iteracion-29 - La foto en grande no brinca al cargarGiven el usuario abre en grande una foto de evidencia de un avanceWhen la foto termina de cargarThen el visor no cambia de tamaño ni mueve sus botones: la foto se ajusta dentro de su espacio, sin deformarse.
  6. US-17 Consultar el avance del proyecto

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 409ce23
  7. US-23 Generar el comprobante/PDF de estado del proyecto

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 409ce23
  8. US-113 Revisar, corregir y borrar los avances registrados

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  9. US-113 Revisar, corregir y borrar los avances registrados

    v5.6 — iteracion-28: «Avances registrados» dice si no se pudo cargar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Los avances que no cargaron se pueden volver a pedirGiven un proyecto con avances registradosAnd la consulta de sus avances fallaWhen el arquitecto abre el proyectoThen «Avances registrados» dice «No se pudieron cargar los avances.» con el motivo y el botón «Reintentar», en lugar de «Todavía no hay avances registrados.»And al tocar «Reintentar» vuelve a pedir la página y la muestra.
    • Cambio iteracion-28 - La página que dejó de existir vuelve a la primeraGiven el arquitecto mira la página 2 de «Avances registrados»And desde otro dispositivo se borraron avances hasta que esa página ya no existeWhen la lista vuelve a pedirseThen regresa a la página 1 en lugar de quedarse en blanco.
  10. US-14 Iniciar un proyecto desde una cotización

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  11. US-14 Iniciar un proyecto desde una cotización

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven una cotización en borrador abiertaWhen el usuario toca «Iniciar proyecto» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  12. US-15 Registrar un avance del proyecto

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  13. US-15 Registrar un avance del proyecto

    Iteración 27 · Cambio: Mejora de cumplimiento

    GREENfrontend 61a2882
  14. US-15 Registrar un avance del proyecto

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven un avance con su servicio, su cantidad y su fechaWhen el usuario toca «Registrar avance» y la respuesta o la subida de sus fotos tardaThen el botón muestra el indicador de carga del sistema junto a su texto («Subiendo fotos…» mientras suben) y queda deshabilitadoAnd no se registra dos veces.
  15. US-15 Registrar un avance del proyecto

    v5.5 — iteracion-27: la fecha se elige en el calendario de la app

    BacklogCambioIteración 27
    • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Registrar avance»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar avance» se guarda la fecha elegida, sin correrse un día.
  16. US-15 Registrar un avance del proyecto

    v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

    BacklogBugIteración 27
    • Bug iteracion-27 - Hoy en el calendario de quien registraGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Registrar avance»Then la fecha por omisión es la de hoy, no la de mañana.
  17. US-16 Adjuntar evidencia fotográfica a un avance

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  18. US-16 Adjuntar evidencia fotográfica a un avance

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven una foto de un avance abierta en grandeWhen el usuario toca «Quitar esta foto» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  19. US-16 Adjuntar evidencia fotográfica a un avance

    v5.4 — iteracion-26: fotos de avance de hasta 4 MB

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Tope de 4 MBGiven una foto que, ya reducida, sigue pesando más de 4 MBWhen la adjunto a un avanceThen la aplicación avisa que el tope es de 4 MBAnd la foto no se sube; una de 4 MB justos sí se sube.
  20. US-17 Consultar el avance del proyecto

    v5.6 — iteracion-28: las tarjetas del proyecto sin ícono en el título

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El proyecto con los títulos y las cifras del manualGiven un proyecto en curso con avance registradoWhen el arquitecto abre el proyectoThen cada tarjeta lleva su título sin ícono al lado y Cotizado y Avanzado se ven en Inter seminegrita de 22 px con números tabulares, más chicas si la baldosa es angosta pero sin partirse.
  21. US-113 Revisar, corregir y borrar los avances registrados

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  22. US-113 Revisar, corregir y borrar los avances registrados

    Iteración 27 · Cambio: Mejora de cumplimiento

    GREENfrontend 61a2882
  23. US-113 Revisar, corregir y borrar los avances registrados

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la corrección de un avanceWhen el usuario toca «Guardar corrección» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  24. US-113 Revisar, corregir y borrar los avances registrados

    v5.5 — iteracion-27: la fecha se elige en el calendario de la app

    BacklogCambioIteración 27
    • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Corregir avance»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Guardar corrección» se guarda la fecha elegida, sin correrse un día.
  25. US-113 Revisar, corregir y borrar los avances registrados

    v5.6 — iteracion-28: los avances registrados llegan de cinco en cinco

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Solo llega la página que se veGiven un proyecto con 37 avancesWhen abro su pantallaThen en «Avances registrados» llegan solo los 5 más recientes, cada uno con sus fotos, y el pie dice «1–5 de 37»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demás.
    • Cambio iteracion-28 - El documento de estado sigue trayendo todos los avancesGiven un proyecto con 45 avancesWhen genero su documento de estadoThen su tabla de avances trae los 45, en el orden en que se trabajaron, aunque la pantalla muestre cinco.
  26. US-15 Registrar un avance del proyecto

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  27. US-15 Registrar un avance del proyecto

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el registro de un avanceWhen el usuario lo abreThen ve un asterisco en Servicio, Cantidad, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Servicio» sin cumplirlo ve «Elige el servicio que avanzó» junto al campo.
  28. US-23 Generar el comprobante/PDF de estado del proyecto

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  29. US-23 Generar el comprobante/PDF de estado del proyecto

    v5.3 — iteracion-25: el estado del proyecto imprime el folio del proyecto

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio del estado del proyectoGiven un proyecto iniciado con folio «PRO-3»When se genera su estadoThen el PDF dice «Folio: PRO-3».
  30. US-113 Revisar, corregir y borrar los avances registrados

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  31. US-113 Revisar, corregir y borrar los avances registrados

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la corrección de un avanceWhen el usuario lo abreThen ve un asterisco en Cantidad, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Cantidad» sin cumplirlo ve «Escribe la cantidad que avanzó» junto al campo.
  32. US-14 Iniciar un proyecto desde una cotización

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  33. US-15 Registrar un avance del proyecto

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  34. US-16 Adjuntar evidencia fotográfica a un avance

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  35. US-17 Consultar el avance del proyecto

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  36. US-16 Adjuntar evidencia fotográfica a un avance

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  37. US-16 Adjuntar evidencia fotográfica a un avance

    v4.4 — iteracion-12: los archivos se aceptan por su contenido real

    BacklogBugIteración 12
    • Bug iteracion-12 - Archivo disfrazadoGiven un archivo cuyo contenido no corresponde a su tipoWhen se sube como evidencia, logotipo, textura, mobiliario o documentoThen se rechaza.
    • Bug iteracion-12 - Nombre y acceso propiosGiven un archivo aceptadoWhen se guardaThen lleva un nombre propio que no revela el originalAnd sólo se ve con un enlace temporal desde la aplicación.
  38. US-17 Consultar el avance del proyecto

    Iteración 13 · Cambio: US-67 Estado de error en Proyectos y su detalle

    GREENfrontend b65e628
  39. US-17 Consultar el avance del proyecto

    v4.5 — iteracion-13: el detalle del proyecto dice cuándo no cargó

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Error al cargar el detalleGiven que el detalle de un proyecto no se pudo cargarWhen se abreThen se explica que no se pudo cargarAnd hay un botón para reintentar.
  40. US-14 Iniciar un proyecto desde una cotización

    v1.0

    Backlog
    • Cambio v1.0 - Alta de inicio de proyectoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-14 de inicio de proyecto desde una cotización.
  41. US-14 Iniciar un proyecto desde una cotización

    v2.12

    Backlog
    • Cambio v2.12 - Sin paso previo de documentaciónGiven que iniciar un proyecto exigía generar antes el documento y elegir la cotización en una lista aparteWhen se amplía US-14 en v2.12Then arranca desde el detalle de la propia cotización.
  42. US-15 Registrar un avance del proyecto

    v1.0

    Backlog
    • Cambio v1.0 - Alta de registro de avances por cantidad o porcentajeGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-15 de registro de avances por cantidad o porcentaje sobre elementos cotizados.
  43. US-15 Registrar un avance del proyecto

    v1.1

    Backlog
    • Cambio v1.1 - Solo por cantidad y selector de pendientesGiven confusión con el avance por porcentajeWhen se refina US-15 en v1.1Then se elimina el registro por porcentaje (solo por cantidad)And el selector solo lista partidas con cantidad pendiente mostrando nombre + cantidad pendiente (máximo a registrar).
  44. US-15 Registrar un avance del proyecto

    v3.6

    Backlog
    • Cambio v3.6 - Texto alineado con el sistemaGiven que la descripción decía «por cantidad o por porcentaje»When se revisa US-15 en v3.6Then dice «por cantidad», porque el porcentaje se retiró en v1.1.
  45. US-16 Adjuntar evidencia fotográfica a un avance

    v1.0

    Backlog
    • Cambio v1.0 - Alta de evidencia fotográficaGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-16 de evidencia fotográfica en los avances.
  46. US-16 Adjuntar evidencia fotográfica a un avance

    v3.0

    Backlog
    • Cambio v3.0 - Las fotos de avance vuelven a subirGiven que todo salía declarado como JSON y un formulario con archivo viajaba sin su delimitadorWhen se corrige en v3.0Then la evidencia, las texturas y el logotipo se suben de verdad.
  47. US-16 Adjuntar evidencia fotográfica a un avance

    v3.1

    Backlog
    • Cambio v3.1 - La evidencia se veGiven que la foto se subía y no se volvía a verWhen se corrige en v3.1Then cada avance muestra sus fotos, se adjuntan en cualquier momento y se reducen antes de subir.
  48. US-17 Consultar el avance del proyecto

    v1.0

    Backlog
    • Cambio v1.0 - Alta de consulta de avanceGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-17 de consulta del avance acumulado del proyecto.
  49. US-23 Generar el comprobante/PDF de estado del proyecto

    v1.1

    Backlog
    • Cambio v1.1 - Alta de PDF de estado del proyectoGiven la necesidad de un resumen en cualquier momentoWhen se agrega US-23 en v1.1Then el proyecto genera un PDF con tablas de avances y pagos, visualizable y compartible.
  50. US-113 Revisar, corregir y borrar los avances registrados

    v3.1

    Backlog
    • Cambio v3.1 - Historial de avancesGiven que los avances sólo se leían en el documento de estadoWhen se agrega US-113 en v3.1Then se revisan, corrigen y borran en pantalla.
EPIC-06

Pagos

100%3 de 3 en GREEN

3 historias · aún sin integrar en develop

Detalles

Registrar pagos totales o parciales ligados a los elementos cotizados, con su comprobante y el cálculo del saldo pendiente. El pago lleva un monto y se asocia a los elementos que cubre.

  • GREEN 3
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
12 · 19 · 25 · 26 · 27 · 28
Último cambio
2026-11-01

Historias

  1. US-18 Registrar un pago total o parcial

    Como usuario autenticado quiero registrar un pago (total o parcial) con su monto ligado a los elementos avanzados para llevar el control del saldo pendiente.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Pago con método deja saldo por cobrarGiven un proyecto de 'Constructora Reyes' con total cotizado 5100 y sin pagosWhen el usuario registra un pago de 1000 con método 'transferencia'Then el valor pagado del proyecto es 1000And el pago queda registrado con su método 'transferencia'And el saldo por cobrar es 4100.
    2. Refinamiento v1.1 - Anticipo independiente del avanceGiven un proyecto con total cotizado 5100 y sin avances registradosWhen el usuario registra un pago (anticipo) de 2550 con método 'efectivo'Then el pago se registra correctamente aunque no exista avanceAnd el saldo por cobrar es 2550.
    3. Refinamiento v1.1 - Pago mayor al total genera saldo a favorGiven un proyecto con total cotizado 5100 y 5000 ya pagadosWhen el usuario registra un pago de 300Then el pago se registra sin topeAnd el total pagado es 5300And el sistema muestra un saldo a favor de 200And el saldo por cobrar es 0.
    4. Caso de borde - Método de pago por defecto efectivoGiven el usuario registrando un pago sin cambiar el métodoWhen guarda el pagoThen el pago se registra con el método 'efectivo' por defecto.
    5. Caso de borde - Monto de pago en ceroGiven el usuario registrando un pagoWhen ingresa un monto de 0Then el sistema muestra 'El monto del pago debe ser mayor a 0'And no registra el pago.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. Iteración 27 · Cambio: Mejora de cumplimiento

      GREENfrontend 61a2882
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven un pago con su monto, su método y su fechaWhen el usuario toca «Registrar pago» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. v5.5 — iteracion-27: la fecha se elige en el calendario de la app

      BacklogCambioIteración 27
      • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Registrar un pago»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar pago» se guarda la fecha elegida, sin correrse un día.
    6. v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

      BacklogBugIteración 27
      • Bug iteracion-27 - Hoy en el calendario de quien registraGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Registrar un pago»Then la fecha por omisión es la de hoy, no la de mañana.
    7. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    8. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el registro de un pagoWhen el usuario lo abreThen ve un asterisco en Monto del pago, Método, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Monto del pago» sin cumplirlo ve «Escribe el monto del pago» junto al campo.
    9. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    10. Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

      GREENbackend 073df9f
    11. v4.4 — iteracion-12: nadie alcanza los registros de otra cuenta

      BacklogBugIteración 12
      • Bug iteracion-12 - Pagos de otra cuentaGiven un proyecto de otra cuentaWhen alguien intenta registrarle un pago, ver su comprobante o su resumenThen el sistema responde como si el proyecto no existiera.
    12. v1.0

      Backlog
      • Cambio v1.0 - Alta de registro de pagosGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-18 de registro de pagos totales o parciales con saldo pendiente.
    13. v1.1

      Backlog
      • Cambio v1.1 - Método de pago y anticipos sin topeGiven la necesidad de cobrar anticipos y distinguir la forma de pagoWhen se refina US-18 en v1.1Then el pago lleva método (efectivo por defecto / transferencia)And se permiten pagos sin tope, independientes del avance; si lo pagado supera el total cotizado se muestra un saldo a favor (saldo por cobrar = máx(cotizado − pagado, 0)).

    Formulario

    • Obligatorios Monto del pago, Método, Fecha
    • Catálogo Método de Métodos de pago (cerrado: lista fija)
    • Mensaje Monto del pago: «Escribe el monto del pago»
    • Mensaje Fecha: «Elige la fecha del pago»
  2. US-19 Generar el comprobante de pago

    Como usuario autenticado quiero generar el comprobante de un pago para entregárselo a mi cliente como constancia.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Comprobante PDF por pago con visualizar/compartirGiven un pago de 1000 con método 'transferencia' en el proyecto de 'Constructora Reyes'When el usuario genera el comprobante de ese pago desde el listado de pagosThen se produce un PDF con el cliente, la fecha, el monto 1000, el método 'transferencia' y el saldo por cobrar resultanteAnd el usuario puede visualizarlo o compartirlo.
    2. Caso alternativo - Proyecto sin pagosGiven un proyecto sin pagos registradosWhen el usuario abre el listado de pagosThen no hay comprobantes para generar.
    3. Caso de borde - Cada pago tiene su propio comprobanteGiven dos pagos registrados en el proyecto (1000 y 500)When el usuario genera el comprobante del segundo pagoThen el comprobante corresponde al pago de 500 con su fecha y su métodoAnd no mezcla los montos de otros pagos.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 479beb1
    2. Iteración 27 · Bug: Los comprobantes ya no salen con el día anterior (pruebas de PDF fuera de UTC)

      GREENfrontend 81ba04f
    3. v5.5 — iteracion-27: el comprobante dice la fecha del pago

      BacklogBugIteración 27
      • Bug iteracion-27 - El comprobante no corre la fechaGiven un pago del 15 de enero de 2026When el arquitecto, en México, ve o comparte su comprobanteThen el documento dice «15 de enero de 2026», no el 14.
    4. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    5. v5.3 — iteracion-25: el comprobante de pago imprime su folio

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio del comprobante de pagoGiven un pago registrado con folio «REC-12»When se genera su comprobanteThen el PDF dice «Folio: REC-12» y el archivo se llama «REC-12.pdf».
    6. v1.0

      Backlog
      • Cambio v1.0 - Alta de comprobante de pagoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-19 de generación del comprobante de pago.
    7. v1.1

      Backlog
      • Cambio v1.1 - Comprobante PDF por pago con compartirGiven el listado de pagosWhen se refina US-19 en v1.1Then cada pago puede generar su comprobante en PDF (con su método) con opciones de visualizar y compartir.
  3. US-20 Consultar pagos y saldo del proyecto

    Como usuario autenticado quiero consultar los pagos recibidos y el saldo pendiente del proyecto para saber cuánto me falta por cobrar.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Estado de cobros con método y saldo por cobrarGiven un proyecto con total cotizado 5100 y pagos por 1000When el usuario abre el estado de cobros del proyectoThen ve la lista de pagos con su fecha, monto y método, el total pagado 1000 y el saldo por cobrar 4100.
    2. Caso alternativo - Proyecto sin pagosGiven un proyecto con total cotizado 5100 y sin pagosWhen el usuario abre el estado de cobrosThen ve el total pagado 0And el saldo por cobrar 5100.
    3. Caso de borde - Proyecto totalmente pagadoGiven un proyecto cuyo total pagado iguala al total cotizado 5100When el usuario abre el estado de cobrosThen el saldo por cobrar es 0And el sistema indica 'Sin saldo pendiente'.
    4. Caso de borde - Saldo a favor cuando lo pagado supera lo cotizadoGiven un proyecto con total cotizado 5100 y pagos por 5300When el usuario abre el estado de cobrosThen el saldo por cobrar es 0And el sistema muestra un saldo a favor de 200.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 479beb1
    2. v5.6 — iteracion-28: los cobros dicen si no hay o si no se pudieron cargar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Sin pagos lo diceGiven un proyecto sin pagos registradosWhen el arquitecto abre CobrosThen debajo de Pagado y Pendiente se lee «Todavía no hay pagos registrados.» y el formulario «Registrar un pago» sigue a la vista.
      • Cambio iteracion-28 - Los pagos que no cargaron se pueden volver a pedirGiven la consulta de los pagos del proyecto fallaWhen el arquitecto abre CobrosThen se lee «No se pudieron cargar los pagos.» con el motivo y el botón «Reintentar», sin esconder las cifras ni el formularioAnd al tocar «Reintentar» vuelve a pedir la página y la muestra.
    3. v5.6 — iteracion-28: si las cifras de los cobros no llegan, Cobros lo dice y deja reintentar, sin «$0.00»

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si las cifras de los cobros no llegan, Cobros lo dice y deja reintentarGiven la persona abre un proyectoAnd el servidor no entrega el resumen de sus cobrosWhen se pinta CobrosThen en lugar de «Pagado» y «Pendiente» dice «No se pudieron cargar las cifras de los cobros.» con el motivo del servidor y el botón «Reintentar»And nunca enseña «$0.00»And los pagos registrados y el formulario para registrar un pago siguen ahíAnd al tocar «Reintentar» aparecen las cifras.
    4. v5.6 — iteracion-28: los cobros llegan de cinco en cinco

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Solo llega la página que se veGiven un proyecto con 23 pagosWhen abro su estado de cobrosThen llegan solo 5 pagos, cada uno con su fecha, monto y método, y el pie dice «1–5 de 23»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demásAnd el total pagado y el saldo por cobrar son los de los 23.
      • Cambio iteracion-28 - El documento de estado sigue trayendo todos los pagosGiven un proyecto con 30 pagosWhen genero su documento de estadoThen su tabla de pagos trae los 30, con su fecha, método y monto, aunque la pantalla muestre cinco.
    5. v5.6 — iteracion-28: lo pagado en verde

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Lo pagado y lo pendiente con su color de estadoGiven un proyecto con pagos registrados y saldo pendienteWhen el arquitecto abre CobrosThen «Pagado» se ve en verde y «Pendiente» en ocre, las dos cifras en Inter seminegrita de 22 px con números tabulares, y cuando ya no queda saldo «Pendiente» se ve en verde.
    6. Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

      GREENfrontend 666de59
    7. v1.0

      Backlog
      • Cambio v1.0 - Alta de consulta de pagos y saldoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-20 de consulta de pagos recibidos y saldo pendiente.
    8. v1.1

      Backlog
      • Cambio v1.1 - Saldo por cobrar sobre el cotizado, saldo a favor y método visibleGiven el soporte de anticipos sin topeWhen se refina US-20 en v1.1Then el saldo por cobrar = máx(cotizado − pagado, 0), si lo pagado supera lo cotizado se muestra un saldo a favor,And la lista de pagos muestra el método de cada pago.

    Lista

    • Página 5 registros por página
    • Orden Fecha del pago, del más antiguo al más reciente
    • Acciones de fila Ver comprobante, Enviar comprobante, Compartir comprobante
    • Sin lote Enviar comprobante: cada comprobante va al cliente por el pago que hizo, con su propio correo
    • Sin lote Compartir comprobante: se comparte desde el teléfono, uno por uno, con quien lo pide

Últimos cambios

  1. US-18 Registrar un pago total o parcial

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-19 Generar el comprobante de pago

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 479beb1
  3. US-20 Consultar pagos y saldo del proyecto

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 479beb1
  4. US-20 Consultar pagos y saldo del proyecto

    v5.6 — iteracion-28: los cobros dicen si no hay o si no se pudieron cargar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Sin pagos lo diceGiven un proyecto sin pagos registradosWhen el arquitecto abre CobrosThen debajo de Pagado y Pendiente se lee «Todavía no hay pagos registrados.» y el formulario «Registrar un pago» sigue a la vista.
    • Cambio iteracion-28 - Los pagos que no cargaron se pueden volver a pedirGiven la consulta de los pagos del proyecto fallaWhen el arquitecto abre CobrosThen se lee «No se pudieron cargar los pagos.» con el motivo y el botón «Reintentar», sin esconder las cifras ni el formularioAnd al tocar «Reintentar» vuelve a pedir la página y la muestra.
  5. US-20 Consultar pagos y saldo del proyecto

    v5.6 — iteracion-28: si las cifras de los cobros no llegan, Cobros lo dice y deja reintentar, sin «$0.00»

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si las cifras de los cobros no llegan, Cobros lo dice y deja reintentarGiven la persona abre un proyectoAnd el servidor no entrega el resumen de sus cobrosWhen se pinta CobrosThen en lugar de «Pagado» y «Pendiente» dice «No se pudieron cargar las cifras de los cobros.» con el motivo del servidor y el botón «Reintentar»And nunca enseña «$0.00»And los pagos registrados y el formulario para registrar un pago siguen ahíAnd al tocar «Reintentar» aparecen las cifras.
  6. US-18 Registrar un pago total o parcial

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  7. US-18 Registrar un pago total o parcial

    Iteración 27 · Cambio: Mejora de cumplimiento

    GREENfrontend 61a2882
  8. US-18 Registrar un pago total o parcial

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven un pago con su monto, su método y su fechaWhen el usuario toca «Registrar pago» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  9. US-18 Registrar un pago total o parcial

    v5.5 — iteracion-27: la fecha se elige en el calendario de la app

    BacklogCambioIteración 27
    • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Registrar un pago»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar pago» se guarda la fecha elegida, sin correrse un día.
  10. US-18 Registrar un pago total o parcial

    v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

    BacklogBugIteración 27
    • Bug iteracion-27 - Hoy en el calendario de quien registraGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Registrar un pago»Then la fecha por omisión es la de hoy, no la de mañana.
  11. US-19 Generar el comprobante de pago

    Iteración 27 · Bug: Los comprobantes ya no salen con el día anterior (pruebas de PDF fuera de UTC)

    GREENfrontend 81ba04f
  12. US-19 Generar el comprobante de pago

    v5.5 — iteracion-27: el comprobante dice la fecha del pago

    BacklogBugIteración 27
    • Bug iteracion-27 - El comprobante no corre la fechaGiven un pago del 15 de enero de 2026When el arquitecto, en México, ve o comparte su comprobanteThen el documento dice «15 de enero de 2026», no el 14.
  13. US-20 Consultar pagos y saldo del proyecto

    v5.6 — iteracion-28: los cobros llegan de cinco en cinco

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Solo llega la página que se veGiven un proyecto con 23 pagosWhen abro su estado de cobrosThen llegan solo 5 pagos, cada uno con su fecha, monto y método, y el pie dice «1–5 de 23»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demásAnd el total pagado y el saldo por cobrar son los de los 23.
    • Cambio iteracion-28 - El documento de estado sigue trayendo todos los pagosGiven un proyecto con 30 pagosWhen genero su documento de estadoThen su tabla de pagos trae los 30, con su fecha, método y monto, aunque la pantalla muestre cinco.
  14. US-20 Consultar pagos y saldo del proyecto

    v5.6 — iteracion-28: lo pagado en verde

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Lo pagado y lo pendiente con su color de estadoGiven un proyecto con pagos registrados y saldo pendienteWhen el arquitecto abre CobrosThen «Pagado» se ve en verde y «Pendiente» en ocre, las dos cifras en Inter seminegrita de 22 px con números tabulares, y cuando ya no queda saldo «Pendiente» se ve en verde.
  15. US-18 Registrar un pago total o parcial

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  16. US-18 Registrar un pago total o parcial

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el registro de un pagoWhen el usuario lo abreThen ve un asterisco en Monto del pago, Método, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Monto del pago» sin cumplirlo ve «Escribe el monto del pago» junto al campo.
  17. US-19 Generar el comprobante de pago

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  18. US-19 Generar el comprobante de pago

    v5.3 — iteracion-25: el comprobante de pago imprime su folio

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio del comprobante de pagoGiven un pago registrado con folio «REC-12»When se genera su comprobanteThen el PDF dice «Folio: REC-12» y el archivo se llama «REC-12.pdf».
  19. US-18 Registrar un pago total o parcial

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  20. US-20 Consultar pagos y saldo del proyecto

    Iteración 19 · Bug: US-14 a US-20 El proyecto por nivel: Avance y Cobros lado a lado

    GREENfrontend 666de59
  21. US-18 Registrar un pago total o parcial

    Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

    GREENbackend 073df9f
  22. US-18 Registrar un pago total o parcial

    v4.4 — iteracion-12: nadie alcanza los registros de otra cuenta

    BacklogBugIteración 12
    • Bug iteracion-12 - Pagos de otra cuentaGiven un proyecto de otra cuentaWhen alguien intenta registrarle un pago, ver su comprobante o su resumenThen el sistema responde como si el proyecto no existiera.
  23. US-18 Registrar un pago total o parcial

    v1.0

    Backlog
    • Cambio v1.0 - Alta de registro de pagosGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-18 de registro de pagos totales o parciales con saldo pendiente.
  24. US-18 Registrar un pago total o parcial

    v1.1

    Backlog
    • Cambio v1.1 - Método de pago y anticipos sin topeGiven la necesidad de cobrar anticipos y distinguir la forma de pagoWhen se refina US-18 en v1.1Then el pago lleva método (efectivo por defecto / transferencia)And se permiten pagos sin tope, independientes del avance; si lo pagado supera el total cotizado se muestra un saldo a favor (saldo por cobrar = máx(cotizado − pagado, 0)).
  25. US-19 Generar el comprobante de pago

    v1.0

    Backlog
    • Cambio v1.0 - Alta de comprobante de pagoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-19 de generación del comprobante de pago.
  26. US-19 Generar el comprobante de pago

    v1.1

    Backlog
    • Cambio v1.1 - Comprobante PDF por pago con compartirGiven el listado de pagosWhen se refina US-19 en v1.1Then cada pago puede generar su comprobante en PDF (con su método) con opciones de visualizar y compartir.
  27. US-20 Consultar pagos y saldo del proyecto

    v1.0

    Backlog
    • Cambio v1.0 - Alta de consulta de pagos y saldoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-20 de consulta de pagos recibidos y saldo pendiente.
  28. US-20 Consultar pagos y saldo del proyecto

    v1.1

    Backlog
    • Cambio v1.1 - Saldo por cobrar sobre el cotizado, saldo a favor y método visibleGiven el soporte de anticipos sin topeWhen se refina US-20 en v1.1Then el saldo por cobrar = máx(cotizado − pagado, 0), si lo pagado supera lo cotizado se muestra un saldo a favor,And la lista de pagos muestra el método de cada pago.
EPIC-07

Cierre de proyecto

100%1 de 1 en GREEN

1 historia · aún sin integrar en develop

Detalles

Finalizar el proyecto y entregar un documento resumen con lo realizado, las fechas y la lista de pagos.

  • GREEN 1
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
25 · 26 · 28
Último cambio
2026-11-01

Historias

  1. US-21 Finalizar el proyecto y generar el documento resumen

    Como usuario autenticado quiero finalizar el proyecto y generar su documento resumen para entregar a mi cliente una constancia de lo realizado y pagado.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Cierre con documento resumenGiven un proyecto en curso con avances y pagos registrados y saldo pendiente 0When el usuario finaliza el proyectoThen el proyecto pasa a estado 'finalizado'And se genera un documento resumen con el listado de avances y sus fechas, el listado de pagos y los totales (cotizado, avanzado y pagado).
    2. Caso alternativo - Cierre con saldo pendienteGiven un proyecto con saldo pendiente de 1100When el usuario intenta finalizarloThen el sistema muestra la advertencia 'El proyecto tiene un saldo pendiente de cobro de 1100'And solo lo finaliza tras una confirmación explícita del usuario.
    3. Caso de borde - Proyecto ya finalizadoGiven un proyecto ya finalizadoWhen el usuario intenta registrar un nuevo avance o pagoThen el sistema lo impide y muestra 'El proyecto está finalizado'.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 409ce23
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven un proyecto en cursoWhen el usuario toca «Finalizar proyecto», o «Finalizar de todos modos» tras el aviso del saldo, y la respuesta tardaThen «Finalizar proyecto» muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el proyecto no se finaliza dos veces.
    4. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    5. v5.3 — iteracion-25: el documento resumen imprime el folio del proyecto

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio del documento resumenGiven un proyecto con folio «PRO-3»When se finaliza y se genera su documento resumenThen el PDF dice «Folio: PRO-3».
    6. v1.0

      Backlog
      • Cambio v1.0 - Alta de cierre de proyectoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-21 de finalización del proyecto y documento resumen.

Últimos cambios

  1. US-21 Finalizar el proyecto y generar el documento resumen

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 409ce23
  2. US-21 Finalizar el proyecto y generar el documento resumen

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  3. US-21 Finalizar el proyecto y generar el documento resumen

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven un proyecto en cursoWhen el usuario toca «Finalizar proyecto», o «Finalizar de todos modos» tras el aviso del saldo, y la respuesta tardaThen «Finalizar proyecto» muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd el proyecto no se finaliza dos veces.
  4. US-21 Finalizar el proyecto y generar el documento resumen

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  5. US-21 Finalizar el proyecto y generar el documento resumen

    v5.3 — iteracion-25: el documento resumen imprime el folio del proyecto

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio del documento resumenGiven un proyecto con folio «PRO-3»When se finaliza y se genera su documento resumenThen el PDF dice «Folio: PRO-3».
  6. US-21 Finalizar el proyecto y generar el documento resumen

    v1.0

    Backlog
    • Cambio v1.0 - Alta de cierre de proyectoGiven el MVP inicialWhen se define el backlog v1.0Then se incorpora la historia US-21 de finalización del proyecto y documento resumen.
EPIC-08

Identidad visual y experiencia de uso

100%17 de 17 en GREEN

17 historias · aún sin integrar en develop

Detalles

Interfaz rediseñada con identidad propia, mobile-first, navegación adaptable y jerarquía visual del dinero, conservando la lógica, los flujos y los contratos existentes.

  • GREEN 17
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
4 · 5 · 12 · 13 · 17 · 18 · 19 · 20 · 22 · 23 · 25 · 26 · 28 · 29
Último cambio
2026-11-01

Historias

  1. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Como usuario quiero una interfaz clara con identidad propia, cómoda en teléfono y escritorio, para trabajar en obra y cotizar con confianza.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Navegación adaptableGiven un usuario autenticado en un teléfonoWhen navega la aplicaciónThen dispone de una navegación inferior con las secciones Servicios, Clientes, Cotizaciones y ProyectosAnd en escritorio la navegación se muestra en la barra superior con la sección activa resaltada.
    2. Refinamiento - Jerarquía del dinero por estadoGiven un proyecto con montos cotizado, avanzado, pagado y por cobrarWhen el usuario ve el proyectoThen los montos se presentan como indicadores destacados con color por estado (pagado en verde, pendiente en ámbar).
    3. Caso de borde - Rediseño sin cambio de lógicaGiven los flujos existentes (registro, cotización, avances, pagos, cierre)When se aplica el rediseñoThen los campos, acciones y resultados siguen funcionando igualAnd no se rompe ninguna prueba existente.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. v5.6 — iteracion-28: marco con el Sidebar del kit y los niveles de Tailwind

      BacklogCambioIteración 28
      • Cambio iteracion-28 - La navegación por nivel con los cortes de TailwindGiven un usuario en la aplicaciónWhen la pantalla mide menos de 768 pxThen ve la barra inferior con Inicio, Cotizaciones, Proyectos, Planos y «Más»And de 768 a 1023 px ve el menú lateral reducido a riel de 80 px con cada ícono y su nombre corto debajoAnd desde 1024 px ve el menú lateral completo de 240 px con ícono y nombre.
      • Cambio iteracion-28 - El botón de menú en cada nivelGiven un usuario de 768 px o másWhen toca «Mostrar u ocultar menú»Then el menú lateral pasa de completo a riel, o al revés, con una transición de 200 msAnd en el riel, con ratón, el nombre completo aparece en una etiqueta al pasar el punteroAnd en un teléfono el mismo botón abre el cajón «Menú» con las siete secciones y la versión, que se cierra al elegir, al tocar fuera o con Esc.
      • Cambio iteracion-28 - Un formulario corto en el cajón inferiorGiven un usuario en un teléfonoWhen abre un formulario corto (nuevo cliente, nuevo servicio)Then el formulario sube en un cajón desde abajo con su título y «Cerrar»And un formulario largo (el armador, el registro de personal, «Pagar a…») ocupa la pantalla enteraAnd desde 768 px los dos son un diálogo centrado.
    3. Iteración 23 · Cambio: Hamburguesa en la barra superior: colapsa la barra lateral a íconos y en el teléfono abre un cajón con toda la navegación

      GREENfrontend 96d4825
    4. v5.2 — iteracion-23: hamburguesa que muestra u oculta el menú

      BacklogCambioIteración 23
      • Cambio iteracion-23 - La hamburguesa colapsa la barra lateralGiven un usuario en una pantalla de 600 px o másWhen toca la hamburguesa de la barra superiorThen la navegación lateral pasa de mostrar ícono y nombre a solo íconos, o al revés, con una transiciónAnd el contenido se reacomoda sin quedar tapado.
      • Cambio iteracion-23 - En el teléfono abre un cajónGiven un usuario en un teléfonoWhen toca la hamburguesaThen se abre un cajón con las siete secciones y la versiónAnd al elegir una sección, tocar fuera o pulsar Esc el cajón se cierraAnd la barra inferior con «Más» sigue igual.
    5. Iteración 19 · Cambio: US-24 El marco por nivel: barra inferior, riel y barra lateral

      GREENfrontend 59f3139
    6. Iteración 19 · Cambio: US-24 Formularios y diálogos por nivel: a pantalla completa en el teléfono

      GREENfrontend b42a643
    7. Niveles en MUI: compacto por debajo de 600 px, mediano de 600 a 899 y expandido desde 900 (1200 y 1536 afinan columnas y ancho). Riel de 80 px de 600 a 1199 px y barra lateral fija de 240 px desde 1200, en lugar de la barra superior. Contenedor de página de 1100 px (720 px para una sola tarea). Fuente: producto/5.0_Visual_Spec_Pantallas.md.

      Decisión
    8. La iteración 19 es la de diseño adaptativo (Visual Spec por nivel; ADP-F01 y PRO-05 de la auditoría de diseño del 2026-10-22), como pidió la persona responsable; la iteración de seguridad pasa a ser la 20.

      Decisión
    9. v1.1

      Backlog
      • Cambio v1.1 - Reconciliación del rediseño entregadoGiven el rediseño visual ya implementadoWhen se reconcilia el backlog en v1.1Then se registra US-24 con la identidad propia, mobile-first, navegación adaptable y jerarquía del dinero, sin alterar lógica ni flujos.
    10. v3.0

      Backlog
      • Cambio v3.0 - La barra del teléfono lleva lo de obraGiven siete destinos y cinco lugares en el pulgarWhen se refina en v3.0Then Planos ocupa un lugar en la barra y Servicios, Clientes y Personal pasan a «Más».
    11. v5.0

      Backlog
      • Cambio v5.0 - La navegación se acomoda por nivelGiven siete destinos y tres tamaños de pantallaWhen se refina en v5.0Then en el teléfono sigue la barra inferior con «Más», de 600 a 1199 px un riel con las siete secciones y desde 1200 px una barra lateral fija con la sección activa resaltada, en lugar de la barra superior.
  2. US-25 Instalar la app como PWA con shell offline básico

    Como usuario quiero instalar Itzaka como aplicación en mi dispositivo y que abra aunque no tenga conexión, para usarla cómodamente en obra.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Instalable como PWAGiven un usuario que abre Itzaka en un navegador compatibleWhen el navegador evalúa la aplicaciónThen ofrece instalarla en el dispositivoAnd la app declara su nombre, íconos y color de tema y se abre en modo standalone (sin barra del navegador).
    2. Flujo alterno - Apertura sin conexión (shell offline)Given un usuario que ya abrió la app instalada al menos una vezWhen abre la app sin conexión a internetThen la interfaz base (shell) carga correctamenteAnd se muestra un aviso de 'Sin conexión'.
    3. Caso de borde - Los datos requieren conexiónGiven la app abierta sin conexiónWhen el usuario intenta consultar o guardar datos (servicios, clientes, cotizaciones, pagos)Then el sistema indica que la acción requiere conexiónAnd no se pierde el trabajo visible en pantalla.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v1.2

      Backlog
      • Cambio v1.2 - Alta de PWA instalable con shell offlineGiven la app hasta ahora solo webWhen se agrega US-25 en v1.2Then la aplicación es instalable como PWA (manifest, íconos, theme-color, standalone) con un shell offline básico y aviso de sin conexión.
  3. US-26 Página de inicio pública del sitio (landing)

    Como visitante que llega al sitio quiero ver una página de inicio que explique qué es Itzaka y me invite a crear una cuenta o iniciar sesión, para entender el producto antes de registrarme.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Visitante sin sesión ve la landing en la raízGiven un visitante sin sesión iniciadaWhen abre la ruta "/" del sitioThen ve la página de inicio pública con la propuesta de valor de Itzaka (título/hero, descripción y beneficios)And NO es redirigido automáticamente a /login.
    2. Flujo principal - Llamados a la acción hacia registro e inicio de sesiónGiven un visitante en la página de inicioWhen observa la páginaThen existe un llamado a la acción "Crear cuenta" que lleva a /registerAnd existe un llamado a la acción "Iniciar sesión" que lleva a /login.
    3. Flujo alterno - Visitante autenticado entra directo a su appGiven un visitante con sesión activaWhen abre la ruta "/" del sitioThen es llevado a su aplicación (área privada) en lugar de ver la landing pública.
    4. Caso de borde - Coherencia con la identidad visualGiven la página de inicio públicaWhen se renderizaThen usa la marca y los tokens del design system aprobado (logotipo, color primario y tipografía)And es utilizable en móvil (mobile-first, sin desbordes horizontales).

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend c5e18a3
    3. v5.7 — iteracion-29: la insignia del héroe

      BacklogCambioIteración 29
      • Cambio iteracion-29 - La insignia del héroeGiven un visitante en la página de inicioWhen ve el héroeThen «El cotizador de obra para arquitectos» aparece como la insignia del sistema de diseño, con su borde, el punto de obsidiana y el texto legible en claro y en oscuro.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    5. v5.3 — iteracion-25: las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
    6. Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

      GREENfrontend 1fd8e20
    7. v1.3

      Backlog
      • Cambio v1.3 - Alta de página de inicio públicaGiven que la ruta "/" hasta ahora redirigía a /loginWhen se agrega US-26 en v1.3Then "/" muestra una landing pública con hero, propuesta de valor y CTAs a /register y /login, preservando el acceso directo a la app para usuarios autenticados. Supuesto: interpretación A (landing pública); pendiente confirmar A vs B (home/dashboard autenticado) en GATE 1.
  4. US-70 Saber quién hizo Itzaka

    Como visitante quiero ver al final de la página de inicio quién la hizo, para conocer a quién está detrás de la herramienta.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - La firma cierra la páginaGiven la página de inicioWhen el visitante llega hasta el finalThen lee «Hecho por Grupo Torres Muciño».
    2. Flujo principal - El nombre lleva a su sitioGiven la firma del pieWhen el visitante la tocaThen se abre el sitio de Grupo Torres Muciño en otra pestaña, sin dejarle acceso a la que estaba leyendo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. v2.14

      Backlog
      • Cambio v2.14 - La landing se firmaGiven que la página no decía quién la había hechoWhen se agrega US-70 en v2.14Then su pie lleva la firma de quien la hizo.
  5. US-77 Recorrer listas largas por páginas

    Como arquitecto quiero que las listas se muestren por páginas, para no recorrer cientos de filas cuando busco una y para saber cuántas tengo.

    GREEN2026-10-23backend · frontend

    Criterios de aceptación

    1. Flujo principal - Una lista larga se corta en páginasGiven una lista con más filas de las que caben en una páginaWhen el usuario la miraThen ve solo las de la primera página y cuántas hay en total.
    2. Flujo principal - Ir a otra páginaGiven una lista paginadaWhen el usuario toca la página siguiente o un númeroThen ve esas filas y el conteo se actualiza.
    3. Flujo principal - El mismo pie en todas las listasGiven servicios, clientes, cotizaciones, proyectos, planos y los cobros de un proyectoWhen el usuario recorre cualquieraThen encuentra el mismo pie de paginación en el mismo lugar.
    4. Caso de borde - Una lista que cabe enteraGiven una lista que cabe en una páginaWhen el usuario la miraThen igual lee cuántas filas tiene, y no hay página siguiente a la que ir.
    5. Caso de borde - La página deja de existirGiven el usuario en la última páginaWhen esa página se queda sin filasThen la lista retrocede sola en lugar de quedarse en blanco.
    6. Caso de borde - Cuántas filas por páginaGiven una lista en el escritorioWhen el usuario elige otro tamaño de páginaThen se muestran esas filas desde la primera página.

    Historial de cambios

    1. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend be8883c
    2. Iteración 18 · Bug: US-77 · US-79 Abrir una lista hace una sola petición

      GREENfrontend e5fdfc6
    3. La iteración 18 es el arreglo de producción 3.8.1 (abrir una lista hace una sola petición): un arreglo sobre lo que ya está en producción es su propia iteración. La iteración de seguridad acordada pasa a ser la 19.

      Decisión
    4. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 69f222a
    5. v4.9 — iteracion-17: el servidor corta las páginas

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Solo llega la página que se miraGiven cualquier lista con 45 registrosWhen el usuario la abreThen el servidor entrega solo los 20 de la página y el total, y el contador dice «1–20 de 45».
      • Cambio iteracion-17 - Tamaños de páginaGiven una lista en el escritorioWhen el usuario elige cuántas filas verThen puede elegir 10, 20, 50 o 100, con 20 por omisión, y la lista vuelve a la página 1.
      • Cambio iteracion-17 - La lista se conserva al recargar o compartirGiven el usuario en la página 3 de Clientes con una búsqueda, un filtro y un ordenWhen recarga o comparte el enlaceThen la lista vuelve igual: misma página, búsqueda, filtros y orden.
    6. v2.15

      Backlog
      • Cambio v2.15 - Nacen las páginasGiven que cada lista se dibujaba entera, por larga que fueraWhen se agrega US-77 en v2.15Then todas se recorren por páginas con el mismo pie.
    7. v3.0

      Backlog
      • Cambio v3.0 - El paginador aparece cuando hace faltaGiven un panel que pide páginas de cinco con menos de cinco registrosWhen se corrige en v3.0Then no muestra paginador.
  6. US-79 Encontrar algo en una lista larga

    Como arquitecto quiero buscar, filtrar y ordenar mis listas, para llegar a lo que busco sin recorrer páginas.

    GREEN2026-10-30backend · frontend

    Criterios de aceptación

    1. Flujo principal - Buscar deja solo lo que coincideGiven una lista con su buscadorWhen el usuario escribe parte de un nombreThen la lista muestra solo lo que coincide y dice cuántas filas quedaron de cuántas.
    2. Flujo principal - La búsqueda no exige escribir los acentosGiven un cliente llamado «Muciño»When el usuario escribe «mucino»Then lo encuentra igual.
    3. Flujo principal - Filtrar por estado o por tipoGiven la lista de cotizaciones, proyectos o serviciosWhen el usuario toca un filtroThen quedan solo las filas de ese estado o de esa unidad.
    4. Flujo principal - Ordenar por lo que importaGiven una listaWhen el usuario elige un orden —más reciente, mayor importe, nombre—Then la lista se reordena y las cotizaciones muestran su fecha para poder juzgarlo.
    5. Caso alternativo - Una búsqueda sin resultadosGiven una búsqueda que no coincide con nadaWhen la lista se dibujaThen dice que nada coincide, y no el mensaje de que la lista está vacía.
    6. Caso de borde - Buscar desde la tercera páginaGiven el usuario en una página avanzadaWhen busca o cambia un filtroThen vuelve a la primera página, en lugar de ver una pantalla vacía.
    7. Flujo principal - Solo el buscador ocupa lugarGiven una listaWhen el usuario la abreThen ve el buscador y un botón de embudo, y ni los filtros ni el orden ocupan sitio hasta que los pide.
    8. Flujo principal - El embudo despliega filtros y ordenGiven la barra de una listaWhen el usuario toca el embudoThen se despliegan los filtros, y en el teléfono también el ordenAnd al tocarlo de nuevo se plieganAnd en la tabla, desde 900 px, el orden se elige desde el encabezado de cada columna y el embudo se llama «Filtros».
    9. Caso de borde - Un filtro puesto que no se veGiven un filtro activo con el panel plegadoWhen el usuario mira la listaThen el embudo está marcado y la barra dice cuántas filas quedaron de cuántas, para que una lista filtrada no parezca una lista que perdió registros.
    10. Caso de borde - Sin acotar, el conteo no se repiteGiven una lista sin búsqueda ni filtroWhen el usuario la miraThen el conteo no aparece en la barra, porque el paginador ya dice cuántas filas hay.

    Historial de cambios

    1. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    2. v5.3 — iteracion-25: el orden en el encabezado de la tabla

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Encabezado en la tabla, «Ordenar por» en el teléfonoGiven una listaWhen se ve como tabla, desde 900 pxThen se ordena desde el encabezado y el embudo solo filtra («Filtros»)And en el teléfono el orden sigue en «Ordenar por», dentro del embudo, con el mismo orden del servidor y en la URL.
    3. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend be8883c
    4. Iteración 18 · Bug: US-77 · US-79 Abrir una lista hace una sola petición

      GREENfrontend e5fdfc6
    5. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 69f222a
    6. v4.9 — iteracion-17: buscar, filtrar y ordenar los hace el servidor

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Una petición al dejar de escribirWhen el usuario escribe «muci» en BuscarThen la lista pide al servidor una sola vez, al dejar de escribir, y no una vez por tecla.
      • Cambio iteracion-17 - Una sola letra no buscaWhen el usuario escribe una sola letraThen la lista no cambiaAnd al borrar la búsqueda vuelve la lista completa.
      • Cambio iteracion-17 - Sin acentos también en el servidorGiven un cliente «Muciño» en la página 3When el usuario busca «mucino»Then lo encuentra.
      • Cambio iteracion-17 - El total, el filtro y el orden son de todoGiven 45 cotizacionesWhen el usuario filtra o ordenaThen el contador y el primer registro corresponden a las 45, no a la página que tenía en pantalla.
      • Cambio iteracion-17 - Limpiar filtrosGiven una búsqueda y un filtro activosWhen el usuario toca «Limpiar filtros»Then vuelve la lista completa en la página 1, con el mismo orden.
    7. v2.16

      Backlog
      • Cambio v2.16 - Las listas se pueden recorrer con criterioGiven que la única forma de encontrar algo era pasar páginasWhen se agrega US-79 en v2.16Then cada lista tiene su buscador, sus filtros y su orden.
    8. v2.17

      Backlog
      • Cambio v2.17 - Los filtros se guardan detrás de un embudoGiven que filtros y orden desplegados ocupaban cinco renglones antes de la primera filaWhen se amplía US-79 en v2.17Then solo el buscador queda a la vista y lo demás se despliega a petición.
  7. US-80 Ver las listas con el formato que cada pantalla permite

    Como arquitecto quiero que en el escritorio mis listas sean tablas con columnas, para comparar de un vistazo sin perder la lectura cómoda del teléfono.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - En el teléfono, una fila apiladaGiven un teléfonoWhen el usuario mira una listaThen cada registro se apila: el nombre arriba, sus datos debajo en chico y el importe a la derecha.
    2. Flujo principal - En el escritorio, una tablaGiven una pantalla anchaWhen el usuario mira la misma listaThen la ve como tabla con sus encabezados de columna.
    3. Flujo principal - Cada fila se abre con el dedo y con el tecladoGiven una lista cuyas filas llevan a una pantallaWhen el usuario toca una, o la enfoca y pulsa EnterThen se abre.
    4. Caso de borde - El dato aparece una sola vezGiven cualquiera de las dos formasWhen un lector de pantalla recorre la listaThen lee cada dato una vez, porque solo se dibuja la forma que corresponde.
    5. Caso de borde - Un dato ausente no deja separadores colgandoGiven un servicio sin descripciónWhen se dibuja su filaThen no aparece el punto que separaría dos datos.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend c5e18a3
    3. v5.7 — iteracion-29: el aviso de una acción en lote que falla se queda

      BacklogCambioIteración 29
      • Cambio iteracion-29 - El aviso de una acción en lote que falla se quedaGiven el usuario aplica una acción en lote a varios registrosWhen alguno o ninguno se puedeThen el aviso dice cuántos sí, cuántos no y el motivo del servidorAnd se queda a la vista hasta que lo cierra con «Cerrar», con el mismo comportamiento que los demás avisos de error de la aplicación.
    4. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    5. v5.4 — iteracion-26: la acción en lote dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Acción en lote en cursoGiven varios registros seleccionadosWhen el usuario corre una acción en lote y la respuesta tardaThen esa acción muestra el indicador de carga del sistema junto a su textoAnd las demás acciones esperan deshabilitadasAnd si la acción está en «Más», el indicador va en «Más».
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    7. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven una lista en el teléfonoWhen el usuario llega con el teclado a lo que abre cada filaThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    8. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENfrontend e5fdfc6
    9. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENfrontend ee5e9b8
    10. v4.9 — iteracion-17: seleccionar y actuar en lote en cada formato

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Seleccionar en la tabla y en el teléfonoGiven una lista con acciones en loteWhen el usuario marca filas, en la tabla o en las filas apiladas del teléfonoThen ve una barra con cuántas seleccionó y las acciones que aplican.
      • Cambio iteracion-17 - La casilla del encabezado es de la páginaWhen el usuario marca la casilla del encabezadoThen se seleccionan las filas de la páginaAnd si hay más resultados se le ofrece «Seleccionar los N resultados».
      • Cambio iteracion-17 - La selección se borra al cambiar la búsqueda o el filtroGiven 3 filas seleccionadasWhen el usuario cambia la búsqueda o un filtroThen la selección se borra.
      • Cambio iteracion-17 - Quitar la selecciónGiven filas seleccionadasWhen el usuario toca «Quitar selección» o pulsa EscThen ya no hay nada seleccionado y la barra desaparece.
    11. v2.16

      Backlog
      • Cambio v2.16 - El patrón documentado se implementaGiven que el design system describía DataList desde el principio y ninguna pantalla lo usabaWhen se agrega US-80 en v2.16Then las listas lo comparten.
    12. v3.0

      Backlog
      • Cambio v3.0 - Filas sin flechaGiven una tabla cuyas filas terminaban en una flecha que no decía nadaWhen se refina en v3.0Then la fila entera es la que se toca y la flecha desaparece.
  8. US-83 Preguntar antes de abrir una cuenta

    Como arquitecto que todavía no se decide quiero escribirle a alguien desde la propia página, para resolver mis dudas sin tener que registrarme primero.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Dejar un mensaje sin cuentaGiven la página de inicioWhen el visitante deja su nombre y un teléfono o un correoThen el mensaje llega y se le confirma que lo contactarán.
    2. Flujo principal - El mensaje es opcionalGiven el formulario de contactoWhen el visitante solo deja su nombre y su teléfonoThen puede enviarlo: obligar a redactar ahuyenta a quien solo quería preguntar el precio.
    3. Caso alternativo - Sin forma de responderGiven un mensaje sin teléfono ni correoWhen se intenta enviarThen se pide uno de los dos, porque un mensaje al que no se puede responder no sirve.
    4. Caso de borde - Los mensajes se leen, no se consultanGiven la API públicaWhen alguien intenta listar los mensajesThen no puede: se dejan desde la página y se leen desde la administración.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el formulario de contactoWhen el usuario lo abreThen ve un asterisco en Tu nombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Tu nombre» sin cumplirlo ve «Dinos cómo te llamas» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Enviar mensaje» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

      GREENbackend 6e7cc23
    6. Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

      GREENbackend 57daef9
    7. v4.4 — iteracion-12: los formularios públicos rechazan robots

      BacklogBugIteración 12
      • Bug iteracion-12 - Envío automatizadoGiven el formulario de contacto, registro o recuperaciónWhen un robot lo envíaThen se rechazaAnd la persona real no ve ningún paso extra.
      • Bug iteracion-12 - Verificación no disponibleGiven que la verificación anti-robots no respondeWhen se envía el registro o la recuperaciónThen se pide intentar más tardeAnd el contacto se recibe marcado para revisión.
    8. v4.5 — iteracion-13: el teléfono del mensaje de contacto se valida

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
      • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
    9. v2.18

      Backlog
      • Cambio v2.18 - La página gana una salidaGiven que la página terminaba en «Crea tu cuenta gratis» y quien dudaba se iba sin dejar rastroWhen se agrega US-83 en v2.18Then hay dónde escribir.

    Formulario

    • Obligatorios Tu nombre
    • Mensaje Tu nombre: «Dinos cómo te llamas»
    • Mensaje Teléfono o correo: «Déjanos un teléfono o un correo para poder responderte»
  9. US-84 Entender qué hace Itzaka antes de registrarme

    Como visitante quiero ver todo lo que hace la herramienta y que me resuelvan las dudas típicas, para decidir si me sirve.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - El editor de planos se cuentaGiven la página de inicioWhen el visitante la recorreThen encuentra que Itzaka dibuja planos con medidas reales, los muestra en 3D y los exporta.
    2. Flujo principal - Las dudas típicas, respondidasGiven la página de inicioWhen el visitante llega a las preguntasThen lee qué cuesta, si funciona sin señal en la obra, si los documentos salen con el nombre de su despacho, si puede mandarlos por WhatsApp, quién ve sus precios y qué pasa si se equivocó.
    3. Caso de borde - Sin señal no se promete lo que no haceGiven la pregunta «¿Funciona en la obra, donde no hay señal?»When el visitante la leeThen la respuesta dice que la app se instala y abre sin señal avisando que no hay conexión, y que consultar y guardar necesitan internet; no promete guardar ni sincronizar sin conexión.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    3. v5.3 — iteracion-25: las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
    4. v2.18

      Backlog
      • Cambio v2.18 - Lo construido se comunicaGiven que el editor de planos existía desde hacía meses y la página no lo nombraba ni una vezWhen se agrega US-84 en v2.18Then lo cuenta.
    5. v3.5

      Backlog
      • Cambio v3.5 - La respuesta sobre la señal, corregidaGiven que la respuesta prometía que lo capturado sin señal se guardaba y se sincronizabaWhen se contrasta con la auditoría (documento 20, sección 4.2)Then se corrige para decir lo que la app hace.
  10. US-85 Que me encuentren y que el enlace se vea bien al compartirlo

    Como dueño del producto quiero que la página se indexe y que al compartirla por WhatsApp se vea una tarjeta decente, para que el boca a boca funcione.

    GREEN2026-10-20frontend

    Criterios de aceptación

    1. Flujo principal - El enlace compartido muestra una tarjetaGiven el enlace de la páginaWhen se pega en WhatsApp o en una redThen se ve el título, la descripción y una imagen propia de 1200×630, porque esas etiquetas viven en el HTML y no las pone la aplicación.
    2. Flujo principal - El título dice qué es y para quiénGiven un resultado de búsquedaWhen aparece la páginaThen su título habla de un cotizador de obra para arquitectos, y no solo de la marca.
    3. Flujo principal - El buscador sabe dónde mirarGiven un rastreadorWhen pide robots.txt y sitemap.xmlThen recibe un robots.txt de verdad y un mapa con las páginas públicas, no el HTML de la aplicación.
    4. Caso de borde - Sin ejecutar JavaScriptGiven un rastreador que no ejecuta scriptsWhen lee la páginaThen encuentra el titular, lo que hace el producto y los enlaces para registrarse o entrar.

    Historial de cambios

    1. Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

      GREENfrontend 1fd8e20
    2. v4.4 — iteracion-12: enlaces y cabeceras del sitio

      BacklogCambioIteración 12
      • Cambio iteracion-12 - Dirección del sitioGiven cualquier página públicaWhen un buscador la lee o alguien comparte el enlaceThen la dirección, el mapa del sitio y la imagen apuntan a cuotreka.vercel.app.
      • Cambio iteracion-12 - Título por pantallaGiven cualquier pantallaWhen se abreThen la pestaña del navegador muestra su propio título.
    3. v2.18

      Backlog
      • Cambio v2.18 - El sitio deja de ser invisibleGiven que no había etiquetas sociales, ni canonical, ni sitemap, que robots.txt devolvía el HTML de la aplicación y que el cuerpo estaba vacíoWhen se agrega US-85 en v2.18Then hay algo que leer y algo que mostrar.
  11. US-88 Que la aplicación me enseñe a usarla

    Como arquitecto que entra por primera vez quiero que la propia aplicación me lleve de la mano a registrar un cliente, registrar un servicio y crear una cotización, para no tener que adivinar por dónde se empieza.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - La guía se ofrece donde hace faltaGiven una lista vacía de clientesWhen entro a ClientesThen la guía de registrar un cliente se ofrece sola, empezando por el paso que corresponde a esa pantalla, y sólo se ofrece una guía por visita.
    2. Flujo principal - La guía señala el elemento de verdadGiven una guía en cursoWhen se muestra un pasoThen se oscurece la pantalla salvo el elemento real del paso, y la tarjeta dice qué hacer, en qué punto del recorrido voy y cómo salir.
    3. Flujo principal - Los datos los capturo yoGiven el paso de un campoWhen escribo o elijo un valorThen «Siguiente» se habilita, y la guía nunca rellena datos ni envía nada por mí.
    4. Flujo principal - La guía termina con el alta realGiven el último pasoWhen toco el botón de guardar y el registro se creaThen el cliente, el servicio o la cotización quedan guardados de verdad y la guía se marca como vista.
    5. Caso alternativo - La validación detiene el envíoGiven el último paso con un campo obligatorio vacíoWhen toco guardarThen la guía se queda en el formulario, señala el campo marcado y no se da por vista.
    6. Caso alternativo - Puedo salirme cuando quieraGiven una guía en cursoWhen toco «Omitir» o pulso EscapeThen la guía se cierra, queda marcada como omitida y la pantalla sigue intacta.
    7. Caso alternativo - Me salgo del flujoGiven una guía en cursoWhen navego a otra pantallaThen la guía se pausa y ofrece retomarla o cerrarla, en vez de seguirme por la aplicación.
    8. Caso de borde - Recargo la página a mediasGiven una guía a medio recorrerWhen recargo la aplicaciónThen vuelve en el mismo paso, y si la guía cambió de versión se descarta la sesión vieja.
    9. Caso de borde - Un elemento no apareceGiven un paso cuyo elemento no llega a la pantallaWhen se agota su esperaThen la guía se pausa y avisa en consola, sin romper la aplicación ni bloquear la pantalla.
    10. Flujo principal - Las guías están siempre a manoGiven el menú de la cuentaWhen abro «Guías»Then veo las tres con su estado —sin ver, a medias, vista u omitida— y puedo tomarlas o repetirlas.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 28 · Bug: Las guías de escritorio ya no se pausan solas en el paso 2

      GREENfrontend ca13b72
    3. v5.6 — iteracion-28: la ayuda del editor se abre también con el dedo

      BacklogCambioIteración 28
      • Cambio iteracion-28 - La ayuda del (?) se queda abierta al tocarlaGiven el panel del editorWhen el arquitecto toca el ícono (?) junto a un título, por ejemplo «Texturas»Then la explicación se abre en una burbuja que se queda abierta hasta que toca fuera o pulsa EscapeAnd con el ratón también se abre al pasar por encima, sin quitarle el foco a lo que estaba haciendo.
    4. v5.6 — iteracion-28: la guía con la superficie y el velo del tema

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El velo de la guía sigue al tema de la aplicaciónGiven una guía en cursoWhen la aplicación está en claro o en oscuroThen todo lo que no es el elemento del paso se oscurece con la obsidiana de la marca, y la tarjeta del paso y la barra «Guía en pausa» van sobre la superficie de las ventanas del temaAnd el modo es el que la persona eligió en la aplicación, aunque el teléfono prefiera otro.
    5. v5.6 — iteracion-28: en la computadora la guía ya no se pausa sola en el segundo paso

      BacklogBugIteración 28
      • Bug iteracion-28 - La guía sigue en la computadora sin «Más»Given la guía «Registrar un cliente» o «Registrar un servicio» en una computadora, donde no está la barra de abajo con «Más»When empieza la guíaThen se salta el paso de «Más» y señala «Clientes» o «Servicios» en el menú lateral, sin pausarseAnd al tocarlo la guía sigue en la pantalla de alta.
    6. Iteración 5 · Cambio: US-88 Ayudas del editor en un (?) junto a cada título

      GREENfrontend 5d8b784
    7. v3.9 — iteracion-5: la ayuda del editor en un (?) junto a cada título

      BacklogCambioIteración 5
      • Cambio iteracion-5 - El (?) junto al títuloGiven el panel del editorWhen el arquitecto pasa el cursor o toca el ícono (?) junto a un título, por ejemplo «Texturas»Then ve la explicación de esa sección en una burbujaAnd el texto ya no ocupa el panel.
      • Cambio iteracion-5 - También con tecladoGiven el foco en el ícono (?)When el arquitecto pulsa EnterThen la ayuda se abreAnd Escape la cierra.
    8. v2.20

      Backlog
      • Cambio v2.20 - La aplicación se explica solaGiven que el alta de un cliente, un servicio y una cotización sólo se aprendía probandoWhen se agrega US-88 en v2.20Then hay tres recorridos guiados sobre las pantallas reales, con el progreso de cada uno guardado por usuario.
    9. v3.0

      Backlog
      • Cambio v3.0 - La guía funciona en el teléfonoGiven que la guía alumbraba la barra de escritorio, apagada en el teléfonoWhen se corrige en v3.0Then abre «Más» y alumbra el elemento que de verdad se ve.
  12. US-91 Que la aplicación se vea bien de noche

    Como arquitecto que revisa cotizaciones de noche o en la obra quiero poder poner la aplicación en oscuro, para no deslumbrarme y gastar menos batería.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Cambiar el tema desde mi cuentaGiven cualquier pantalla de la aplicaciónWhen abro el menú de mi cuenta y toco «Tema oscuro»Then toda la aplicación pasa a oscuro y el menú me ofrece el camino de vuelta.
    2. Flujo principal - Ninguna pantalla se queda a mediasGiven el tema oscuro puestoWhen recorro la landing, el acceso, el registro, la verificación, la recuperación, servicios, clientes, cotizaciones, proyectos, planos, perfil y organizaciónThen todas se ven oscuras, sin franjas claras ni texto ilegible.
    3. Flujo principal - Sin elegir, se sigue al teléfonoGiven una cuenta que nunca eligió temaWhen abro la aplicaciónThen se ve como el teléfono: oscura si el sistema está en oscuro, clara si no.
    4. Flujo principal - Lo elegido se recuerdaGiven que elegí un temaWhen vuelvo a abrir la aplicación en ese dispositivoThen sigue como lo dejé, aunque el sistema diga otra cosa.
    5. Caso alternativo - El documento no cambia con la pantallaGiven el tema oscuroWhen miro la vista previa del membrete o genero un PDFThen el documento sigue siendo papel blanco con tinta oscura, porque se va a imprimir y a compartir.
    6. Caso de borde - Contraste legible en oscuroGiven el tema oscuroWhen leo textos, importes y estadosThen el contraste con su superficie cumple AA.
    7. Caso de borde - La barra del sistema acompañaGiven la aplicación instalada en el teléfonoWhen cambio a oscuroThen la franja del sistema deja de ser azul brillante y toma el color de la página.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. Iteración 23 · Cambio: El tema en una sola fila de tres botones con ícono (Claro, Oscuro, Sistema)

      GREENfrontend 0c863e8
    3. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    4. v5.2 — iteracion-23: el tema en una fila con íconos y en Apariencia

      BacklogCambioIteración 23
      • Cambio iteracion-23 - El tema en una sola filaGiven el menú de la cuenta abiertoWhen el usuario mira el bloque «Tema»Then ve en una sola fila tres botones con ícono y texto: Claro, Oscuro y Sistema, con el elegido marcadoAnd elegir uno cambia el tema sin cerrar el menú.
      • Cambio iteracion-23 - El tema en AparienciaGiven el usuario en Mi perfilWhen abre la sección AparienciaThen elige Claro, Oscuro o Sistema en tarjetas de opciónAnd el cambio se aplica al elegir, sin botón de guardar.
    5. Iteración 13 · Cambio: US-91 Selector de tema de tres estados y sin parpadeo

      GREENfrontend 0fa975f
    6. v4.5 — iteracion-13: tres temas y sin destello al abrir

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Elegir el temaGiven el menú de la cuenta o la portadaWhen la persona elige Claro, Oscuro o Como el sistemaThen la aplicación cambia en el actoAnd recuerda la elección en ese dispositivo.
      • Cambio iteracion-13 - Volver a seguir al sistemaGiven que se eligió Claro u OscuroWhen se elige Como el sistemaThen la aplicación vuelve a seguir el tema del teléfono o la computadora.
      • Cambio iteracion-13 - Sin destello al abrirGiven que se eligió el tema oscuroWhen se abre o recarga la aplicaciónThen no aparece una pantalla blanca antes de cargar.
    7. Iteración 4 · Bug: US-91 Texto legible sobre verde, rojo y azul en oscuro

      GREENfrontend fc4d504
    8. v3.7 — iteracion-4: texto legible sobre verde, rojo y azul en oscuro

      BacklogBugIteración 4
      • Bug iteracion-4 - Texto sobre relleno verde, rojo o azul en oscuroGiven el tema oscuroWhen un botón, una etiqueta de estado o un aviso usa relleno verde (éxito), rojo (error) o azul (información)Then su texto tiene un contraste de al menos 4,5:1 con ese rellenoAnd el texto ya no es blanco sobre esos tres colores.
      • Bug iteracion-4 - El tema claro no cambiaGiven el tema claroWhen se ven los mismos botones, etiquetas y avisosThen conservan su texto blanco y sus colores de hoy.
    9. v2.23

      Backlog
      • Cambio v2.23 - La paleta oscura deja de ser un planGiven que los tokens oscuros existían desde el rediseño pero nada los usabaWhen se agrega US-91 en v2.23Then los dos temas se construyen con la misma función y se cambian desde el menú de la cuenta.
    10. v3.0

      Backlog
      • Cambio v3.0 - El tema se cambia sin sesiónGiven la página pública sin sesión iniciadaWhen se corrige en v3.0Then el interruptor de tema está disponible ahí también.
  13. US-86 Que el título de la pantalla no se repita dentro de la tarjeta

    Como arquitecto quiero leer el nombre de la pantalla una sola vez para que el contenido empiece antes y no gastar una línea en repetir dónde estoy.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Un título por pantallaGiven la pantalla de ServiciosWhen la abroThen el nombre de la pantalla aparece una sola vez, en su encabezado, y no otra vez dentro de la tarjeta de la lista.
    2. Caso alternativo - La misma regla en las demás listasGiven las pantallas de Clientes y de CotizacionesWhen las abroThen ninguna repite su título dentro de la tarjeta.
    3. Caso de borde - Una lista vacíaGiven una lista sin registrosWhen la abroThen el mensaje de lista vacía tampoco repite el título de la pantalla.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
  14. US-108 Volver a la página pública desde el logotipo

    Como visitante quiero regresar a la página pública tocando el logotipo para no buscar un icono que no dice a dónde lleva.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - El logotipo es el camino de vueltaGiven la pantalla de accesoWhen toco el logotipo de ItzakaThen llego a la página pública.
    2. Caso alternativo - La casita ya no estáGiven la pantalla de accesoWhen busco el icono de casa de la esquinaThen ya no existe, porque el logotipo hace ese trabajo.
    3. Caso de borde - En el teléfonoGiven el acceso abierto en un teléfonoWhen toco el logotipo que está sobre la tarjetaThen también llego a la página pública.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
  15. US-114 Instalar la aplicación desde el menú

    Como arquitecto quiero instalar Itzaka como app desde su menú para abrirla desde mi pantalla de inicio sin buscar cómo.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - El navegador lo permiteGiven un navegador que ofrece instalarWhen elijo 'Instalar como app' en el menú de mi cuentaThen aparece el aviso de instalación del navegador.
    2. Caso alternativo - iPhone o navegador sin avisoGiven Safari o un navegador sin aviso de instalaciónWhen elijo 'Instalar como app'Then la aplicación me explica los pasos para instalarla.
    3. Caso de borde - Ya instaladaGiven que abro Itzaka como app instaladaWhen abro el menú de mi cuentaThen la opción de instalar no aparece.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. Iteración 23 · Cambio: «Instalar como app» pasa a «Instalar app» en el menú de cuenta (texto del estándar)

      GREENfrontend 48abe44
    3. v5.2 — iteracion-23: «Instalar app» en el menú de cuenta

      BacklogCambioIteración 23
      • Cambio iteracion-23 - Instalar appGiven la app sin instalar y el menú de la cuenta abiertoWhen el usuario busca cómo instalarlaThen ve la opción «Instalar app» entre las de ayudaAnd al instalar la app la opción deja de aparecer
    4. v3.1

      Backlog
      • Cambio v3.1 - Instalar desde el menúGiven que la instalación dependía de que el navegador la ofreciera soloWhen se agrega US-114 en v3.1Then se ofrece en el menú mientras no esté instalada.
  16. US-127 La marca es Itzaka

    Como dueño del producto quiero que la herramienta se llame Itzaka, una solución de Grupo Torres Muciño, y diga «Del plano a la obra, todo conectado.» en todo lo que ve la gente, para presentarla con su nombre definitivo sin que nadie pierda su sesión ni sus planos.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - La aplicación se llama ItzakaGiven la barra de la aplicación, el acceso, la página pública o la app instaladaWhen la abroThen la marca que leo es Itzaka: junto al símbolo de talud-tablero el nombre va como «ITZAKA» y en el texto como «Itzaka».
    2. Flujo principal - El eslogan es el titularGiven la página pública y el panel del accesoWhen los abroThen su titular es «Del plano a la obra, todo conectado.».
    3. Flujo principal - Documentos y correos firman ItzakaGiven una cuenta sin membreteWhen genera un documento o recibe un correoThen lo firma Itzaka con el eslogan debajo; con membrete, el pie dice «Optimizado por Itzaka», y en la bandeja el remitente se lee Itzaka.
    4. Flujo principal - Buscadores y redesGiven un enlace compartido o una búsquedaWhen se muestra la páginaThen el título, la imagen y la descripción dicen Itzaka y su eslogan, sin dejar de decir que es un cotizador para arquitectos.
    5. Flujo principal - Términos y privacidad lo dicenGiven una cuenta que aceptó la versión anteriorWhen entraThen se le piden de nuevo, y los dos textos dicen que Itzaka antes se llamaba Itzaka (y antes, presuplano) y que sólo cambia el nombre.
    6. Caso de borde - Nadie pierde su sesión ni sus planosGiven una sesión abierta y planos guardados en el equipoWhen se publica el cambio de marcaThen la sesión sigue y los planos siguen ahí: las llaves del navegador con el nombre anterior se pasan solas a las nuevas y la sesión anterior se sigue reconociendo.
    7. Flujo principal - La firma del grupoGiven el pie de la página pública, el acceso, un correo o un documento sin membreteWhen lo veoThen dice «una solución de Grupo Torres Muciño».

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. Iteración 22 · Bug: El editor de planos no se lee en el tema claro: usa siempre el tema oscuro

      GREENfrontend 0d8a655
    3. v5.1

      BacklogCambioIteración 20
      • Cambio v5.1 - Cuotreka pasa a llamarse ItzakaGiven que el producto se llamaba Cuotreka y «cuo» se leía «cou»When se renombra en iteracion-20Then se llama Itzaka, una solución de Grupo Torres Muciño, con el logo de talud-tablero, la paleta de piedra y los términos y la privacidad en una versión nueva que se vuelve a aceptar.
    4. La marca pasa de Cuotreka a Itzaka (de itztli, obsidiana en náhuatl), una solución de Grupo Torres Muciño: el nombre anterior se pronunciaba mal («cuo» se leía «cou»). Manual de marca v2.0: logo de talud-tablero sin texto, paleta de piedra con obsidiana como primario y tezontle como acento, y el nombre escrito «ITZAKA» en Inter 800 junto al símbolo. Cuotreka y presuplano quedan como nombres anteriores que no se usan en piezas nuevas.

      Decisión
    5. v3.4

      Backlog
      • Cambio v3.4 - Alta de US-127Given que el producto se llamaba presuplanoWhen se decide su nombre definitivoThen se agrega US-127: CUOTREKA, con el eslogan «Del plano a la obra, todo conectado.».
  17. US-128 Ver la aplicación de verdad antes de registrarme

    Como arquitecto que llega a la página quiero ver pantallas reales de Itzaka y un encabezado que se lea bien en mi teléfono, para saber qué voy a usar antes de crear mi cuenta.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Pantallas reales, no maquetasGiven la página públicaWhen la recorroThen el hero, cada uno de los tres pasos, la sección «Así se ve» y la de planos muestran capturas reales de la aplicación, cada una con su descripción.
    2. Flujo principal - Se dice que los datos son de demostraciónGiven una pantalla de la páginaWhen la veoThen su nota o su sección dice que es real y que los datos son de demostración.
    3. Flujo principal - El encabezado cabe en una fila en el teléfonoGiven un teléfono de 360 a 430 px de anchoWhen abro la páginaThen el nombre, el tema, «Iniciar sesión» y «Crear cuenta» caben en una sola fila, sin nada que se salga por la derecha.
    4. Caso alternativo - Íconos donde no cabe el textoGiven un teléfonoWhen no cabe el textoThen «Iniciar sesión» se muestra como su ícono, y «Crear cuenta» también por debajo de 380 px; para un lector de pantalla los dos conservan su nombre.
    5. Caso de borde - La página no salta mientras carganGiven una conexión lentaWhen las imágenes todavía no lleganThen su lugar ya está reservado, porque cada una declara su ancho y su alto; sólo la del hero se pide de inmediato.
    6. Caso de borde - El tema oscuro enseña la pantalla oscuraGiven el tema oscuroWhen abro la páginaThen el hero muestra la captura del inicio con el tema oscuro.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c7ccb32
    2. v3.5

      Backlog
      • Cambio v3.5 - Alta de US-128Given que la página enseñaba una tarjeta armada a mano con un proyecto inventado y su encabezado se partía en dos renglones en el teléfonoWhen se pide dejar evidencia real de cómo funcionaThen se agrega US-128.

Últimos cambios

  1. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  2. US-26 Página de inicio pública del sitio (landing)

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  3. US-26 Página de inicio pública del sitio (landing)

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend c5e18a3
  4. US-26 Página de inicio pública del sitio (landing)

    v5.7 — iteracion-29: la insignia del héroe

    BacklogCambioIteración 29
    • Cambio iteracion-29 - La insignia del héroeGiven un visitante en la página de inicioWhen ve el héroeThen «El cotizador de obra para arquitectos» aparece como la insignia del sistema de diseño, con su borde, el punto de obsidiana y el texto legible en claro y en oscuro.
  5. US-70 Saber quién hizo Itzaka

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  6. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  7. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend c5e18a3
  8. US-80 Ver las listas con el formato que cada pantalla permite

    v5.7 — iteracion-29: el aviso de una acción en lote que falla se queda

    BacklogCambioIteración 29
    • Cambio iteracion-29 - El aviso de una acción en lote que falla se quedaGiven el usuario aplica una acción en lote a varios registrosWhen alguno o ninguno se puedeThen el aviso dice cuántos sí, cuántos no y el motivo del servidorAnd se queda a la vista hasta que lo cierra con «Cerrar», con el mismo comportamiento que los demás avisos de error de la aplicación.
  9. US-83 Preguntar antes de abrir una cuenta

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  10. US-84 Entender qué hace Itzaka antes de registrarme

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  11. US-88 Que la aplicación me enseñe a usarla

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  12. US-88 Que la aplicación me enseñe a usarla

    Iteración 28 · Bug: Las guías de escritorio ya no se pausan solas en el paso 2

    GREENfrontend ca13b72
  13. US-88 Que la aplicación me enseñe a usarla

    v5.6 — iteracion-28: la ayuda del editor se abre también con el dedo

    BacklogCambioIteración 28
    • Cambio iteracion-28 - La ayuda del (?) se queda abierta al tocarlaGiven el panel del editorWhen el arquitecto toca el ícono (?) junto a un título, por ejemplo «Texturas»Then la explicación se abre en una burbuja que se queda abierta hasta que toca fuera o pulsa EscapeAnd con el ratón también se abre al pasar por encima, sin quitarle el foco a lo que estaba haciendo.
  14. US-88 Que la aplicación me enseñe a usarla

    v5.6 — iteracion-28: la guía con la superficie y el velo del tema

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El velo de la guía sigue al tema de la aplicaciónGiven una guía en cursoWhen la aplicación está en claro o en oscuroThen todo lo que no es el elemento del paso se oscurece con la obsidiana de la marca, y la tarjeta del paso y la barra «Guía en pausa» van sobre la superficie de las ventanas del temaAnd el modo es el que la persona eligió en la aplicación, aunque el teléfono prefiera otro.
  15. US-88 Que la aplicación me enseñe a usarla

    v5.6 — iteracion-28: en la computadora la guía ya no se pausa sola en el segundo paso

    BacklogBugIteración 28
    • Bug iteracion-28 - La guía sigue en la computadora sin «Más»Given la guía «Registrar un cliente» o «Registrar un servicio» en una computadora, donde no está la barra de abajo con «Más»When empieza la guíaThen se salta el paso de «Más» y señala «Clientes» o «Servicios» en el menú lateral, sin pausarseAnd al tocarlo la guía sigue en la pantalla de alta.
  16. US-91 Que la aplicación se vea bien de noche

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  17. US-108 Volver a la página pública desde el logotipo

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  18. US-114 Instalar la aplicación desde el menú

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  19. US-127 La marca es Itzaka

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  20. US-128 Ver la aplicación de verdad antes de registrarme

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c7ccb32
  21. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    v5.6 — iteracion-28: marco con el Sidebar del kit y los niveles de Tailwind

    BacklogCambioIteración 28
    • Cambio iteracion-28 - La navegación por nivel con los cortes de TailwindGiven un usuario en la aplicaciónWhen la pantalla mide menos de 768 pxThen ve la barra inferior con Inicio, Cotizaciones, Proyectos, Planos y «Más»And de 768 a 1023 px ve el menú lateral reducido a riel de 80 px con cada ícono y su nombre corto debajoAnd desde 1024 px ve el menú lateral completo de 240 px con ícono y nombre.
    • Cambio iteracion-28 - El botón de menú en cada nivelGiven un usuario de 768 px o másWhen toca «Mostrar u ocultar menú»Then el menú lateral pasa de completo a riel, o al revés, con una transición de 200 msAnd en el riel, con ratón, el nombre completo aparece en una etiqueta al pasar el punteroAnd en un teléfono el mismo botón abre el cajón «Menú» con las siete secciones y la versión, que se cierra al elegir, al tocar fuera o con Esc.
    • Cambio iteracion-28 - Un formulario corto en el cajón inferiorGiven un usuario en un teléfonoWhen abre un formulario corto (nuevo cliente, nuevo servicio)Then el formulario sube en un cajón desde abajo con su título y «Cerrar»And un formulario largo (el armador, el registro de personal, «Pagar a…») ocupa la pantalla enteraAnd desde 768 px los dos son un diálogo centrado.
  22. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  23. US-80 Ver las listas con el formato que cada pantalla permite

    v5.4 — iteracion-26: la acción en lote dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Acción en lote en cursoGiven varios registros seleccionadosWhen el usuario corre una acción en lote y la respuesta tardaThen esa acción muestra el indicador de carga del sistema junto a su textoAnd las demás acciones esperan deshabilitadasAnd si la acción está en «Más», el indicador va en «Más».
  24. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Iteración 23 · Cambio: Hamburguesa en la barra superior: colapsa la barra lateral a íconos y en el teléfono abre un cajón con toda la navegación

    GREENfrontend 96d4825
  25. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    v5.2 — iteracion-23: hamburguesa que muestra u oculta el menú

    BacklogCambioIteración 23
    • Cambio iteracion-23 - La hamburguesa colapsa la barra lateralGiven un usuario en una pantalla de 600 px o másWhen toca la hamburguesa de la barra superiorThen la navegación lateral pasa de mostrar ícono y nombre a solo íconos, o al revés, con una transiciónAnd el contenido se reacomoda sin quedar tapado.
    • Cambio iteracion-23 - En el teléfono abre un cajónGiven un usuario en un teléfonoWhen toca la hamburguesaThen se abre un cajón con las siete secciones y la versiónAnd al elegir una sección, tocar fuera o pulsar Esc el cajón se cierraAnd la barra inferior con «Más» sigue igual.
  26. US-26 Página de inicio pública del sitio (landing)

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  27. US-26 Página de inicio pública del sitio (landing)

    v5.3 — iteracion-25: las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
  28. US-79 Encontrar algo en una lista larga

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  29. US-79 Encontrar algo en una lista larga

    v5.3 — iteracion-25: el orden en el encabezado de la tabla

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Encabezado en la tabla, «Ordenar por» en el teléfonoGiven una listaWhen se ve como tabla, desde 900 pxThen se ordena desde el encabezado y el embudo solo filtra («Filtros»)And en el teléfono el orden sigue en «Ordenar por», dentro del embudo, con el mismo orden del servidor y en la URL.
  30. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  31. US-80 Ver las listas con el formato que cada pantalla permite

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven una lista en el teléfonoWhen el usuario llega con el teclado a lo que abre cada filaThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  32. US-83 Preguntar antes de abrir una cuenta

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  33. US-83 Preguntar antes de abrir una cuenta

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el formulario de contactoWhen el usuario lo abreThen ve un asterisco en Tu nombreAnd la leyenda «Los campos con * son obligatorios»And si sale de «Tu nombre» sin cumplirlo ve «Dinos cómo te llamas» junto al campo.
  34. US-83 Preguntar antes de abrir una cuenta

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Enviar mensaje» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  35. US-84 Entender qué hace Itzaka antes de registrarme

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  36. US-84 Entender qué hace Itzaka antes de registrarme

    v5.3 — iteracion-25: las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
  37. US-91 Que la aplicación se vea bien de noche

    Iteración 23 · Cambio: El tema en una sola fila de tres botones con ícono (Claro, Oscuro, Sistema)

    GREENfrontend 0c863e8
  38. US-91 Que la aplicación se vea bien de noche

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  39. US-91 Que la aplicación se vea bien de noche

    v5.2 — iteracion-23: el tema en una fila con íconos y en Apariencia

    BacklogCambioIteración 23
    • Cambio iteracion-23 - El tema en una sola filaGiven el menú de la cuenta abiertoWhen el usuario mira el bloque «Tema»Then ve en una sola fila tres botones con ícono y texto: Claro, Oscuro y Sistema, con el elegido marcadoAnd elegir uno cambia el tema sin cerrar el menú.
    • Cambio iteracion-23 - El tema en AparienciaGiven el usuario en Mi perfilWhen abre la sección AparienciaThen elige Claro, Oscuro o Sistema en tarjetas de opciónAnd el cambio se aplica al elegir, sin botón de guardar.
  40. US-114 Instalar la aplicación desde el menú

    Iteración 23 · Cambio: «Instalar como app» pasa a «Instalar app» en el menú de cuenta (texto del estándar)

    GREENfrontend 48abe44
  41. US-114 Instalar la aplicación desde el menú

    v5.2 — iteracion-23: «Instalar app» en el menú de cuenta

    BacklogCambioIteración 23
    • Cambio iteracion-23 - Instalar appGiven la app sin instalar y el menú de la cuenta abiertoWhen el usuario busca cómo instalarlaThen ve la opción «Instalar app» entre las de ayudaAnd al instalar la app la opción deja de aparecer
  42. US-127 La marca es Itzaka

    Iteración 22 · Bug: El editor de planos no se lee en el tema claro: usa siempre el tema oscuro

    GREENfrontend 0d8a655
  43. US-127 La marca es Itzaka

    v5.1

    BacklogCambioIteración 20
    • Cambio v5.1 - Cuotreka pasa a llamarse ItzakaGiven que el producto se llamaba Cuotreka y «cuo» se leía «cou»When se renombra en iteracion-20Then se llama Itzaka, una solución de Grupo Torres Muciño, con el logo de talud-tablero, la paleta de piedra y los términos y la privacidad en una versión nueva que se vuelve a aceptar.
  44. US-127 La marca es Itzaka

    La marca pasa de Cuotreka a Itzaka (de itztli, obsidiana en náhuatl), una solución de Grupo Torres Muciño: el nombre anterior se pronunciaba mal («cuo» se leía «cou»). Manual de marca v2.0: logo de talud-tablero sin texto, paleta de piedra con obsidiana como primario y tezontle como acento, y el nombre escrito «ITZAKA» en Inter 800 junto al símbolo. Cuotreka y presuplano quedan como nombres anteriores que no se usan en piezas nuevas.

    Decisión
  45. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Iteración 19 · Cambio: US-24 El marco por nivel: barra inferior, riel y barra lateral

    GREENfrontend 59f3139
  46. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Iteración 19 · Cambio: US-24 Formularios y diálogos por nivel: a pantalla completa en el teléfono

    GREENfrontend b42a643
  47. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    Niveles en MUI: compacto por debajo de 600 px, mediano de 600 a 899 y expandido desde 900 (1200 y 1536 afinan columnas y ancho). Riel de 80 px de 600 a 1199 px y barra lateral fija de 240 px desde 1200, en lugar de la barra superior. Contenedor de página de 1100 px (720 px para una sola tarea). Fuente: producto/5.0_Visual_Spec_Pantallas.md.

    Decisión
  48. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    La iteración 19 es la de diseño adaptativo (Visual Spec por nivel; ADP-F01 y PRO-05 de la auditoría de diseño del 2026-10-22), como pidió la persona responsable; la iteración de seguridad pasa a ser la 20.

    Decisión
  49. US-77 Recorrer listas largas por páginas

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend be8883c
  50. US-77 Recorrer listas largas por páginas

    Iteración 18 · Bug: US-77 · US-79 Abrir una lista hace una sola petición

    GREENfrontend e5fdfc6
  51. US-77 Recorrer listas largas por páginas

    La iteración 18 es el arreglo de producción 3.8.1 (abrir una lista hace una sola petición): un arreglo sobre lo que ya está en producción es su propia iteración. La iteración de seguridad acordada pasa a ser la 19.

    Decisión
  52. US-79 Encontrar algo en una lista larga

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend be8883c
  53. US-79 Encontrar algo en una lista larga

    Iteración 18 · Bug: US-77 · US-79 Abrir una lista hace una sola petición

    GREENfrontend e5fdfc6
  54. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENfrontend e5fdfc6
  55. US-77 Recorrer listas largas por páginas

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 69f222a
  56. US-77 Recorrer listas largas por páginas

    v4.9 — iteracion-17: el servidor corta las páginas

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Solo llega la página que se miraGiven cualquier lista con 45 registrosWhen el usuario la abreThen el servidor entrega solo los 20 de la página y el total, y el contador dice «1–20 de 45».
    • Cambio iteracion-17 - Tamaños de páginaGiven una lista en el escritorioWhen el usuario elige cuántas filas verThen puede elegir 10, 20, 50 o 100, con 20 por omisión, y la lista vuelve a la página 1.
    • Cambio iteracion-17 - La lista se conserva al recargar o compartirGiven el usuario en la página 3 de Clientes con una búsqueda, un filtro y un ordenWhen recarga o comparte el enlaceThen la lista vuelve igual: misma página, búsqueda, filtros y orden.
  57. US-79 Encontrar algo en una lista larga

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 69f222a
  58. US-79 Encontrar algo en una lista larga

    v4.9 — iteracion-17: buscar, filtrar y ordenar los hace el servidor

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Una petición al dejar de escribirWhen el usuario escribe «muci» en BuscarThen la lista pide al servidor una sola vez, al dejar de escribir, y no una vez por tecla.
    • Cambio iteracion-17 - Una sola letra no buscaWhen el usuario escribe una sola letraThen la lista no cambiaAnd al borrar la búsqueda vuelve la lista completa.
    • Cambio iteracion-17 - Sin acentos también en el servidorGiven un cliente «Muciño» en la página 3When el usuario busca «mucino»Then lo encuentra.
    • Cambio iteracion-17 - El total, el filtro y el orden son de todoGiven 45 cotizacionesWhen el usuario filtra o ordenaThen el contador y el primer registro corresponden a las 45, no a la página que tenía en pantalla.
    • Cambio iteracion-17 - Limpiar filtrosGiven una búsqueda y un filtro activosWhen el usuario toca «Limpiar filtros»Then vuelve la lista completa en la página 1, con el mismo orden.
  59. US-80 Ver las listas con el formato que cada pantalla permite

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENfrontend ee5e9b8
  60. US-80 Ver las listas con el formato que cada pantalla permite

    v4.9 — iteracion-17: seleccionar y actuar en lote en cada formato

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Seleccionar en la tabla y en el teléfonoGiven una lista con acciones en loteWhen el usuario marca filas, en la tabla o en las filas apiladas del teléfonoThen ve una barra con cuántas seleccionó y las acciones que aplican.
    • Cambio iteracion-17 - La casilla del encabezado es de la páginaWhen el usuario marca la casilla del encabezadoThen se seleccionan las filas de la páginaAnd si hay más resultados se le ofrece «Seleccionar los N resultados».
    • Cambio iteracion-17 - La selección se borra al cambiar la búsqueda o el filtroGiven 3 filas seleccionadasWhen el usuario cambia la búsqueda o un filtroThen la selección se borra.
    • Cambio iteracion-17 - Quitar la selecciónGiven filas seleccionadasWhen el usuario toca «Quitar selección» o pulsa EscThen ya no hay nada seleccionado y la barra desaparece.
  61. US-26 Página de inicio pública del sitio (landing)

    Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

    GREENfrontend 1fd8e20
  62. US-83 Preguntar antes de abrir una cuenta

    Iteración 12 · Bug: US-83 reCAPTCHA y honeypot en los formularios públicos

    GREENbackend 6e7cc23
  63. US-83 Preguntar antes de abrir una cuenta

    Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

    GREENbackend 57daef9
  64. US-83 Preguntar antes de abrir una cuenta

    v4.4 — iteracion-12: los formularios públicos rechazan robots

    BacklogBugIteración 12
    • Bug iteracion-12 - Envío automatizadoGiven el formulario de contacto, registro o recuperaciónWhen un robot lo envíaThen se rechazaAnd la persona real no ve ningún paso extra.
    • Bug iteracion-12 - Verificación no disponibleGiven que la verificación anti-robots no respondeWhen se envía el registro o la recuperaciónThen se pide intentar más tardeAnd el contacto se recibe marcado para revisión.
  65. US-83 Preguntar antes de abrir una cuenta

    v4.5 — iteracion-13: el teléfono del mensaje de contacto se valida

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
    • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
  66. US-85 Que me encuentren y que el enlace se vea bien al compartirlo

    Iteración 12 · Cambio: TEC Cabeceras y dominio del frontend

    GREENfrontend 1fd8e20
  67. US-85 Que me encuentren y que el enlace se vea bien al compartirlo

    v4.4 — iteracion-12: enlaces y cabeceras del sitio

    BacklogCambioIteración 12
    • Cambio iteracion-12 - Dirección del sitioGiven cualquier página públicaWhen un buscador la lee o alguien comparte el enlaceThen la dirección, el mapa del sitio y la imagen apuntan a cuotreka.vercel.app.
    • Cambio iteracion-12 - Título por pantallaGiven cualquier pantallaWhen se abreThen la pestaña del navegador muestra su propio título.
  68. US-91 Que la aplicación se vea bien de noche

    Iteración 13 · Cambio: US-91 Selector de tema de tres estados y sin parpadeo

    GREENfrontend 0fa975f
  69. US-91 Que la aplicación se vea bien de noche

    v4.5 — iteracion-13: tres temas y sin destello al abrir

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Elegir el temaGiven el menú de la cuenta o la portadaWhen la persona elige Claro, Oscuro o Como el sistemaThen la aplicación cambia en el actoAnd recuerda la elección en ese dispositivo.
    • Cambio iteracion-13 - Volver a seguir al sistemaGiven que se eligió Claro u OscuroWhen se elige Como el sistemaThen la aplicación vuelve a seguir el tema del teléfono o la computadora.
    • Cambio iteracion-13 - Sin destello al abrirGiven que se eligió el tema oscuroWhen se abre o recarga la aplicaciónThen no aparece una pantalla blanca antes de cargar.
  70. US-88 Que la aplicación me enseñe a usarla

    Iteración 5 · Cambio: US-88 Ayudas del editor en un (?) junto a cada título

    GREENfrontend 5d8b784
  71. US-88 Que la aplicación me enseñe a usarla

    v3.9 — iteracion-5: la ayuda del editor en un (?) junto a cada título

    BacklogCambioIteración 5
    • Cambio iteracion-5 - El (?) junto al títuloGiven el panel del editorWhen el arquitecto pasa el cursor o toca el ícono (?) junto a un título, por ejemplo «Texturas»Then ve la explicación de esa sección en una burbujaAnd el texto ya no ocupa el panel.
    • Cambio iteracion-5 - También con tecladoGiven el foco en el ícono (?)When el arquitecto pulsa EnterThen la ayuda se abreAnd Escape la cierra.
  72. US-91 Que la aplicación se vea bien de noche

    Iteración 4 · Bug: US-91 Texto legible sobre verde, rojo y azul en oscuro

    GREENfrontend fc4d504
  73. US-91 Que la aplicación se vea bien de noche

    v3.7 — iteracion-4: texto legible sobre verde, rojo y azul en oscuro

    BacklogBugIteración 4
    • Bug iteracion-4 - Texto sobre relleno verde, rojo o azul en oscuroGiven el tema oscuroWhen un botón, una etiqueta de estado o un aviso usa relleno verde (éxito), rojo (error) o azul (información)Then su texto tiene un contraste de al menos 4,5:1 con ese rellenoAnd el texto ya no es blanco sobre esos tres colores.
    • Bug iteracion-4 - El tema claro no cambiaGiven el tema claroWhen se ven los mismos botones, etiquetas y avisosThen conservan su texto blanco y sus colores de hoy.
  74. US-25 Instalar la app como PWA con shell offline básico

    Registrada como existente (adopción)

    GREEN
  75. US-86 Que el título de la pantalla no se repita dentro de la tarjeta

    Registrada como existente (adopción)

    GREEN
  76. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    v1.1

    Backlog
    • Cambio v1.1 - Reconciliación del rediseño entregadoGiven el rediseño visual ya implementadoWhen se reconcilia el backlog en v1.1Then se registra US-24 con la identidad propia, mobile-first, navegación adaptable y jerarquía del dinero, sin alterar lógica ni flujos.
  77. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    v3.0

    Backlog
    • Cambio v3.0 - La barra del teléfono lleva lo de obraGiven siete destinos y cinco lugares en el pulgarWhen se refina en v3.0Then Planos ocupa un lugar en la barra y Servicios, Clientes y Personal pasan a «Más».
  78. US-24 Interfaz rediseñada mobile-first con navegación adaptable

    v5.0

    Backlog
    • Cambio v5.0 - La navegación se acomoda por nivelGiven siete destinos y tres tamaños de pantallaWhen se refina en v5.0Then en el teléfono sigue la barra inferior con «Más», de 600 a 1199 px un riel con las siete secciones y desde 1200 px una barra lateral fija con la sección activa resaltada, en lugar de la barra superior.
  79. US-25 Instalar la app como PWA con shell offline básico

    v1.2

    Backlog
    • Cambio v1.2 - Alta de PWA instalable con shell offlineGiven la app hasta ahora solo webWhen se agrega US-25 en v1.2Then la aplicación es instalable como PWA (manifest, íconos, theme-color, standalone) con un shell offline básico y aviso de sin conexión.
  80. US-26 Página de inicio pública del sitio (landing)

    v1.3

    Backlog
    • Cambio v1.3 - Alta de página de inicio públicaGiven que la ruta "/" hasta ahora redirigía a /loginWhen se agrega US-26 en v1.3Then "/" muestra una landing pública con hero, propuesta de valor y CTAs a /register y /login, preservando el acceso directo a la app para usuarios autenticados. Supuesto: interpretación A (landing pública); pendiente confirmar A vs B (home/dashboard autenticado) en GATE 1.
  81. US-70 Saber quién hizo Itzaka

    v2.14

    Backlog
    • Cambio v2.14 - La landing se firmaGiven que la página no decía quién la había hechoWhen se agrega US-70 en v2.14Then su pie lleva la firma de quien la hizo.
  82. US-77 Recorrer listas largas por páginas

    v2.15

    Backlog
    • Cambio v2.15 - Nacen las páginasGiven que cada lista se dibujaba entera, por larga que fueraWhen se agrega US-77 en v2.15Then todas se recorren por páginas con el mismo pie.
  83. US-77 Recorrer listas largas por páginas

    v3.0

    Backlog
    • Cambio v3.0 - El paginador aparece cuando hace faltaGiven un panel que pide páginas de cinco con menos de cinco registrosWhen se corrige en v3.0Then no muestra paginador.
  84. US-79 Encontrar algo en una lista larga

    v2.16

    Backlog
    • Cambio v2.16 - Las listas se pueden recorrer con criterioGiven que la única forma de encontrar algo era pasar páginasWhen se agrega US-79 en v2.16Then cada lista tiene su buscador, sus filtros y su orden.
  85. US-79 Encontrar algo en una lista larga

    v2.17

    Backlog
    • Cambio v2.17 - Los filtros se guardan detrás de un embudoGiven que filtros y orden desplegados ocupaban cinco renglones antes de la primera filaWhen se amplía US-79 en v2.17Then solo el buscador queda a la vista y lo demás se despliega a petición.
  86. US-80 Ver las listas con el formato que cada pantalla permite

    v2.16

    Backlog
    • Cambio v2.16 - El patrón documentado se implementaGiven que el design system describía DataList desde el principio y ninguna pantalla lo usabaWhen se agrega US-80 en v2.16Then las listas lo comparten.
  87. US-80 Ver las listas con el formato que cada pantalla permite

    v3.0

    Backlog
    • Cambio v3.0 - Filas sin flechaGiven una tabla cuyas filas terminaban en una flecha que no decía nadaWhen se refina en v3.0Then la fila entera es la que se toca y la flecha desaparece.
  88. US-83 Preguntar antes de abrir una cuenta

    v2.18

    Backlog
    • Cambio v2.18 - La página gana una salidaGiven que la página terminaba en «Crea tu cuenta gratis» y quien dudaba se iba sin dejar rastroWhen se agrega US-83 en v2.18Then hay dónde escribir.
  89. US-84 Entender qué hace Itzaka antes de registrarme

    v2.18

    Backlog
    • Cambio v2.18 - Lo construido se comunicaGiven que el editor de planos existía desde hacía meses y la página no lo nombraba ni una vezWhen se agrega US-84 en v2.18Then lo cuenta.
  90. US-84 Entender qué hace Itzaka antes de registrarme

    v3.5

    Backlog
    • Cambio v3.5 - La respuesta sobre la señal, corregidaGiven que la respuesta prometía que lo capturado sin señal se guardaba y se sincronizabaWhen se contrasta con la auditoría (documento 20, sección 4.2)Then se corrige para decir lo que la app hace.
  91. US-85 Que me encuentren y que el enlace se vea bien al compartirlo

    v2.18

    Backlog
    • Cambio v2.18 - El sitio deja de ser invisibleGiven que no había etiquetas sociales, ni canonical, ni sitemap, que robots.txt devolvía el HTML de la aplicación y que el cuerpo estaba vacíoWhen se agrega US-85 en v2.18Then hay algo que leer y algo que mostrar.
  92. US-88 Que la aplicación me enseñe a usarla

    v2.20

    Backlog
    • Cambio v2.20 - La aplicación se explica solaGiven que el alta de un cliente, un servicio y una cotización sólo se aprendía probandoWhen se agrega US-88 en v2.20Then hay tres recorridos guiados sobre las pantallas reales, con el progreso de cada uno guardado por usuario.
  93. US-88 Que la aplicación me enseñe a usarla

    v3.0

    Backlog
    • Cambio v3.0 - La guía funciona en el teléfonoGiven que la guía alumbraba la barra de escritorio, apagada en el teléfonoWhen se corrige en v3.0Then abre «Más» y alumbra el elemento que de verdad se ve.
  94. US-91 Que la aplicación se vea bien de noche

    v2.23

    Backlog
    • Cambio v2.23 - La paleta oscura deja de ser un planGiven que los tokens oscuros existían desde el rediseño pero nada los usabaWhen se agrega US-91 en v2.23Then los dos temas se construyen con la misma función y se cambian desde el menú de la cuenta.
  95. US-91 Que la aplicación se vea bien de noche

    v3.0

    Backlog
    • Cambio v3.0 - El tema se cambia sin sesiónGiven la página pública sin sesión iniciadaWhen se corrige en v3.0Then el interruptor de tema está disponible ahí también.
  96. US-114 Instalar la aplicación desde el menú

    v3.1

    Backlog
    • Cambio v3.1 - Instalar desde el menúGiven que la instalación dependía de que el navegador la ofreciera soloWhen se agrega US-114 en v3.1Then se ofrece en el menú mientras no esté instalada.
  97. US-127 La marca es Itzaka

    v3.4

    Backlog
    • Cambio v3.4 - Alta de US-127Given que el producto se llamaba presuplanoWhen se decide su nombre definitivoThen se agrega US-127: CUOTREKA, con el eslogan «Del plano a la obra, todo conectado.».
  98. US-128 Ver la aplicación de verdad antes de registrarme

    v3.5

    Backlog
    • Cambio v3.5 - Alta de US-128Given que la página enseñaba una tarjeta armada a mano con un proyecto inventado y su encabezado se partía en dos renglones en el teléfonoWhen se pide dejar evidencia real de cómo funcionaThen se agrega US-128.
EPIC-09

Editor de planos 2D y vista 3D

100%56 de 56 en GREEN

56 historias · aún sin integrar en develop

Detalles

Permitir que el arquitecto dibuje en 2D el plano de un espacio (muros, habitaciones, puertas, ventanas y mobiliario), lo recorra en una vista 3D realista y exporte imágenes del resultado. El editor está orientado a escritorio; en el teléfono el plano es de consulta. El sistema no incluye catálogo de modelos propio: cada cuenta importa sus propios modelos y se le recomienda usar los catálogos gratuitos de Sweet Home 3D, siendo la atribución de sus autores responsabilidad de quien los utiliza. Oleada 1 (núcleo, US-27 a US-39): planos, muros, habitaciones, puertas y ventanas, biblioteca de modelos, mobiliario, escala y acotado, deshacer/rehacer, capas, vista 3D y exportación a PNG. Oleada 2 (US-40 a US-45): múltiples niveles, plano de fondo para calcar, texturas, muros curvos, agrupación y orientación. Oleada 3 (US-46 a US-53), nacida del uso real del editor: acotado con línea separada, muros de altura variable, barra de elementos y catálogo, esquinas ingletadas con lectura del ángulo, color del muro en planta y coronamiento, aislamiento del nivel que se edita, importación de mobiliario desde el editor, importación de texturas sueltas o en paquete y salida con aviso de trabajo sin guardar. Oleada 4 (US-92 a US-95): el plano vive en la cuenta, gana estructura —trabes y columnas— y deja de ser sólo un dibujo: cada elemento lleva los servicios que se le cobran y el plano se convierte en una cotización con lo que él mismo mide.

  • GREEN 56
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
1 · 4 · 5 · 6 · 7 · 8 · 11 · 12 · 13 · 16 · 17 · 20 · 23 · 25 · 26 · 27 · 28 · 29
Último cambio
2026-11-01

Historias

  1. US-27 Crear y gestionar los planos de la cuenta

    Como arquitecto quiero crear, guardar, abrir y eliminar mis planos para conservar el trabajo de cada espacio que diseño y retomarlo cuando lo necesite.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Crear un plano nuevo y guardarloGiven un arquitecto con sesión activa en el editorWhen crea un plano nuevo, le asigna el nombre "Casa Pérez" y lo guardaThen el plano queda almacenado en su cuenta con ese nombreAnd aparece en su lista de planos con su fecha de última modificación.
    2. Flujo principal - Reabrir un plano conserva todo su contenidoGiven un plano guardado que contiene muros, habitaciones y mobiliarioWhen el arquitecto lo cierra y lo vuelve a abrirThen el editor muestra los mismos elementos con las mismas posiciones y medidas que tenían al guardar.
    3. Flujo principal - Renombrar y eliminar un planoGiven un plano llamado "Casa Pérez" en la listaWhen el arquitecto lo renombra a "Casa Pérez - revisión 2"Then la lista muestra el nuevo nombreAnd cuando el arquitecto elimina el plano y confirma, este desaparece de su lista.
    4. Caso alternativo - Guardar sin nombreGiven un plano nuevo sin nombreWhen el arquitecto intenta guardarlo dejando el nombre vacíoThen el sistema muestra "El plano necesita un nombre para guardarse"And el plano no se guarda.
    5. Caso alternativo - Salir con cambios sin guardarGiven un plano con cambios sin guardarWhen el arquitecto intenta cerrarlo o salir del editorThen el sistema advierte "Tienes cambios sin guardar" y ofrece guardar o descartarAnd solo permite salir cuando el arquitecto elige una de las dos opciones.
    6. Caso de borde - Aislamiento entre cuentasGiven dos cuentas distintas que tienen planos propiosWhen una de ellas abre su lista de planosThen solo ve los planos creados por su propia cuenta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la lista de planosWhen el usuario toca «Nuevo plano» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se crean dos planos.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    5. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el nombre de un planoWhen el usuario lo abreThen ve un asterisco en Nombre del planoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre del plano» sin cumplirlo ve «El plano necesita un nombre para guardarse» junto al campo.
    6. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar nombre» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    7. Iteración 5 · Bug: US-27 Renombrar y eliminar planos desde el editor y el listado

      GREENfrontend d97305d
    8. v3.9 — iteracion-5: renombrar y eliminar planos

      BacklogBugIteración 5
      • Bug iteracion-5 - Renombrar desde el editorGiven un plano abiertoWhen el arquitecto toca su nombre en la barra superior, escribe «Casa Pérez - revisión 2» y pulsa EnterThen el plano se llama así en el editor y en el listadoAnd si deja el nombre vacío ve «El plano necesita un nombre para guardarse» y conserva el anterior.
      • Bug iteracion-5 - Acciones en cada fila del listadoGiven el listado de planosWhen el arquitecto abre las opciones de una filaThen puede abrirlo para editarlo, renombrarlo o eliminarlo.
      • Bug iteracion-5 - Eliminar pide confirmaciónGiven el arquitecto elige eliminar un planoWhen confirmaThen el plano desaparece de su cuenta y del listadoAnd las cotizaciones que salieron de él se conservan, sin el enlace al plano.
    9. v2.0

      Backlog
      • Cambio v2.0 - Alta del documento de planoGiven que hasta v1.3 la aplicación no permitía dibujar planosWhen se agrega US-27 en v2.0Then el arquitecto dispone de planos propios que puede crear, nombrar, guardar, reabrir, renombrar y eliminar, con su contenido íntegro conservado entre sesiones.

    Formulario

    • Obligatorios Nombre del plano
    • Mensaje Nombre del plano: «El plano necesita un nombre para guardarse»
  2. US-28 Dibujar los muros del espacio

    Como arquitecto quiero dibujar los muros sobre el plano para definir la forma real de la construcción.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Trazar un muro y ver su longitudGiven un plano vacío abierto en modo de dibujo de murosWhen el arquitecto marca un punto inicial y un punto final separados 4 metrosThen se dibuja un muro entre ambos puntosAnd el editor muestra su longitud como "4,00 m".
    2. Flujo principal - Trazar muros encadenados y cerrar el contornoGiven el arquitecto dibujando muros de forma consecutivaWhen traza cuatro muros y termina sobre el punto inicialThen los cuatro muros quedan unidos por sus extremos formando un contorno cerrado.
    3. Flujo principal - Editar grosor y altura de un muroGiven un muro seleccionado con grosor 15 cm y altura 2,50 mWhen el arquitecto cambia el grosor a 20 cm y la altura a 2,70 mThen el muro pasa a tener esas medidasAnd el cambio se refleja en el plano.
    4. Flujo principal - Eliminar un muroGiven un muro que contiene una ventanaWhen el arquitecto elimina el muroThen el muro desaparece del planoAnd la ventana que contenía desaparece con él.
    5. Caso alternativo - Longitud inválidaGiven un muro seleccionado de 4,00 mWhen el arquitecto escribe una longitud de 0 mThen el sistema muestra "La longitud del muro debe ser mayor que 0"And el muro conserva su longitud anterior.
    6. Caso de borde - Ajuste automático al extremo de otro muroGiven el ajuste automático activado y un muro ya dibujadoWhen el arquitecto traza un muro nuevo cuyo extremo queda a menos de la distancia de ajuste del extremo del muro existenteThen ambos extremos se unen exactamente en el mismo punto.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta del trazado de murosGiven que hasta v1.3 no existía dibujo de planosWhen se agrega US-28 en v2.0Then el arquitecto puede trazar, encadenar, medir, editar y eliminar muros con medidas reales.
  3. US-29 Definir habitaciones y conocer su superficie

    Como arquitecto quiero definir las habitaciones y ver su superficie para conocer los metros cuadrados reales de cada ambiente.

    GREEN2026-10-16frontend

    Criterios de aceptación

    1. Flujo principal - Crear una habitación dentro de un contorno cerrado de murosGiven un contorno cerrado de muros que encierra un espacio de 4 m por 3 mWhen el arquitecto crea la habitación haciendo doble clic dentro del contornoThen se crea una habitación que ocupa ese espacioAnd el editor muestra su superficie como "12,00 m²".
    2. Flujo principal - Crear una habitación marcando sus vérticesGiven un plano abiertoWhen el arquitecto marca uno a uno los vértices de un polígono y cierra el recorridoThen se crea una habitación con ese contornoAnd el editor muestra su superficie calculada.
    3. Flujo principal - Nombrar una habitaciónGiven una habitación recién creadaWhen el arquitecto le asigna el nombre "Cocina"Then el nombre se muestra sobre la habitación en el plano.
    4. Caso alternativo - Polígono con vértices insuficientesGiven la creación de una habitación marcando vérticesWhen el arquitecto intenta cerrarla habiendo marcado solo 2 puntosThen el sistema muestra "Una habitación necesita al menos 3 puntos"And no se crea la habitación.
    5. Caso de borde - La superficie se recalcula al modificar el contornoGiven una habitación de 4 m por 3 m que muestra "12,00 m²"When el arquitecto desplaza uno de sus vértices hasta convertirla en 4 m por 4 mThen la superficie mostrada pasa a "16,00 m²".

    Historial de cambios

    1. Iteración 11 · Cambio: US-29 Todo lo resaltado en ámbar

      GREENfrontend f37ccc9
    2. v4.3 — iteracion-11: todo lo resaltado en ámbar

      BacklogCambioIteración 11
      • Cambio iteracion-11 - Lo elegido, en ámbarGiven un plano con muros, habitaciones, puertas, ventanas, mobiliario, trabes, columnas y cotasWhen el arquitecto elige cualquiera de ellosThen se resalta en ámbar, el mismo color de los recorridos, y no en azul.
      • Cambio iteracion-11 - La habitación elegida, igualGiven una habitación elegidaWhen se muestraThen su superficie se tiñe de ámbar y lo suyo se resalta en el mismo ámbar, como en iteracion-6.
      • Cambio iteracion-11 - Las manijas del muro elegidoGiven un muro elegidoWhen se muestran las manijas de sus extremosThen van en ámbar.
      • Cambio iteracion-11 - Lo que se dibuja no es un resalteGiven un muro, una habitación o una cota a medio dibujarWhen se ve su trazo provisionalThen sigue en azul: es lo que se está dibujando, no algo resaltado.
    3. Iteración 5 · Cambio: US-29 Tocar una habitación la selecciona con sus elementos y su resumen

      GREENfrontend d8dfaf5
    4. Iteración 6 · Cambio: US-29 La habitación elegida se distingue en ámbar

      GREENfrontend 98e5892
    5. v3.9 — iteracion-5: tocar una habitación la selecciona con todo lo suyo

      BacklogCambioIteración 5
      • Cambio iteracion-5 - La habitación se ilumina con sus elementosGiven un plano con habitacionesWhen el arquitecto toca el interior de una habitaciónThen queda seleccionadaAnd se resaltan sus muros, sus puertas y ventanas, y el mobiliario que está dentro.
      • Cambio iteracion-5 - El resumen habla de esa habitaciónGiven una habitación seleccionadaWhen el arquitecto mira el apartado «Resumen»Then ve su superficie en m², su perímetro en metros lineales, los m² de muro que la rodean, cuántas puertas, ventanas y muebles tiene, y los materiales de su suelo, su techo y sus muros.
      • Cambio iteracion-5 - Al soltarla vuelve el resumen del planoGiven una habitación seleccionadaWhen el arquitecto toca fuera de todoThen el resumen vuelve a ser el del plano completo.
    6. v4.0 — iteracion-6: la habitación elegida se distingue en ámbar

      BacklogCambioIteración 6
      • Cambio iteracion-6 - La zona elegida se marca en otro colorGiven un plano con habitacionesWhen el arquitecto toca una habitaciónThen su superficie se tiñe de ámbar y su contorno, sus muros, sus puertas y ventanas y su mobiliario se resaltan en ámbar, un color distinto del azul con que se marca un elemento suelto.
      • Cambio iteracion-6 - Se sigue leyendoGiven la habitación teñidaWhen el arquitecto la miraThen se siguen leyendo su nombre, su superficie y el acabado del suelo debajo del tinte.
    7. iteracion-6: la habitación elegida se marca en ámbar (warning #B26A00 de la marca), con tinte en su superficie, para distinguirla del azul de un elemento elegido suelto.

      Decisión
    8. v2.0

      Backlog
      • Cambio v2.0 - Alta de habitaciones con superficieGiven que hasta v1.3 los metros cuadrados se escribían a mano en la cotizaciónWhen se agrega US-29 en v2.0Then el arquitecto obtiene la superficie de cada ambiente calculada a partir del plano dibujado. Nota: en v2.0 el dato es informativo dentro del editor; su traslado automático a las cotizaciones corresponde a una etapa posterior.
  4. US-30 Colocar puertas y ventanas en los muros

    Como arquitecto quiero colocar puertas y ventanas sobre los muros para representar los accesos y las aberturas reales del espacio.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Insertar una puerta en un muroGiven un muro dibujado en el planoWhen el arquitecto coloca sobre él una puertaThen la puerta queda insertada en el muroAnd el muro muestra el hueco correspondiente en la posición de la puerta.
    2. Flujo principal - Aberturas disponibles sin importar ningún modeloGiven una cuenta que todavía no ha importado ningún modelo a su bibliotecaWhen el arquitecto abre las aberturas disponiblesThen dispone al menos de una puerta genérica y una ventana genérica listas para colocar.
    3. Flujo principal - Ajustar medidas de una ventanaGiven una ventana colocada en un muroWhen el arquitecto cambia su ancho a 1,20 m y la altura de su alféizar a 0,90 mThen la ventana y el hueco del muro se actualizan con esas medidas.
    4. Flujo principal - Desplazar una abertura a lo largo del muroGiven una puerta insertada en un muroWhen el arquitecto la arrastra a lo largo del muroThen la puerta permanece siempre dentro del muroAnd el hueco se desplaza junto con ella.
    5. Caso alternativo - Abertura más ancha que el muroGiven un muro de 2,00 m de longitudWhen el arquitecto intenta colocar en él una puerta de 2,50 m de anchoThen el sistema muestra "La abertura no cabe en el muro"And la abertura no se coloca.
    6. Caso de borde - Al eliminar la abertura el muro vuelve a ser continuoGiven un muro con una ventana insertadaWhen el arquitecto elimina la ventanaThen el muro se muestra continuo, sin hueco.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de puertas y ventanasGiven que el editor no dispone de catálogo de modelos propioWhen se agrega US-30 en v2.0Then el arquitecto puede insertar aberturas que recortan el muro, contando desde el primer uso con una puerta y una ventana genéricas aunque no haya importado ningún modelo.
  5. US-31 Importar modelos propios a la biblioteca de la cuenta

    Como arquitecto quiero importar mis propios modelos y tenerlos en mi biblioteca para amueblar mis planos con los objetos que yo elija.

    GREEN2026-10-20backend

    Criterios de aceptación

    1. Flujo principal - Importar una librería de mobiliario completaGiven un arquitecto en su biblioteca de modelosWhen importa un archivo de librería de mobiliarioThen todos los modelos que contiene quedan disponibles en su biblioteca con su nombre, su categoría y sus medidas realesAnd puede colocarlos en cualquiera de sus planos.
    2. Flujo principal - Importar un modelo individualGiven un arquitecto en su biblioteca de modelosWhen importa un archivo de modelo individual e indica su nombre y su categoríaThen el modelo aparece en su biblioteca con una vista previa.
    3. Flujo principal - Recomendación de catálogos gratuitos y aviso de atribuciónGiven un arquitecto cuya biblioteca está vacíaWhen abre la biblioteca de modelosThen ve una recomendación con el enlace a los catálogos gratuitos de Sweet Home 3DAnd se le informa de que debe atribuir a los autores de los modelos que utilice, según la licencia de cada catálogo.
    4. Caso alternativo - Formato de archivo no admitidoGiven un arquitecto importando un archivo a su bibliotecaWhen el archivo no corresponde a ninguno de los formatos admitidosThen el sistema muestra "Formato de modelo no admitido" e indica cuáles son los formatos válidosAnd no se agrega nada a la biblioteca.
    5. Caso alternativo - Archivo dañado o incompletoGiven un archivo de modelo corruptoWhen el arquitecto intenta importarloThen el sistema muestra "No se pudo leer el modelo"And la biblioteca queda igual que antes del intento.
    6. Caso de borde - Biblioteca aislada por cuentaGiven dos cuentas distintasWhen una de ellas importa modelos a su bibliotecaThen la otra cuenta no ve esos modelos en la suya.
    7. Flujo alterno - La biblioteca guarda con qué dibujar cada modeloGiven una biblioteca importadaWhen se guarda en la cuentaThen se conservan también las mallas, sus materiales y las miniaturas, no solo el nombre y las medidas de cada pieza.

    Historial de cambios

    1. Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

      GREENbackend 073df9f
    2. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    3. v2.0

      Backlog
      • Cambio v2.0 - Biblioteca de modelos propia del usuario, sin catálogo inicialGiven la decisión de no distribuir ningún modelo propio ni de tercerosWhen se agrega US-31 en v2.0Then cada cuenta construye su propia biblioteca importando sus modelos, el sistema se limita a recomendar los catálogos gratuitos de Sweet Home 3D, y la atribución de los autores queda como responsabilidad de quien los utiliza.
    4. v2.4

      Backlog
      • Cambio v2.4 - La biblioteca conserva los binariosGiven que hasta v2.3 solo se guardaba la ficha de cada modeloWhen se comprueba que sin sus mallas no hay nada que dibujarThen se amplía US-31 para conservarlas junto a sus materiales y miniaturas.
  6. US-32 Colocar y manipular objetos en el plano

    Como arquitecto quiero colocar objetos en el plano y ajustarlos para amueblar y equipar el espacio que estoy diseñando.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Colocar un objeto en una habitaciónGiven un plano con una habitación y un modelo disponible en la bibliotecaWhen el arquitecto arrastra el modelo al interior de la habitaciónThen el objeto queda colocado en esa posiciónAnd se muestra en el plano con sus medidas reales.
    2. Flujo principal - Mover, girar y redimensionar un objetoGiven un objeto colocado en el planoWhen el arquitecto lo desplaza, lo gira 90 grados y cambia su ancho a 1,60 mThen el objeto refleja la nueva posición, el nuevo giro y la nueva medida.
    3. Flujo principal - Elevar un objeto sobre el sueloGiven un objeto colocado a nivel de sueloWhen el arquitecto le asigna una elevación de 1,00 mThen el objeto se muestra a esa altura en la vista 3D.
    4. Flujo principal - Duplicar un objetoGiven un objeto seleccionadoWhen el arquitecto lo duplicaThen aparece una copia independiente con las mismas medidasAnd al eliminar el objeto original la copia permanece en el plano.
    5. Caso alternativo - Medida inválidaGiven un objeto seleccionado de 1,60 m de anchoWhen el arquitecto escribe un ancho de 0Then el sistema muestra "Las medidas del objeto deben ser mayores que 0"And el objeto conserva su medida anterior.
    6. Caso de borde - Mover varios objetos a la vezGiven tres objetos seleccionados simultáneamenteWhen el arquitecto los desplazaThen los tres se mueven manteniendo sus posiciones relativas entre sí.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de mobiliario en el planoGiven que hasta v1.3 no existía representación del espacioWhen se agrega US-32 en v2.0Then el arquitecto puede amueblar el plano colocando, moviendo, girando, redimensionando, elevando, duplicando y eliminando objetos.
  7. US-33 Trabajar en medidas reales y acotar el plano

    Como arquitecto quiero trabajar en medidas reales y poder acotar el plano para que lo dibujado corresponda con las dimensiones de la obra.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El plano trabaja en unidades realesGiven un plano configurado en metrosWhen el arquitecto dibuja un muro de 3,50 mThen el editor indica su longitud como "3,50 m".
    2. Flujo principal - Cambiar la unidad de medidaGiven un plano en metros con un muro de 3,50 mWhen el arquitecto cambia la unidad del plano a centímetrosThen la misma medida se muestra como "350 cm"And la geometría del plano no se altera.
    3. Flujo principal - Añadir una línea de cotaGiven dos puntos del plano separados 2,40 mWhen el arquitecto añade una línea de cota entre ambosThen la cota se dibuja indicando esa distancia real.
    4. Caso alternativo - Cota de longitud nulaGiven la creación de una línea de cotaWhen el arquitecto marca el mismo punto como inicio y como finThen el sistema muestra "La cota debe unir dos puntos distintos"And no se crea la cota.
    5. Caso de borde - La cota acompaña al elemento acotadoGiven una cota asociada a un muro de 3,50 mWhen el arquitecto alarga el muro hasta 4,00 mThen la cota se actualiza y muestra "4,00 m".

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de escala real y acotadoGiven que la fiabilidad de las medidas es la base del futuro cálculo de cantidadesWhen se agrega US-33 en v2.0Then el plano trabaja en unidades reales configurables y admite líneas de cota que se actualizan con los elementos.
  8. US-34 Deshacer y rehacer las acciones del editor

    Como arquitecto quiero deshacer y rehacer mis acciones en el editor para corregir errores sin perder el resto del trabajo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Deshacer la última acciónGiven un plano al que se acaba de añadir un muroWhen el arquitecto deshace la acciónThen el muro añadido desapareceAnd el resto del plano permanece igual.
    2. Flujo principal - Rehacer una acción deshechaGiven una acción recién deshechaWhen el arquitecto la rehaceThen el elemento vuelve a aparecer con las mismas medidas y en la misma posición que tenía.
    3. Flujo principal - Deshacer varias acciones consecutivasGiven cinco acciones consecutivas realizadas sobre el planoWhen el arquitecto deshace tres vecesThen el plano queda en el estado en que estaba tras la segunda acción.
    4. Caso de borde - No hay nada que deshacerGiven un plano recién abierto sobre el que no se ha hecho ningún cambioWhen el arquitecto intenta deshacerThen la opción de deshacer aparece deshabilitadaAnd el plano no cambia.
    5. Caso de borde - Una acción nueva descarta el rehacer pendienteGiven una acción deshecha pendiente de rehacerWhen el arquitecto realiza una acción nueva sobre el planoThen la opción de rehacer deja de estar disponible.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta del historial de ediciónGiven que un editor de planos exige corregir errores sin rehacer el trabajoWhen se agrega US-34 en v2.0Then toda acción del editor puede deshacerse y rehacerse en orden.
  9. US-35 Mostrar u ocultar los elementos del plano por capas

    Como arquitecto quiero mostrar u ocultar por capas los elementos del plano para revisar y presentar solo la información que necesito.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Ocultar una capaGiven un plano con muros, mobiliario y cotasWhen el arquitecto oculta la capa de mobiliarioThen los objetos de mobiliario dejan de verse en el planoAnd los muros y las cotas siguen visibles.
    2. Flujo principal - Volver a mostrar una capa ocultaGiven la capa de mobiliario ocultaWhen el arquitecto la vuelve a activarThen sus objetos reaparecen sin ningún cambio respecto a como estaban.
    3. Caso de borde - Los elementos de una capa oculta no se seleccionanGiven la capa de mobiliario ocultaWhen el arquitecto hace clic sobre la posición donde estaba un objeto de esa capaThen el objeto no queda seleccionado.
    4. Caso de borde - Ocultar una capa no elimina su contenidoGiven un plano con la capa de cotas ocultaWhen el arquitecto guarda el plano, lo cierra y lo vuelve a abrirThen las cotas siguen existiendo en el plano.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de capas del planoGiven la necesidad de exportar el plano separado por tipo de contenidoWhen se agrega US-35 en v2.0Then los elementos se organizan en capas (muros, habitaciones, aberturas, mobiliario y cotas) cuya visibilidad el arquitecto controla.
  10. US-36 Ver y recorrer el plano en vista 3D

    Como arquitecto quiero ver mi plano en 3D y recorrerlo para comprobar cómo queda el espacio antes de construirlo.

    GREEN2026-10-16frontend

    Criterios de aceptación

    1. Flujo principal - Ver el plano en tres dimensionesGiven un plano con muros, habitaciones, aberturas y mobiliarioWhen el arquitecto abre la vista 3DThen ve el espacio en tres dimensiones con los muros levantados a su altura, los huecos de las puertas y ventanas y los objetos en su posición.
    2. Flujo principal - Navegar por la escenaGiven la vista 3D abiertaWhen el arquitecto orbita, desplaza y acerca la cámaraThen la vista responde a cada movimiento mostrando el espacio desde el nuevo punto.
    3. Flujo principal - Cambiar entre vista aérea y vista de observadorGiven la vista 3D en vista aéreaWhen el arquitecto cambia a vista de observadorThen la cámara se sitúa a altura de persona dentro del espacioAnd puede recorrerlo desde ese punto de vista.
    4. Flujo principal - La vista 3D refleja los cambios del planoGiven la vista 3D abierta junto al planoWhen el arquitecto modifica la altura de un muro en el planoThen la vista 3D muestra el muro con la nueva altura.
    5. Caso de borde - Plano sin elementosGiven un plano que no contiene ningún elementoWhen el arquitecto abre la vista 3DThen ve la escena vacía con su suelo de referenciaAnd no se muestra ningún error.
    6. Flujo alterno - Se alterna entre la vista aérea y la del visitanteGiven el plano abiertoWhen el arquitecto elige la visitaThen la vista 3D pasa a mirar desde los ojos del visitante, y al volver a la aérea la cámara regresa a su sitio y no donde el paseo la dejó.

    Historial de cambios

    1. Iteración 11 · Cambio: US-36 La cámara aérea no baja del suelo

      GREENfrontend 66465c6
    2. Iteración 11 · Cambio: US-36 El suelo en gris tenue en 3D

      GREENfrontend 0c13a9e
    3. v4.3 — iteracion-11: la cámara no baja del suelo y el suelo se distingue

      BacklogCambioIteración 11
      • Cambio iteracion-11 - La cámara se detiene en el sueloGiven la vista aéreaWhen el arquitecto gira el plano hacia abajo con el cursorThen la cámara se detiene a ras del sueloAnd no se puede ver el plano desde abajo.
      • Cambio iteracion-11 - Desplazar tampoco lo hundeGiven la vista aéreaWhen el arquitecto desplaza la vista hacia abajoThen el punto de mira no baja del suelo y la cámara sigue encima.
      • Cambio iteracion-11 - Un punto de vista guardado tampocoGiven un punto de vista guardado por debajo del sueloWhen se aplicaThen la cámara queda a ras del suelo, no debajo.
      • Cambio iteracion-11 - El suelo en gris tenueGiven una habitación sin acabado de sueloWhen se abre la vista 3DThen su suelo se ve en un gris tenue, distinto de los muros y de la estructuraAnd un suelo con acabado se ve con su acabado.
    4. v2.0

      Backlog
      • Cambio v2.0 - Alta de la vista 3DGiven la decisión de ofrecer calidad realista sin cálculo de trazado de rayosWhen se agrega US-36 en v2.0Then el arquitecto recorre su plano en 3D en tiempo real, con iluminación, sombras y materiales realistas.
    5. v2.7

      Backlog
      • Cambio v2.7 - Dos maneras de mirar el 3DGiven que la vista 3D solo orbitaba el edificio desde fueraWhen se agrega el visitante virtual de US-60Then se amplía US-36 con la alternancia entre la vista aérea y la del visitante.
  11. US-37 Exportar el plano como imágenes separadas por capa

    Como arquitecto quiero exportar el plano como imágenes separadas por capa para poder componerlas y presentarlas a mi cliente.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Exportar las capas seleccionadasGiven un plano con contenido en las capas de muros, mobiliario y cotasWhen el arquitecto exporta el plano seleccionando esas tres capasThen obtiene una imagen PNG por cada capa seleccionadaAnd cada imagen contiene únicamente los elementos de su capa.
    2. Flujo principal - Todas las imágenes comparten encuadreGiven una exportación de varias capas del mismo planoWhen se generan las imágenesThen todas tienen el mismo encuadre y el mismo tamaño en píxeles, de modo que al superponerlas coinciden exactamente.
    3. Flujo principal - Fondo transparenteGiven la exportación del plano por capasWhen se genera cada imagen PNGThen su fondo es transparente para permitir superponer las capas.
    4. Caso alternativo - Ninguna capa seleccionadaGiven el diálogo de exportación del planoWhen el arquitecto intenta exportar sin haber seleccionado ninguna capaThen el sistema muestra "Selecciona al menos una capa para exportar"And no se genera ninguna imagen.
    5. Caso de borde - Plano sin elementosGiven un plano que no contiene ningún elementoWhen el arquitecto intenta exportarloThen el sistema muestra "El plano no tiene elementos para exportar"And no se genera ningún archivo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de la exportación del plano por capasGiven que el arquitecto necesita componer sus propias láminas de presentaciónWhen se agrega US-37 en v2.0Then puede exportar cada capa del plano como una imagen PNG independiente, todas con el mismo encuadre y fondo transparente.
  12. US-38 Exportar la imagen 3D desde un punto de vista definido

    Como arquitecto quiero guardar un punto de vista y exportar la imagen 3D desde ahí para entregar siempre la misma perspectiva a mi cliente.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Guardar un punto de vistaGiven la vista 3D situada en una perspectiva concretaWhen el arquitecto guarda ese punto de vista con el nombre "Salón desde la entrada"Then el punto de vista queda almacenado en el planoAnd puede recuperarse más adelante.
    2. Flujo principal - Exportar desde el punto de vista guardadoGiven un punto de vista guardado en el planoWhen el arquitecto exporta la imagen 3D seleccionando ese punto de vistaThen obtiene una imagen PNG tomada exactamente desde esa posición y orientación de cámara.
    3. Flujo principal - Elegir el tamaño de la imagenGiven la exportación de la imagen 3DWhen el arquitecto indica un tamaño de 1920 por 1080 píxelesThen la imagen generada tiene exactamente esas dimensiones.
    4. Flujo principal - Calidad realista en tiempo razonableGiven la exportación de la imagen 3DWhen se genera la imagenThen esta presenta iluminación, sombras y materiales realistasAnd la generación se completa en segundos, sin recurrir a cálculo por trazado de rayos.
    5. Caso alternativo - Exportar sin puntos de vista guardadosGiven un plano que no tiene ningún punto de vista guardadoWhen el arquitecto exporta la imagen 3DThen la exportación se realiza empleando la perspectiva actual de la cámara.
    6. Caso de borde - Recuperar un punto de vista tras reabrir el planoGiven un plano guardado que incluye un punto de vistaWhen el arquitecto lo reabre y selecciona ese punto de vistaThen la cámara vuelve exactamente a la posición y orientación almacenadas.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. v2.0

      Backlog
      • Cambio v2.0 - Alta de la exportación de la vista 3DGiven la decisión de exportar únicamente imágenes y no modelosWhen se agrega US-38 en v2.0Then el arquitecto obtiene imágenes PNG de su escena 3D desde puntos de vista que él mismo define y conserva en el plano.
  13. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    Como arquitecto quiero entrar al editor desde mi cuenta y saber qué puedo hacer en cada dispositivo para trabajar con la herramienta adecuada en cada momento.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Entrar al editor desde un equipo de escritorioGiven un arquitecto con sesión activa que usa un equipo de escritorioWhen accede a la sección de planos y abre unoThen entra al editor con sus herramientas de dibujo y edición disponibles.
    2. Flujo alterno - Abrir el editor desde un teléfonoGiven un arquitecto que abre un plano desde un teléfonoWhen se carga la secciónThen puede consultar el plano y su vista 3DAnd se le informa de que la edición está disponible en pantallas de escritorio.
    3. Caso alternativo - Acceso sin sesión iniciadaGiven un visitante sin sesión iniciadaWhen intenta abrir directamente la dirección del editorThen es llevado a la pantalla de inicio de sesión.
    4. Caso de borde - El editor no penaliza al resto de la aplicaciónGiven un arquitecto que usa la aplicación en su teléfono sin entrar al editorWhen navega por servicios, clientes, cotizaciones y proyectosThen la aplicación conserva su rapidez de carga habitual, sin verse afectada por el peso del editor.
    5. Flujo alterno - Las pantallas públicas enseñan obraGiven las pantallas de crear cuenta e iniciar sesiónWhen alguien las abreThen ve una fotografía de obra bajo el azul de la marca —en el escritorio como panel, en el teléfono como fondo velado— sin que los campos pierdan legibilidad.
    6. Flujo alterno - Volver al inicio desde el accesoGiven la pantalla de acceso o la de registroWhen alguien quiere volver a la landingThen dispone de un icono de inicio, sin tener que retroceder a ciegas.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. v5.6 — iteracion-28: el editor de escritorio desde 1024 px y su cromo con los colores del tema

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El escritorio empieza en 1024 pxGiven una pantalla de 1024 px o másWhen el arquitecto abre un planoThen ve el editor de escritorio, con el mobiliario, el lienzo y las propiedades lado a lado y la barra y las herramientas arribaAnd en una pantalla más angosta, como una tableta de 768 px, ve la vista de teléfono y tableta, donde el lienzo se consulta y se elige con un toque pero nada se arrastra.
      • Cambio iteracion-28 - La pista y el plano vacío siguen al temaGiven la aplicación en oscuroWhen el arquitecto abre un plano vacíoThen la pista de la herramienta y el aviso «Este plano está vacío» se ven sobre la superficie oscura del tema, con su texto legibleAnd el lienzo sigue siendo papel claro, como el plano impreso.
    3. Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

      GREENfrontend 06e1fe0
    4. v4.2 — iteracion-8: foto a plano, recorridos y cotizar en el teléfono

      BacklogCambioIteración 8
      • Cambio iteracion-8 - Foto a plano en el teléfonoGiven el editor abierto en un teléfonoWhen el arquitecto toca «Foto a plano»Then puede tomar una foto o elegirla de la galeríaAnd se convierte como en escritorio, con el cuestionario de medidas si hace falta.
      • Cambio iteracion-8 - Los recorridos en el teléfonoGiven un plano en el teléfonoWhen el arquitecto toca «Validar medidas» o «Asignar materiales»Then el recorrido se abre con el plano a la vista, centrado y resaltado en cada paso.
      • Cambio iteracion-8 - Cotizar en el teléfonoGiven un plano con servicios asignados en el teléfonoWhen el arquitecto toca «Cotizar»Then se crea o actualiza la cotización como en escritorio.
      • Cambio iteracion-8 - Guardar lo hecho en el teléfonoGiven cambios hechos en el teléfono (una conversión, un recorrido)When el arquitecto toca «Guardar»Then el plano queda guardadoAnd «Deshacer» quita lo último que se hizo.
      • Cambio iteracion-8 - Lo demás sigue en escritorioGiven el editor en un teléfonoWhen el arquitecto busca dibujar o editar muros, mobiliario, texturas o exportarThen no está: el aviso dice que esas herramientas son de escritorio.
    5. iteracion-8 #3: en el teléfono el editor ofrece Foto a plano (cámara o galería, sin capture), Validar medidas, Asignar materiales, Cotizar, Deshacer y Guardar; el dibujo sigue en escritorio y el lienzo del teléfono no arrastra nada. Al abrir un recorrido el lienzo sube a la vista (con espacio abajo para la pregunta) y los avisos salen arriba. La conversión en cotización va a pantalla completa en pantallas angostas, con el precio bajo la cantidad.

      Decisión
    6. v2.0

      Backlog
      • Cambio v2.0 - Alta del acceso al editor como módulo independienteGiven que la aplicación es de uso preferente en móvil pero el editor requiere pantalla grandeWhen se agrega US-39 en v2.0Then el editor vive en su propia sección orientada a escritorio, con consulta disponible en móvil y sin afectar al rendimiento del resto de la aplicación.
    7. v2.13

      Backlog
      • Cambio v2.13 - La primera pantalla dice a qué huele el oficioGiven que el acceso era un formulario sobre un degradado y no había forma de volver a la landingWhen se amplía US-39 en v2.13Then entran las fotografías de obra y el icono de inicio.
  14. US-40 Organizar el plano en varios niveles

    Como arquitecto quiero organizar el plano en varios niveles para diseñar edificaciones de más de una planta.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Añadir un nivelGiven un plano con un único nivel llamado "Planta baja"When el arquitecto añade el nivel "Planta alta" a 2,70 m de alturaThen el plano pasa a tener dos nivelesAnd el editor trabaja sobre el nivel que esté seleccionado.
    2. Flujo principal - Ver el nivel inferior como referencia para alinearGiven el nivel "Planta alta" seleccionadoWhen el arquitecto activa la referencia del nivel inferiorThen ve atenuados los muros de la "Planta baja" para alinear su trazado sobre ellos.
    3. Flujo principal - Ver todos los niveles en 3DGiven un plano de dos nivelesWhen el arquitecto abre la vista 3DThen ve ambas plantas situadas a su altura correspondiente.
    4. Caso alternativo - Eliminar un nivel con contenidoGiven un nivel que contiene muros y mobiliarioWhen el arquitecto intenta eliminarloThen el sistema advierte de que se perderán sus elementosAnd solo lo elimina tras la confirmación del arquitecto.
    5. Caso de borde - No se puede eliminar el último nivelGiven un plano que tiene un solo nivelWhen el arquitecto intenta eliminarloThen el sistema muestra "El plano debe tener al menos un nivel"And el nivel no se elimina.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Multinivel definido para oleada posteriorGiven la priorización aprobada, que sitúa el núcleo del editor por delanteWhen se define US-40 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  15. US-41 Calcar sobre la imagen de un plano existente

    Como arquitecto quiero importar la imagen de un plano existente como fondo y ajustar su escala para calcar sobre ella.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Importar una imagen de fondo y darle escalaGiven un plano vacíoWhen el arquitecto importa una imagen de fondo y marca sobre ella dos puntos indicando que la distancia real entre ambos es 5,00 mThen la imagen se escala para que esa distancia corresponda a 5,00 m en el plano.
    2. Flujo principal - Dibujar sobre la imagen escaladaGiven una imagen de fondo ya escaladaWhen el arquitecto traza muros siguiendo su contornoThen los muros adoptan las medidas reales que corresponden a esa escala.
    3. Flujo principal - Ocultar la imagen de fondoGiven un plano con imagen de fondo y muros calcados sobre ellaWhen el arquitecto oculta la imagenThen la imagen deja de verseAnd los muros dibujados permanecen.
    4. Caso alternativo - Archivo de imagen no admitidoGiven la importación de una imagen de fondoWhen el archivo no corresponde a un formato de imagen admitidoThen el sistema muestra "Formato de imagen no admitido"And no se aplica ningún fondo al plano.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend f16eca4
    3. v5.3 — iteracion-25: cancelar la escala no quita la imagen

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Cancelar la escalaGiven los dos puntos marcados y la pregunta de la distancia abiertaWhen el arquitecto toca «Cancelar», pulsa Esc o toca fueraThen la pregunta se cierra y se deja de escalarAnd la imagen de fondo sigue en el plano, con su escala de antes (para quitarla está «Quitar»).
    4. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Plano de fondo definido para oleada posteriorGiven la priorización aprobadaWhen se define US-41 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  16. US-42 Aplicar colores y texturas a los elementos

    Como arquitecto quiero aplicar colores y texturas a muros, suelos y objetos para presentar un resultado más cercano al acabado real.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Aplicar una textura al suelo de una habitaciónGiven una habitación creada en el planoWhen el arquitecto le aplica una textura de sueloThen la habitación muestra esa textura en la vista 3D.
    2. Flujo principal - Aplicar color a una cara del muroGiven un muro seleccionadoWhen el arquitecto aplica un color a una de sus carasThen esa cara se muestra con ese color en la vista 3DAnd la cara opuesta conserva su acabado anterior.
    3. Flujo principal - Importar una textura propia con su tamaño realGiven un arquitecto en sus materialesWhen importa una imagen como textura e indica que representa 60 cm por 60 cmThen la textura queda disponibleAnd se repite sobre las superficies respetando ese tamaño real.
    4. Caso de borde - Restablecer el acabado por defectoGiven un elemento con una textura aplicadaWhen el arquitecto restablece su materialThen el elemento vuelve a mostrar su acabado por defecto.
    5. Flujo alterno - Las imágenes de una biblioteca no viajan dentro del planoGiven una biblioteca de texturas importadaWhen se guarda el planoThen el documento guarda la referencia de cada imagen y no la imagen, de modo que una biblioteca entera no agota el almacenamiento.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    3. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada color, textura e «Importar textura» de las caras, el suelo y los objetosThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    4. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Texturas y materiales definidos para oleada posteriorGiven la priorización aprobadaWhen se define US-42 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
    5. v2.5

      Backlog
      • Cambio v2.5 - Las imágenes de biblioteca van al almacén de la cuentaGiven que una sola biblioteca de texturas es un megabyte de imágenesWhen se comprueba que dentro del documento no dejaría sitio para los planosThen se amplía US-42 para guardarlas aparte, dejando en el plano solo la referencia.
  17. US-43 Trazar muros curvos

    Como arquitecto quiero trazar muros curvos para representar espacios con formas no rectas.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Convertir un muro recto en curvoGiven un muro recto seleccionadoWhen el arquitecto le aplica una curvaturaThen el muro se dibuja curvado manteniendo sus mismos extremos.
    2. Flujo principal - Habitación delimitada por un muro curvoGiven un contorno cerrado que incluye un muro curvoWhen el arquitecto crea la habitaciónThen su superficie se calcula considerando la forma curva del contorno.
    3. Flujo principal - El muro curvo en la vista 3DGiven un muro curvo en el planoWhen el arquitecto abre la vista 3DThen el muro se muestra curvo y continuo, sin quiebres visibles.
    4. Caso de borde - Curvatura nula devuelve el muro rectoGiven un muro curvoWhen el arquitecto lleva su curvatura a ceroThen el muro vuelve a mostrarse recto entre sus extremos.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Muros curvos definidos para oleada posteriorGiven la priorización aprobadaWhen se define US-43 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  18. US-44 Agrupar elementos del plano

    Como arquitecto quiero agrupar varios objetos para moverlos y reutilizarlos como un conjunto.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Agrupar varios objetosGiven cuatro objetos seleccionados en el planoWhen el arquitecto los agrupa y nombra el grupo "Comedor"Then los objetos pasan a comportarse como un único elemento con ese nombre.
    2. Flujo principal - Mover el grupo completoGiven un grupo creadoWhen el arquitecto lo desplaza a otra habitaciónThen todos sus objetos se mueven manteniendo sus posiciones relativas.
    3. Flujo principal - DesagruparGiven un grupo de objetosWhen el arquitecto lo desagrupaThen sus objetos vuelven a ser elementos independientesAnd conservan la posición que tenían.
    4. Caso de borde - Agrupar requiere al menos dos elementosGiven un único objeto seleccionadoWhen el arquitecto intenta agruparloThen el sistema muestra "Selecciona al menos dos elementos para agrupar"And no se crea ningún grupo.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Agrupación definida para oleada posteriorGiven la priorización aprobadaWhen se define US-44 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  19. US-45 Indicar la orientación del plano

    Como arquitecto quiero indicar la orientación del plano para valorar la entrada de luz natural en el espacio.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Ajustar el norte del planoGiven un plano abiertoWhen el arquitecto gira la brújula para situar el norteThen el plano registra esa orientaciónAnd la muestra sobre el dibujo.
    2. Flujo principal - La luz del sol sigue la orientación indicadaGiven un plano con su norte definido y una fecha y una hora indicadasWhen el arquitecto abre la vista 3DThen la iluminación del sol se corresponde con esa orientación, esa fecha y esa hora.
    3. Caso de borde - Orientación por defecto en un plano nuevoGiven un plano recién creadoWhen el arquitecto no modifica la brújulaThen el norte queda en su orientación por defectoAnd esa orientación se indica en el plano.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.0 (definida — planificada para oleada posterior)

      Backlog
      • Cambio v2.0 - Orientación definida para oleada posteriorGiven la priorización aprobadaWhen se define US-45 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  20. US-46 Acotar con la línea de cota separada del elemento

    Como arquitecto quiero situar la línea de cota a la distancia que yo elija del elemento medido para que el plano se lea sin que las cotas se monten sobre el dibujo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Tres clics definen la cotaGiven la herramienta de cota activaWhen el arquitecto hace clic en el punto inicial, clic en el punto final y un tercer clic separado de esa líneaThen se crea una cota cuya medida es la distancia entre los dos primeros puntosAnd su línea queda a la separación marcada por el tercer clic.
    2. Flujo principal - La separación puede ir a cualquiera de los dos ladosGiven una cota en curso con sus dos puntos marcadosWhen el arquitecto mueve el puntero al lado contrario de la línea medidaThen la línea de cota se sitúa a ese lado.
    3. Flujo principal - La cota se dibuja como en un plano acotadoGiven una cota creadaWhen se muestra en el planoThen se dibujan líneas de referencia punteadas desde los puntos medidos hasta la línea de cota, una marca en cada extremo y la medida centrada sobre ella.
    4. Caso alternativo - Cota de longitud nulaGiven la herramienta de cota activaWhen el arquitecto marca el mismo punto como inicio y como finThen el sistema muestra "La cota debe unir dos puntos distintos"And no se crea la cota.
    5. Caso de borde - Abandonar el trazo con el clic derechoGiven una cota a medio trazarWhen el arquitecto hace clic derechoThen el trazo en curso se abandona sin crear la cotaAnd lo ya dibujado en el plano permanece intacto.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.1

      Backlog
      • Cambio v2.1 - La cota pasa de dos clics a tresGiven que hasta v2.0 la cota se creaba con dos clics y se dibujaba sobre la línea medidaWhen se agrega US-46 en v2.1Then el tercer clic fija la separación perpendicular y la cota se dibuja con líneas de referencia, marcas en los extremos y la medida centrada.
  21. US-47 Muros con altura distinta en cada extremo

    Como arquitecto quiero dar al muro una altura de inicio y otra de fin para representar hastiales y muros bajo cubierta inclinada.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Alturas distintas en cada extremoGiven un muro seleccionado de 2,50 m de alturaWhen el arquitecto le asigna 2,00 m de altura de inicio y 4,00 m de altura de finThen el coronamiento del muro pasa de una altura a la otra en línea recta.
    2. Flujo principal - La vista 3D muestra el muro inclinadoGiven un muro con alturas distintas en sus extremosWhen el arquitecto abre la vista 3DThen el muro se muestra con su remate inclinado, no con una altura constante.
    3. Caso alternativo - Altura no positivaGiven un muro seleccionadoWhen el arquitecto escribe una altura de extremo de 0Then el sistema rechaza el cambioAnd el muro conserva sus alturas anteriores.
    4. Caso de borde - Sin alturas por extremo el muro es de altura constanteGiven un muro al que no se le han dado alturas por extremoWhen se dibuja en el plano y en 3DThen usa su altura única en toda su longitud.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.1

      Backlog
      • Cambio v2.1 - Alta de muros de altura variableGiven que hasta v2.0 el muro tenía una sola alturaWhen se agrega US-47 en v2.1Then admite altura de inicio y de fin, conservando el comportamiento anterior cuando no se indican.
  22. US-48 Barra de elementos y catálogo de mobiliario

    Como arquitecto quiero los elementos de dibujo en una barra superior y el mobiliario en un panel propio con buscador para encontrar rápido lo que voy a colocar.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Los elementos de dibujo están en la barra superiorGiven el editor abierto en escritorioWhen el arquitecto observa la parte superiorThen encuentra, con su nombre visible, seleccionar, muro, habitación, puerta o ventana, mobiliario y cota.
    2. Flujo principal - El panel lateral muestra solo mobiliarioGiven el editor abiertoWhen el arquitecto observa el panel lateral izquierdoThen contiene únicamente los modelos de su biblioteca, agrupados por categoría.
    3. Flujo principal - Buscar un modelo por su nombreGiven una biblioteca con modelos de varias categoríasWhen el arquitecto escribe "silla" en el buscadorThen el panel muestra solo los modelos cuyo nombre contiene ese texto.
    4. Flujo principal - Elegir un modelo lo deja listo para colocarGiven un modelo del catálogoWhen el arquitecto hace clic sobre élThen queda seleccionadoAnd el siguiente clic en el plano coloca ese objeto.
    5. Caso alternativo - Búsqueda sin resultadosGiven un buscador con un texto que no coincide con ningún modeloWhen el arquitecto lo escribeThen el panel informa de que ningún modelo coincide, sin vaciar la biblioteca.
    6. Caso de borde - Biblioteca vacíaGiven una cuenta que no ha importado modelosWhen el arquitecto abre el panelThen se le recomienda los catálogos gratuitos de Sweet Home 3D y se le recuerda su responsabilidad de atribución.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    3. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada categoría y cada modelo del catálogo de mobiliarioThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    4. Iteración 1 · Bug: US-48 Barra de elementos y catálogo de mobiliario: pruebas de sus escenarios

      GREENfrontend 3d0c112
    5. v2.1

      Backlog
      • Cambio v2.1 - Reorganización del editorGiven que hasta v2.0 las herramientas ocupaban una barra vertical de iconos sin nombre y no había catálogo visibleWhen se agrega US-48 en v2.1Then los elementos pasan a una barra superior con nombre y el lateral izquierdo se dedica al catálogo de mobiliario con buscador y categorías.
  23. US-49 Trazar muros con esquinas limpias y con el ángulo a la vista

    Como arquitecto quiero que los muros se encuentren limpiamente en cada esquina y saber qué ángulo estoy tomando respecto al muro anterior, para que el plano se lea como un plano y para poder acertar el giro mientras dibujo, en vez de corregirlo después.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Dos muros consecutivos se cortan en la esquinaGiven dos muros que comparten un extremoWhen el arquitecto los observa en el planoThen sus costados se cortan donde se cruzan, sin hueco por fuera de la esquina ni resalte metido hacia dentro.
    2. Flujo principal - El ángulo se anuncia mientras se trazaGiven un muro recién trazado y la cadena abierta en su extremoWhen el arquitecto mueve el puntero para trazar el siguienteThen ve prolongada la dirección del muro anterior y el ángulo que está tomando respecto a ella, en grados.
    3. Flujo alterno - Girar a un lado o al otro se distinguenGiven una cadena en cursoWhen el arquitecto gira hacia un lado y luego hacia el contrarioThen las dos lecturas son distintas, porque el ángulo recorre la vuelta completa y no se dobla en 180°.
    4. Flujo alterno - Muros de distinto grosor también se encuentran en un puntoGiven dos muros consecutivos de grosor distintoWhen se encuentran en una esquinaThen sus costados se cortan igualmente en un único punto por cada lado.
    5. Caso de borde - Un cruce de más de dos muros queda a topeGiven tres o más muros que comparten un extremoWhen el arquitecto los observaThen los extremos se dibujan a escuadra, porque no hay una única línea contra la que cortar.
    6. Caso de borde - Un ángulo muy cerrado no dispara un picoGiven dos muros que vuelven casi uno sobre otroWhen se encuentranThen el extremo se deja a escuadra en lugar de proyectar una punta que cruce el dibujo.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.2

      Backlog
      • Cambio v2.2 - Alta de US-49Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-49 en v2.2 para cubrirlas.
  24. US-50 Dar al muro su color en planta y su coronamiento en 3D

    Como arquitecto quiero elegir con qué color se imprime cada muro en la planta y de qué color se ve su cara superior en 3D, para distinguir tipos de muro en el plano sin tener que tocar los acabados de sus caras.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Color del muro en la plantaGiven un muro seleccionadoWhen el arquitecto elige un color para el planoThen el muro se dibuja de ese color en la vista en planta, y sus caras conservan el acabado que tuvieran.
    2. Flujo principal - Color del coronamiento en la vista 3DGiven un muro seleccionadoWhen el arquitecto elige un color de coronamientoThen la cara superior del muro se ve de ese color en la vista 3D.
    3. Flujo principal - Pintar una cara no alcanza a la otraGiven un muro seleccionadoWhen el arquitecto pinta la cara izquierdaThen solo esa cara cambia: la derecha, la planta y el coronamiento siguen como estaban.
    4. Flujo alterno - Volver al valor por defectoGiven un muro con color propio en plantaWhen el arquitecto elige el valor automáticoThen el muro vuelve a dibujarse con el color por defecto y el documento no guarda color alguno para él.
    5. Caso de borde - Un muro inclinado también respeta cada una de sus carasGiven un muro con alturas distintas en cada extremoWhen se pinta una de sus carasThen solo esa cara cambia, igual que en un muro de coronamiento horizontal.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    3. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada color del muro en planta y del coronamiento, y «Auto»Then es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    4. v2.2

      Backlog
      • Cambio v2.2 - Alta de US-50Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-50 en v2.2 para cubrirlas.
    5. v2.3

      Backlog
      • Cambio v2.3 - El muro inclinado deja de compartir acabado entre sus carasGiven que en v2.2 un muro inclinado se construía de una pieza y sus dos caras compartían acabadoWhen se reconstruye en dos mitades que se encuentran en su línea centralThen cada cara conserva el suyo y el criterio que documentaba la limitación se sustituye por el comportamiento correcto.
  25. US-51 Editar un nivel sin que los demás estorben

    Como arquitecto quiero que solo se edite la planta en la que estoy, viendo las de abajo tenues como guía y sin las de arriba, para levantar un piso sobre otro sin confundir de quién es cada muro.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Las plantas inferiores sirven de guíaGiven un plano con dos plantas y la primera seleccionadaWhen el arquitecto mira el lienzoThen ve lo dibujado en la planta baja atenuado, con opacidad suficiente para guiarse y no tanta como para confundirlo con lo que está editando.
    2. Flujo principal - Las plantas superiores no se dibujanGiven un plano con dos plantas y la planta baja seleccionadaWhen el arquitecto mira el lienzoThen no ve nada de la planta primera.
    3. Flujo principal - Solo se selecciona lo del nivel activoGiven un muro de la planta baja y la primera seleccionadaWhen el arquitecto hace clic sobre ese muroThen no se selecciona nada.
    4. Flujo alterno - Lo que se dibuja queda en el nivel activoGiven la planta primera seleccionadaWhen el arquitecto traza un muroThen el muro pertenece a la planta primera y no aparece al volver a la planta baja.
    5. Flujo alterno - Los extremos de otra planta no atraenGiven un muro de la planta primera y la planta baja seleccionadaWhen el arquitecto empieza un muro junto a un extremo de aquelThen el punto no se pega a él.
    6. Caso de borde - Cambiar de planta suelta lo que estaba en cursoGiven una selección y una cadena de muros a medio trazarWhen el arquitecto cambia de plantaThen la selección se suelta y la cadena se abandona, sin que se dibuje nada entre ambas plantas.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.2

      Backlog
      • Cambio v2.2 - Alta de US-51Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-51 en v2.2 para cubrirlas.
  26. US-52 Importar mobiliario sin salir del editor

    Como arquitecto quiero importar modelos desde el propio catálogo del editor, sueltos o en biblioteca completa, para amueblar el plano en el momento en que me hace falta y no tener que abandonar el dibujo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Importar desde el catálogo del editorGiven el editor abiertoWhen el arquitecto usa el control de importación del catálogo y elige un modeloThen el modelo aparece en el catálogo, listo para colocarse, sin recargar ni salir del editor.
    2. Flujo principal - Una biblioteca entera de una vezGiven un archivo .sh3f o .zip con varios modelosWhen el arquitecto lo importaThen todos sus modelos quedan en la biblioteca de la cuenta, agrupados por su categoría.
    3. Flujo alterno - Varios archivos a la vezGiven varios archivos elegidos en una sola importaciónWhen se importanThen se añaden los modelos de todos ellos.
    4. Caso de borde - Un archivo ilegible no se lleva el restoGiven un lote en el que un archivo está corruptoWhen el arquitecto lo importaThen se explica cuál ha fallado y los demás se importan igualmente.
    5. Caso de borde - La biblioteca vacía dice por dónde empezarGiven una cuenta sin modelosWhen el arquitecto abre el catálogoThen se le ofrece importar, se le indican los formatos admitidos y se le recuerda que la atribución de los catálogos gratuitos es responsabilidad suya.
    6. Flujo alterno - Un paquete .zip sin catálogo también se abreGiven un archivo .zip con mallas sueltas y sin catálogo de Sweet Home 3DWhen el arquitecto lo importaThen cada malla admitida entra como un modelo, con la carpeta que la contenía como categoría, y lo que no sea una malla se ignora sin dar el paquete por ilegible.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.2

      Backlog
      • Cambio v2.2 - Alta de US-52Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-52 en v2.2 para cubrirlas.
    3. v2.3

      Backlog
      • Cambio v2.3 - Paquetes de modelos sin catálogoGiven que en v2.2 un .zip solo se abría si traía el catálogo de Sweet Home 3DWhen se comprueba que la mayoría de los packs de modelos viajan como una carpeta de mallas comprimidaThen se amplía US-52 para abrirlos igualmente, malla a malla.
  27. US-53 Salir del editor sin perder el trabajo

    Como arquitecto quiero poder volver a mis planos desde el editor y que se me avise si dejo trabajo sin guardar, para no quedarme atrapado en la pantalla ni perder lo dibujado.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Salir con todo guardadoGiven el editor abierto sin cambios pendientesWhen el arquitecto saleThen vuelve a la lista de planos sin más preguntas.
    2. Flujo principal - Salir con cambios pendientes avisaGiven trabajo dibujado desde el último guardadoWhen el arquitecto saleThen se le advierte y puede guardar y salir, salir sin guardar o seguir editando.
    3. Flujo alterno - Guardar y salir deja el plano almacenadoGiven cambios pendientesWhen el arquitecto elige guardar y salirThen el plano queda guardado con esos cambios y se vuelve a la lista.
    4. Caso de borde - Seguir editando no pierde nadaGiven el aviso de cambios pendientesWhen el arquitecto elige seguir editandoThen vuelve al plano tal como lo dejó, con sus cambios todavía sin guardar.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.2

      Backlog
      • Cambio v2.2 - Alta de US-53Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-53 en v2.2 para cubrirlas.
  28. US-54 Importar texturas al plano, sueltas o en paquete

    Como arquitecto quiero traer mis texturas al plano cuando me convenga —una imagen, un lote o un paquete .zip entero— y ver las que ya tengo, para no depender de haber seleccionado antes una superficie ni de importarlas de una en una.

    GREEN2026-10-20backend2026-10-31

    Criterios de aceptación

    1. Flujo principal - Importar sin nada seleccionadoGiven el editor abierto y ninguna selecciónWhen el arquitecto usa el importador de texturas del panelThen la textura queda en la paleta del plano, sin pintar nada todavía.
    2. Flujo principal - La paleta muestra lo que el plano ya tieneGiven un plano con texturas importadasWhen el arquitecto mira el panelThen las ve como muestras, cada una con su nombre y el tamaño real que cubre una baldosa.
    3. Flujo principal - Un paquete .zip entra enteroGiven un archivo .zip con varias imágenesWhen el arquitecto lo importa indicando el tamaño real de una baldosaThen todas sus imágenes quedan como texturas con ese mismo tamaño, nombradas por su archivo.
    4. Flujo alterno - Importar desde una superficie la pintaGiven una cara de muro, un suelo o un objeto seleccionadoWhen el arquitecto importa una textura desde esa superficieThen además de guardarse queda aplicada a ella.
    5. Flujo alterno - Una sola imagen se puede bautizarGiven una única imagen sueltaWhen el arquitecto le da un nombre al importarlaThen la textura se guarda con ese nombre; en un lote o un paquete cada una toma el de su archivo.
    6. Caso de borde - Un paquete sin imágenes se explicaGiven un .zip que no contiene ninguna imagen admitidaWhen el arquitecto lo importaThen se le explica y la paleta del plano queda como estaba.
    7. Caso de borde - Un tamaño real que no sea mayor que 0 se rechazaGiven una importación con ancho o alto real de 0When el arquitecto la confirmaThen se rechaza, porque sin tamaño real la textura no puede repetirse a escala.

    Historial de cambios

    1. v5.4 — iteracion-26: texturas y modelos de hasta 4 MB

      BacklogCambioIteración 26
      • Cambio iteracion-26 - Tope de 4 MB por archivoGiven una textura o un modelo de más de 4 MB, o un archivo cuyo contenido no es la imagen que dice serWhen lo importoThen la importación lo rechaza con su motivo (el tope de 4 MB o el tipo de archivo).
    2. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    3. v2.3

      Backlog
      • Cambio v2.3 - Alta de US-54Given que el importador de texturas solo existía dentro de una fila de colores y exigía tener algo seleccionadoWhen se comprueba en uso que resulta inencontrable y que las texturas suelen llegar en loteThen se agrega US-54 con un importador propio en el panel y soporte de paquetes .zip.
  29. US-55 Ver de verdad el mobiliario que se importa

    Como arquitecto quiero que los modelos que importo se vean como son —su forma en 3D, su miniatura en el catálogo y su nombre en el plano— para reconocer lo que estoy colocando en vez de mirar cajas grises iguales entre sí.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El modelo se dibuja con su malla en 3DGiven un modelo importado de una biblioteca que trae su mallaWhen el arquitecto lo coloca y mira la vista 3DThen ve la forma del modelo, con los materiales que su biblioteca declara, y no una caja.
    2. Flujo principal - El catálogo muestra la miniatura del paqueteGiven una biblioteca importada con miniaturasWhen el arquitecto abre el catálogoThen cada modelo se muestra con la suya.
    3. Flujo principal - El plano dice qué es cada piezaGiven piezas colocadas en el planoWhen el arquitecto mira la vista en plantaThen cada una lleva su nombre siempre que haya sitio para leerlo.
    4. Flujo alterno - La pieza ocupa exactamente el espacio declaradoGiven un modelo cuyas medidas reales declara el catálogoWhen se dibuja su mallaThen queda encajada en ese espacio, cada eje a su medida, sin salirse ni quedarse corta.
    5. Caso de borde - Una malla ilegible no hace perder la piezaGiven un modelo cuya malla no se puede leerWhen el arquitecto lo colocaThen se dibuja la caja de su tamaño, que es lo que el plano sabe con certeza, y el resto del plano sigue como estaba.
    6. Caso de borde - Una cuenta no ve los binarios de otraGiven dos cuentas con bibliotecas propiasWhen una pide la malla de un modeloThen solo obtiene las que ella misma importó.
    7. Caso de borde - Las rutas del catálogo se leen tal como el archivo las guardaGiven una biblioteca cuyo catálogo nombra sus archivos desde la raíz, con barra inicialWhen se importaThen cada modelo encuentra su malla y su icono, porque la ruta se normaliza a la que el archivo usa de verdad.
    8. Flujo principal - En planta se ve la forma del modelo, no su cajaGiven piezas colocadas de modelos importadosWhen el arquitecto mira la vista en plantaThen cada una se dibuja con el modelo visto desde arriba, de modo que se reconoce qué es y hacia dónde mira.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.4

      Backlog
      • Cambio v2.4 - Alta de US-55Given que de una biblioteca importada solo se guardaba la ficha y se descartaban sus mallas y miniaturasWhen se comprueba en uso que todo lo importado acaba en el plano como un cajón grisThen se agrega US-55 para guardar también los binarios y dibujar el modelo de verdad.
    3. v2.5

      Backlog
      • Cambio v2.5 - Rutas con barra inicialGiven que en v2.4 el modelo importado seguía dibujándose como una caja con bibliotecas realesWhen se comprueba que el catálogo pide «/carpeta/malla.obj» y el ZIP guarda «carpeta/malla.obj»Then se normalizan las rutas al leer el catálogo y se corrige US-55.
    4. v2.6

      Backlog
      • Cambio v2.6 - Vista cenital en el planoGiven que en planta cada objeto era un rectángulo en blancoWhen se comprueba que un plano se lee por la forma de las cosas que hay en élThen se amplía US-55 para dibujar el modelo visto desde arriba.
  30. US-56 Mover y soltar lo que ya está en el lienzo

    Como arquitecto quiero arrastrar por el plano lo que ya he dibujado y poder dejar de colocar objetos cuando quiera, para colocar las cosas donde van sin rehacerlas ni cambiar de herramienta.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El clic derecho suelta el modelo elegidoGiven la herramienta de mobiliario con un modelo armadoWhen el arquitecto hace clic derecho sobre el lienzoThen el catálogo deja de señalarlo como elegido y el siguiente clic ya no coloca nada.
    2. Flujo principal - Una cota se arrastra enteraGiven una cota trazadaWhen el arquitecto la arrastraThen se desplaza con sus dos extremos y sigue midiendo lo mismo.
    3. Flujo principal - Una habitación se arrastra enteraGiven una habitación definidaWhen el arquitecto la arrastraThen su contorno se desplaza completo y su superficie no cambia.
    4. Flujo alterno - La etiqueta viaja con la habitaciónGiven una habitación con nombre y superficie a la vistaWhen se arrastraThen su etiqueta se mueve con ella.
    5. Caso de borde - Arrastrar una cosa no mueve las demásGiven varias cotas y habitacionesWhen el arquitecto arrastra unaThen las otras se quedan donde estaban.
    6. Caso de borde - Una línea fina se puede agarrarGiven una cota dibujada a un píxel de grosorWhen el arquitecto va a arrastrarlaThen la agarra sin tener que acertar el píxel exacto.
    7. Flujo principal - Se arrastra un extremo del muroGiven un muro seleccionadoWhen el arquitecto arrastra uno de sus extremosThen los muros unidos a ese punto lo siguen, de modo que la esquina se mueve entera en lugar de romperse.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.4

      Backlog
      • Cambio v2.4 - Alta de US-56Given que solo el mobiliario se arrastraba y que colocar objetos no tenía forma de terminarWhen se usa el editor para amueblar un plano de verdadThen se agrega US-56 con el arrastre de cotas y habitaciones y la salida del modo de colocar.
    3. v2.8

      Backlog
      • Cambio v2.8 - La esquina se mueve enteraGiven que mover un muro obligaba a rehacer a mano las esquinas que tocabaWhen se agregan los tiradores de sus extremosThen se amplía US-56 con el arrastre que conserva las uniones.
  31. US-57 Importar bibliotecas de texturas .sh3t

    Como arquitecto quiero importar una biblioteca .sh3t completa y que cada textura llegue con el tamaño real de baldosa que su catálogo declara, para no tener que medir ni teclear nada y para que se repitan a escala verdadera desde el primer momento.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - La biblioteca entra enteraGiven un archivo .sh3tWhen el arquitecto lo importa desde la sección de texturasThen todas las texturas que su catálogo declara quedan en la paleta del plano, con el nombre que el catálogo les da.
    2. Flujo principal - Cada textura con SU tamañoGiven una biblioteca cuyo catálogo declara un azulejo de 15 × 30 cm y un panel de 1 × 0,5 mWhen se importaThen cada uno queda con su propio tamaño real, sin pedir uno común para el lote.
    3. Flujo alterno - Un paquete sin catálogo sí pide el tamañoGiven un .zip de imágenes sin catálogoWhen el arquitecto lo importaThen se le pide el tamaño real de una baldosa y vale para todas, porque un comprimido corriente no trae con qué distinguirlas.
    4. Flujo alterno - La textura se aplica como cualquier otraGiven una textura llegada de una bibliotecaWhen el arquitecto la elige para la cara de un muroThen se aplica y se ve, tanto en el plano como en la vista 3D.
    5. Caso de borde - Una biblioteca de mobiliario se reconoceGiven un .sh3f entregado al importador de texturasWhen se importaThen se explica que es una biblioteca de mobiliario y por dónde importarla, en vez de rechazarla como si estuviera rota.
    6. Caso de borde - Y una de texturas en el importador de modelos tambiénGiven un .sh3t entregado al importador de modelosWhen se importaThen se explica que es una biblioteca de texturas y por dónde importarla.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.5

      Backlog
      • Cambio v2.5 - Alta de US-57Given que las texturas de Sweet Home 3D viajan en bibliotecas .sh3t y el editor solo admitía imágenes sueltas o un .zip corrienteWhen se comprueba que su catálogo trae además el tamaño real de cada baldosaThen se agrega US-57 para importarlas enteras y con ese tamaño.
  32. US-58 Elegir y ajustar una puerta o una ventana ya colocada

    Como arquitecto quiero poder seleccionar una abertura del plano y cambiarle la anchura, la altura, el alféizar y su sitio en el muro, para corregirla sin tener que borrarla y volver a colocarla.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - La abertura gana al muro que la alojaGiven una puerta colocada en un muroWhen el arquitecto hace clic sobre ellaThen queda seleccionada la puerta, no el muro sobre el que está dibujada.
    2. Flujo principal - Se editan sus medidasGiven una abertura seleccionadaWhen el arquitecto cambia su anchura, su altura o su alféizarThen la abertura y el hueco del muro cambian con ellas, en el plano y en la vista 3D.
    3. Flujo principal - Se mueve por su muroGiven una abertura seleccionadaWhen el arquitecto indica su posiciónThen se desplaza a esa distancia, medida desde el arranque del muro hasta el centro de la abertura.
    4. Flujo alterno - A un lado de la abertura vuelve a elegirse el muroGiven un muro con una aberturaWhen el arquitecto hace clic fuera de ella pero sobre el muroThen queda seleccionado el muro.
    5. Caso de borde - La abertura nunca sale de su muroGiven una abertura junto al extremo del muroWhen se le da una anchura o una posición que la sacaríanThen se ajusta para seguir dentro del muro.
    6. Caso de borde - No se elige una abertura de otro nivelGiven una abertura de otra plantaWhen el arquitecto hace clic donde se veThen no se selecciona nada.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.6

      Backlog
      • Cambio v2.6 - Alta de US-58Given que una abertura no se podía seleccionar porque el clic acababa siempre en su muroWhen se comprueba en uso que no hay forma de corregir una puerta ya colocadaThen se agrega US-58.
  33. US-59 Girar, elevar y medir un objeto del plano

    Como arquitecto quiero cambiar el ancho, el fondo, la altura, la elevación y el giro de un objeto colocado, para ajustarlo al espacio real en vez de conformarme con la medida con la que vino de su catálogo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Se cambian sus medidasGiven un objeto seleccionadoWhen el arquitecto cambia su ancho, su fondo o su alturaThen la pieza pasa a ocupar ese espacio, en el plano y en la vista 3D.
    2. Flujo principal - Se eleva sobre el sueloGiven un objeto seleccionadoWhen el arquitecto le da una elevaciónThen la pieza se dibuja a esa altura sobre el suelo de su planta.
    3. Flujo principal - Se giraGiven un objeto seleccionadoWhen el arquitecto le indica un ángulo, o usa el cuarto de vueltaThen la pieza gira sobre su centro.
    4. Flujo alterno - Cambiar una pieza no toca las demásGiven varias piezas del mismo modeloWhen el arquitecto redimensiona unaThen las otras conservan sus medidas, porque cada ficha lleva las suyas.
    5. Caso de borde - Una medida que no sea mayor que 0 se rechazaGiven un objeto seleccionadoWhen el arquitecto le da ancho, fondo o altura de 0Then se rechaza y la pieza conserva las medidas que tenía.
    6. Flujo principal - Se invierte el objetoGiven un objeto colocadoWhen el arquitecto lo invierteThen se refleja como se refleja una imagen —la figura que apuntaba a la izquierda apunta a la derecha— sin cambiar de sitio ni de frente.
    7. Flujo principal - Se desplaza con las flechasGiven cualquier elemento seleccionadoWhen el arquitecto usa las flechasThen se desplaza a pasos finos, y a pasos gruesos con Mayúsculas, sin que ningún imán lo corrija.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.6

      Backlog
      • Cambio v2.6 - Alta de US-59Given que el panel del objeto solo ofrecía color y agrupaciónWhen se comprueba que amueblar de verdad exige girar, elevar y ajustar medidasThen se agrega US-59 sobre las operaciones que el dominio ya tenía.
    3. v2.8

      Backlog
      • Cambio v2.8 - Invertir y mover con el tecladoGiven que un objeto solo podía moverse arrastrando y no había manera de reflejarloWhen se agregan la inversión y el desplazamiento con las flechasThen se amplía US-59 con ambas.
  34. US-60 Recorrer el plano con un visitante virtual

    Como arquitecto quiero colocar sobre el plano a un visitante —con su altura de ojos, su orientación y su campo visual— y ver la escena desde sus ojos, para enseñar el espacio como se vive y no solo como se mide.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El visitante se dibuja y se coloca en el planoGiven el plano con la visita armadaWhen el arquitecto mira la vista en plantaThen ve al visitante con su cono de visión, y puede arrastrarlo hasta donde quiera situarlo.
    2. Flujo principal - La vista 3D mira desde sus ojosGiven un visitante colocado dentro de una habitaciónWhen el arquitecto pasa a la visitaThen la vista 3D muestra lo que se ve desde ahí, a la altura de sus ojos y con su campo visual.
    3. Flujo principal - Se conduce con las flechasGiven la visita en marchaWhen el arquitecto usa las flechasThen el visitante anda adelante y atrás y se desplaza a un lado y a otro, y la vista lo sigue.
    4. Flujo alterno - Se ajusta desde el panelGiven un visitante colocadoWhen el arquitecto cambia su posición, su altura de ojos, el giro del cuerpo o de la cabeza, o su campo visualThen la vista cambia con ellos.
    5. Flujo alterno - Viaja con el planoGiven un visitante colocadoWhen el arquitecto guarda y vuelve a abrir el planoThen el visitante sigue donde lo dejó.
    6. Caso de borde - Un plano que nadie ha recorrido ofrece igualmente el paseoGiven un plano sin visitante guardadoWhen el arquitecto arma la visitaThen se supone uno de pie en medio de lo dibujado, en lugar de no ofrecer nada.
    7. Caso de borde - Andar no llena el historialGiven una visita en marchaWhen el arquitecto recorre una habitación a pasosThen deshacer no le hace desandar paso a paso, porque mover una cámara no es dibujar; colocarlo desde el plano sí queda registrado.
    8. Caso de borde - La cabeza no gira más allá del cielo ni del sueloGiven un visitante colocadoWhen se le pide un giro de cabeza mayor que mirar recto arriba o recto abajoThen se recorta ahí, porque un cuello se para ahí.
    9. Flujo principal - Se mira arrastrandoGiven la visita en marchaWhen el arquitecto arrastra sobre la vista 3DThen el cuerpo gira con el movimiento horizontal y la cabeza se inclina con el vertical, que es el reparto que todo recorrido en primera persona usa.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.7

      Backlog
      • Cambio v2.7 - Alta de US-60Given que la vista 3D solo se podía orbitar desde fueraWhen se comprueba que enseñar un espacio exige recorrerlo desde dentroThen se agrega US-60 con el visitante virtual.
    3. v2.8

      Backlog
      • Cambio v2.8 - El ratón mira y el teclado andaGiven que las flechas hacían a la vez de giro y de avance y no había forma de mirar alrededorWhen se separa mirar de moverseThen el arrastre gira la cabeza y las flechas quedan para andar y desplazarse de lado.
  35. US-61 Que el mobiliario se pegue solo a lo que tiene al lado

    Como arquitecto quiero que al colocar o arrastrar una pieza se apoye sola en el muro o en el mueble que tiene al lado, para que el plano quede exacto sin perseguir el milímetro con el ratón.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Se apoya en el muroGiven una pieza soltada cerca de un muroWhen el arquitecto suelta el botónThen la pieza queda contra la cara del muro y cuadrada con su dirección.
    2. Flujo principal - Se pone a tope con la pieza vecinaGiven una pieza soltada junto a otra ya colocadaWhen no hay ningún muro más cercaThen las dos quedan a tope, sin holgura ni solape.
    3. Flujo alterno - El muro gana sobre la pieza vecinaGiven una pieza que cae a la vez cerca de un muro y de otra piezaWhen se sueltaThen se apoya en el muro, que es donde el mobiliario acaba de verdad.
    4. Caso de borde - Lejos de todo no se mueve nadaGiven una pieza soltada en medio de la habitaciónWhen no hay nada dentro del alcance del imánThen se queda exactamente donde se soltó: el imán ayuda, no decide.
    5. Caso de borde - El teclado no se corrige soloGiven una pieza seleccionadaWhen el arquitecto la desplaza con las flechasThen ningún imán la mueve, para que quede una forma de colocar algo exactamente donde se quiere.
    6. Caso de borde - No se pega a otro nivelGiven un muro de la planta de abajo bajo la pieza que se colocaWhen se suelta en la planta que se editaThen ese muro no la atrae, porque no está en el nivel que se dibuja.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.8

      Backlog
      • Cambio v2.8 - Nace el imánGiven que arrimar un mueble a la pared exigía acertar al milímetro con el ratónWhen se agrega US-61 en v2.8Then colocar y arrastrar pegan la pieza a lo que tiene al lado.
  36. US-62 Distinguir la superficie de la habitación con sus muros

    Como arquitecto quiero que dibujar una habitación levante también sus muros, y tener aparte una superficie para el suelo suelto, para no trazar dos veces el mismo contorno.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - La habitación llega con sus murosGiven el contorno marcado con la herramienta de habitaciónWhen el arquitecto lo cierraThen queda la superficie y además los muros que la cierran.
    2. Flujo principal - La superficie deja solo el sueloGiven el mismo contorno marcado con la herramienta de superficieWhen se cierraThen queda el suelo y ni un muro.
    3. Flujo principal - El lado compartido no se duplicaGiven una habitación dibujada pegada a otra que ya tiene murosWhen se cierra el contornoThen el lado que comparten no recibe un segundo muro y las dos comparten esa pared.
    4. Caso de borde - Un muro más corto que el lado no lo da por cerradoGiven un muro que solo cubre parte de un ladoWhen se levanta la habitaciónThen ese lado recibe su muro igualmente, en vez de quedarse medio abierto.
    5. Caso de borde - Los muros nacen en el nivel que se editaGiven varias plantas y una habitación dibujada en una de ellasWhen se levantan sus murosThen quedan en esa planta y no en otra.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.8

      Backlog
      • Cambio v2.8 - Nacen superficie y habitaciónGiven que crear una habitación solo dejaba el suelo y los muros había que trazarlos aparteWhen se agrega US-62 en v2.8Then la herramienta se parte en superficie y habitación.
  37. US-64 Desplegables con la apariencia de la aplicación

    Como usuario autenticado quiero que las listas de la aplicación se abran con su propia apariencia y no con el selector del teléfono, para que la aplicación se sienta de una pieza.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - El menú es el de la aplicaciónGiven el usuario en un teléfonoWhen abre el selector de cliente o de servicioThen ve la lista con los colores, la tipografía y las esquinas de la aplicación, y no la hoja gris del sistema operativo.
    2. Caso de borde - Mientras no se elige nada se lee la invitaciónGiven un desplegable sin elección hechaWhen el usuario lo miraThen lee 'Selecciona…' en lugar de un campo en blanco.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.9

      Backlog
      • Cambio v2.9 - Los desplegables dejan de ser del sistemaGiven una captura de un teléfono real donde la lista de clientes se abría en gris oscuro sobre una aplicación claraWhen se agrega US-64 en v2.9Then los desplegables se pintan con el tema de la aplicación.
  38. US-65 Ver la contraseña al escribirla

    Como usuario quiero poder ver la contraseña que estoy escribiendo para no quedarme fuera por una letra que el teclado del teléfono no me deja comprobar.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Se muestra y se vuelve a ocultarGiven el usuario escribiendo su contraseñaWhen pulsa el ojo del campoThen ve lo que escribió, y al pulsarlo de nuevo vuelve a ocultarse sin perder lo escrito.
    2. Caso de borde - Empieza ocultaGiven el formulario recién abiertoWhen el usuario mira el campoThen la contraseña está oculta, porque puede haber alguien mirando por encima del hombro.
    3. Flujo alterno - También al crear la cuentaGiven el formulario de crear cuentaWhen el usuario escribe su contraseñaThen dispone del mismo ojo para comprobarla.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend da9534a
    2. v2.10

      Backlog
      • Cambio v2.10 - Nace el ojo del campoGiven que una contraseña mal escrita en el teléfono era invisible y el único aviso era un acceso fallidoWhen se agrega US-65 en v2.10Then el campo ofrece verla.
  39. US-66 Errores del servidor contados en una frase

    Como usuario quiero que un fallo del servidor se explique con una frase que pueda leer y reportar, y no con el contenido técnico que devolvió.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Una página de error no se muestra tal cualGiven un servidor que responde con una página de error en HTMLWhen la aplicación lo muestraThen el aviso dice qué pasó y con qué código, sin una sola etiqueta HTML en pantalla.
    2. Flujo principal - Los mensajes del servidor sí se muestranGiven un error de validación del servidor —'El precio debe ser mayor a 0'—When la aplicación lo muestraThen se lee tal cual, porque está escrito para la persona.
    3. Caso de borde - Sin conexión se habla de la conexiónGiven una petición que no llega a ningún sitioWhen fallaThen el aviso habla de revisar la conexión y no de un problema del servidor.
    4. Caso de borde - El código va en el mensajeGiven un fallo del que solo se conoce el códigoWhen se muestraThen el número aparece en el aviso, que es lo que convierte un «no funciona» en algo reportable.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.10

      Backlog
      • Cambio v2.10 - El aviso deja de escupir HTMLGiven una captura donde el formulario de acceso mostraba `<!doctype html> <html lang="en">…` en el aviso rojoWhen se agrega US-66 en v2.10Then un cuerpo que es una página web se traduce a una frase.
  40. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Como usuario autenticado quiero ver mis proyectos en una lista por cliente y entrar al que me interesa, para no tener que recorrer el trabajo de todos para llegar a uno.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Una fila por proyectoGiven varios proyectos en la cuentaWhen el usuario abre ProyectosThen ve una tabla con el nombre del cliente, el estado, lo cotizado y el avance de cada uno.
    2. Flujo principal - La fila lleva al proyectoGiven la lista de proyectosWhen el usuario toca una filaThen se abre la pantalla de ese proyecto, con su tarjeta de registrar avances, sus cobros y su cierre.
    3. Caso de borde - En un teléfono no se corta el nombreGiven un cliente de nombre largo en una pantalla pequeñaWhen el usuario mira la tablaThen lee el nombre completo, con el importe debajo en lugar de en su propia columna.
    4. Caso de borde - Un proyecto que ya no estáGiven una dirección de proyecto que no existeWhen el usuario la abreThen se le dice que no se encontró, en lugar de dejarle una pantalla en blanco.
    5. Flujo principal - El proyecto se lee por seccionesGiven la pantalla de un proyectoWhen el arquitecto la miraThen encuentra el avance arriba, el registro de avance en su propia sección y los cobros en la suya, en lugar de todo amontonado en una tarjeta.
    6. Flujo alterno - Cerrar el proyecto es el último pasoGiven un proyecto en cursoWhen el arquitecto llega al final de su pantallaThen encuentra «Finalizar proyecto» fuera de las tarjetas, como el paso final que es.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 409ce23
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend 6236451
    3. v5.7 — iteracion-29: las tarjetas del proyecto, solo con su título

      BacklogCambioIteración 29
      • Cambio iteracion-29 - Las tarjetas del proyecto, solo con su títuloGiven el usuario en la pantalla de un proyectoWhen ve sus tarjetas (Avance, Cobros, Registrar avance, Avances registrados, Reparto de servicios y Pagos al personal)Then cada una lleva solo su título, sin un ícono encima, como pide el manual de marca, y la pieza de la tarjeta ya no acepta uno.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    5. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente», «Cotizado» o «Avance»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Avance» (menos avance primero) ya se ve ordenada.
    6. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 90794cb
    7. v4.9 — iteracion-17: los proyectos se piden por páginas y cada uno se abre solo

      BacklogCambioIteración 17
      • Cambio iteracion-17 - La lista no trae los avancesGiven una cuenta con 30 proyectos con avances y fotosWhen el usuario abre ProyectosThen recibe los primeros 20 con su cliente, avance e importes, sin los avances ni las fotos de cada uno.
      • Cambio iteracion-17 - Abrir un proyecto pide solo ese proyectoGiven el enlace de un proyectoWhen el usuario lo abre, desde la lista o desde un enlace compartidoThen se carga ese proyecto con sus avances y fotos, sin descargar la lista.
      • Cambio iteracion-17 - Filtrar y ordenar en todoWhen el usuario filtra Estado por «En curso» y ordena por menos avanceThen el primero es el proyecto en curso con menos avance de toda la cuenta.
      • Cambio iteracion-17 - Sin acciones en loteGiven la lista de proyectosWhen el usuario la miraThen no hay casillas de selección, porque terminar un proyecto se hace desde su pantalla, con su saldo y su documento.
    8. Iteración 13 · Cambio: US-67 Estado de error en Proyectos y su detalle

      GREENfrontend b65e628
    9. v4.5 — iteracion-13: la lista de proyectos dice cuándo no cargó

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Error al cargarGiven que la lista de proyectos no se pudo cargarWhen se abre ProyectosThen se explica que no se pudo cargarAnd hay un botón para reintentarAnd no se muestra como si no hubiera proyectos.
    10. v2.12

      Backlog
      • Cambio v2.12 - La lista deja de ser el tallerGiven que cada proyecto traía su formulario entero dentro de la listaWhen se agrega US-67 en v2.12Then la lista sirve para encontrar y la pantalla del proyecto para trabajar.
    11. v2.13

      Backlog
      • Cambio v2.13 - El detalle deja de ser una sola tarjetaGiven que avance, formulario, cobros y cierre compartían una tarjeta y había que recorrerla entera para encontrar cualquier cosaWhen se amplía US-67 en v2.13Then cada cosa tiene su sección y el cierre queda aparte.

    Lista

    • Página 20 registros por página
    • Busca en Cliente
    • Filtros Estado (varios valores: En curso, Terminado)
    • Orden Menos avance · también por Avance, Cotizado, Cliente
  41. US-68 Leer la cotización completa en el teléfono

    Como usuario autenticado quiero leer el detalle de una cotización de un vistazo en mi teléfono, para revisarla antes de enviársela al cliente.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Cada partida se lee enteraGiven una cotización abierta en un teléfonoWhen el usuario mira una partidaThen lee el concepto y su importe en una línea, y la cantidad por el precio en la siguiente, sin arrastrar la pantalla de lado.
    2. Flujo principal - Las acciones caben en una líneaGiven el detalle abiertoWhen el usuario mira el pieThen encuentra editar, compartir y ver el documento sin que ninguno se salga de la pantalla.
    3. Caso de borde - Una cotización que ya es proyectoGiven una cotización convertida en proyectoWhen el usuario abre su detalleThen no se le ofrece editarla ni volver a iniciarla.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.12

      Backlog
      • Cambio v2.12 - El detalle deja de cortarseGiven una captura donde el precio y el importe se salían por la derecha del modal y había que arrastrar de lado para leerlosWhen se agrega US-68 en v2.12Then cada partida se apila y en pantalla pequeña el detalle ocupa la pantalla entera.
  42. US-69 Consultar mi cuenta y salir desde un mismo menú

    Como usuario autenticado quiero un menú de cuenta con mi perfil y la salida, para ver mis datos y para no cerrar sesión sin querer.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - La cuenta se abre en un menúGiven la aplicación abiertaWhen el usuario toca el icono de cuentaThen ve dos opciones: ir a su perfil y salir, esta última en rojo.
    2. Flujo principal - Mi perfil muestra los datos de la cuentaGiven el usuario en su perfilWhen mira la pantallaThen ve su correo, si está verificado, desde cuándo existe la cuenta, y el plan con su estado.
    3. Caso de borde - Una cuenta sin suscripciónGiven una cuenta sin suscripción asociadaWhen el usuario abre su perfilThen se le dice que no la tiene, en lugar de dejar la sección vacía.
    4. Caso de borde - Salir deja de estar suelto en la barraGiven la barra superiorWhen el usuario la recorreThen no encuentra un botón de salir a un toque de distancia de cualquier otra cosa.
    5. Flujo principal v3.3 - Las secciones del perfilGiven mi perfilWhen lo abroThen veo, en orden, el correo de acceso, la contraseña, la suscripción y, al final, eliminar la cuenta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. v5.6 — iteracion-28: si la cuenta no llega, Perfil y Plan lo dicen y dejan reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si la cuenta no llega, Perfil y Plan lo dicen y dejan reintentarGiven la persona abre Perfil o Plan en Mi perfilAnd el servidor no entrega su cuentaWhen se pinta la secciónThen dice «No se pudo cargar tu cuenta.» con el motivo que dio el servidor y el botón «Reintentar»And no queda debajo un esqueleto esperando la cuentaAnd al tocar «Reintentar» se vuelve a pedir y aparecen el correo y la suscripción.
    3. v5.6 — iteracion-28: menú de la cuenta con el DropdownMenu del kit

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El menú de la cuenta del kitGiven el usuario toca «Mi cuenta»When se abre el menúThen aparece con su animación y conserva el orden: su correo; Mi perfil; Organización; Colaboradores (si administra); la empresa (si trabaja en más de una); la fila «Tema» con Claro, Oscuro y Sistema; Guías, Documentos legales e Instalar app; y al final «Cerrar sesión» en rojoAnd se cierra al elegir, al tocar fuera y con Esc, pero no al elegir el tema.
      • Cambio iteracion-28 - El botón de la cuenta desde 768 pxGiven una pantalla de 768 px o másWhen el usuario mira la barra superiorThen el botón de la cuenta muestra el avatar con la inicial de su correo y el correo al lado, truncadoAnd en un teléfono muestra solo la inicial.
    4. Iteración 23 · Cambio: Menú de la cuenta con el orden del estándar: «Mi perfil» y «Cerrar sesión» (antes «Ir a mi perfil» y «Salir»)

      GREENfrontend f2b2c5a
    5. Iteración 23 · Cambio: Botón de la cuenta con avatar: inicial y correo desde 600 px, solo la inicial en el teléfono

      GREENfrontend c20959d
    6. Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

      GREENfrontend 823acbe
    7. v5.2 — iteracion-23: menú de cuenta y perfil con el estándar de configuración

      BacklogCambioIteración 23
      • Cambio iteracion-23 - Cerrar sesión y Mi perfilGiven el menú de la cuenta abiertoWhen el usuario lo recorreThen ve, en orden: su correo como encabezado; Mi perfil; Organización; Colaboradores (si administra); la empresa (si trabaja en más de una); Tema; Guías, Documentos legales e Instalar app; y al final «Cerrar sesión» en rojoAnd ya no dice «Salir» ni «Ir a mi perfil».
      • Cambio iteracion-23 - El botón de la cuenta dice quién esGiven una pantalla de 600 px o másWhen el usuario mira la barra superiorThen el botón de la cuenta muestra un avatar con la inicial de su correo y el correo al ladoAnd en el teléfono muestra solo el avatar con la inicial.
      • Cambio iteracion-23 - Mi perfil por seccionesGiven el usuario en Mi perfilWhen lo abreThen ve una navegación con Perfil, Cuenta, Plan y Apariencia, la activa marcadaAnd cada sección tiene su dirección (/profile, /profile/account, /profile/plan, /profile/appearance)And Perfil muestra su correo y desde cuándo existe la cuenta.
    8. Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

      GREENbackend 23c6d4d
    9. v4.4 — iteracion-12: salir cierra la sesión de verdad

      BacklogBugIteración 12
      • Bug iteracion-12 - Salir invalida la sesiónGiven una sesión abiertaWhen la persona toca «Salir»Then esa sesión ya no sirve, ni en ese dispositivo ni si alguien la copió.
    10. v2.13

      Backlog
      • Cambio v2.13 - Nace el menú de cuentaGiven que salir era lo único que se podía hacer con la cuenta y estaba suelto en la barraWhen se agrega US-69 en v2.13Then la cuenta pasa a tener menú y pantalla propia.
    11. v3.3

      Backlog
      • Cambio v3.3 - Perfil con correo, contraseña y eliminar cuentaGiven que el perfil sólo mostraba la cuenta y la suscripciónWhen se revisa US-69 en v3.3Then también cambia el correo y la contraseña, y elimina la cuenta.
    12. v3.6

      Backlog
      • Cambio v3.6 - Texto alineado con el sistemaGiven que el perfil decía mostrar el teléfonoWhen se revisa US-69 en v3.6Then muestra el correo de acceso; el teléfono es de la organización (US-118).
  43. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    Como arquitecto quiero que el listado de planos se vea y funcione como el resto de la aplicación, para no sentir que salí de ella al abrirlo.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Los planos son una pantalla másGiven el usuario en la aplicaciónWhen abre «Planos»Then lo hace sin salir de la barra de navegación, con el mismo encabezado y la misma tabla que proyectos.
    2. Flujo principal - Cada fila abre su planoGiven el listado de planosWhen el usuario toca una filaThen entra al editor de ese plano, que sí ocupa la pantalla entera.
    3. Flujo principal - La lista no carga el editorGiven un teléfonoWhen el usuario mira el listado de planosThen no se descarga el módulo de dibujo 2D/3D, que sigue reservado al editor.
    4. Caso de borde - Sin planos todavíaGiven una cuenta sin planosWhen abre la pantallaThen ve el mismo vacío ilustrado que las demás listas, con la invitación a crear el primero.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    3. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Plano» o «Modificado»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Modificado» (lo más reciente primero) ya se ve ordenada.
    4. v5.1

      BacklogCambioIteración 20
      • Revisada: «Renombrar» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Renombrar» queda una por una porque cada plano lleva su propio nombre; así ya funciona.
    5. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend c2db9b3
    6. v4.9 — iteracion-17: la lista de planos se recorre por páginas y se elimina en lote

      BacklogCambioIteración 17
      • Cambio iteracion-17 - La lista se corta en páginasGiven 45 planos en la cuentaWhen el usuario abre PlanosThen ve los 20 más recientes y el contador «1–20 de 45».
      • Cambio iteracion-17 - Sincronizar no es descargar todo de una vezGiven 300 planos en la cuentaWhen el dispositivo se pone al día con el servidorThen pide los resúmenes por páginas de 100 y solo baja el contenido de los que abre o cambiaron.
      • Cambio iteracion-17 - Eliminar variosGiven el usuario selecciona 3 planosWhen elige «Eliminar» y confirma «¿Eliminar 3 planos?»Then desaparecen del dispositivo y de la cuentaAnd ve «3 planos eliminados».
    7. v2.15

      Backlog
      • Cambio v2.15 - El listado vuelve a la aplicaciónGiven que el listado era una rejilla de tarjetas con su propio botón de «Volver», fuera del armazón de la aplicaciónWhen se agrega US-78 en v2.15Then vive dentro de él y se lee como las demás listas.

    Lista

    • Página 20 registros por página
    • Busca en Nombre
    • Orden Más reciente · también por Último cambio, Nombre
    • Acciones de fila Abrir, Renombrar, Eliminar
    • En lote Eliminar (por registro, pide confirmación)
    • Sin lote Renombrar: cada plano lleva su propio nombre
  44. US-92 Que mis planos estén donde yo esté

    Como arquitecto que dibuja en la computadora del despacho quiero abrir ese mismo plano en el teléfono de la obra, para enseñarlo y consultarlo sin volver a dibujarlo.

    GREEN2026-10-22backend · frontend

    Criterios de aceptación

    1. Flujo principal - El plano viaja con la cuentaGiven un plano guardado en la computadoraWhen entro con la misma cuenta en otro dispositivoThen aparece en la lista de planos y puedo abrirlo con lo dibujado.
    2. Flujo principal - En el teléfono es para consultarGiven un plano abierto en el teléfonoWhen lo miroThen veo la planta, la vista 3D y sus habitaciones, y la pantalla dice que la edición es de escritorio.
    3. Flujo principal - Sin señal se sigue dibujandoGiven que estoy en obra sin conexiónWhen guardo el planoThen queda guardado en el dispositivo y la pantalla avisa que se subirá cuando haya señal.
    4. Flujo principal - Al volver la señal se pone al díaGiven planos guardados sin conexiónWhen vuelvo a la lista con señalThen suben a la cuenta y bajan los que falten de otros dispositivos.
    5. Caso alternativo - El mismo plano en dos sitiosGiven el mismo plano guardado aquí y en la cuenta con fechas distintasWhen lo abroThen se queda la versión que se guardó después.
    6. Caso de borde - Lo borrado no resucitaGiven un plano que borré desde otro dispositivoWhen este se pone al díaThen desaparece también de aquí en vez de volver a subirse.
    7. Caso de borde - Un plano demasiado pesadoGiven un plano con un escaneo de fondo enormeWhen intento subirloThen se me dice que pesa de más y qué es lo que suele pesar.
    8. Caso de borde - Los planos son de su cuentaGiven el plano de otra cuentaWhen intento listarlo o abrirloThen para mí no existe.

    Historial de cambios

    1. Iteración 16 · Bug: Gravedad alta — US-92 · US-137: los planos, modelos y texturas del dispositivo son de cada empresa

      GREENfrontend 87b9c56
    2. Iteración 16 · Bug: US-92: endurecimiento del guardado de planos

      GREENbackend faa0091
    3. v4.8 — iteracion-16: lo guardado en el dispositivo es de cada empresa

      BacklogBugIteración 16
      • Bug iteracion-16 - Los planos del dispositivo son de la empresa donde se dibujaronGiven un colaborador con planos, modelos y texturas guardados en el dispositivo mientras trabajaba en la empresa AWhen cambia a la empresa B y abre PlanosThen no ve ni sube a B nada de lo de AAnd al volver a A lo encuentra como lo dejó.
      • Bug iteracion-16 - Lo de antes no viaja a una empresa equivocadaGiven un dispositivo con planos guardados antes de esta versión por alguien que colabora en otra empresaWhen se abre el editorThen lo que no se sabe de qué empresa es queda apartado en el dispositivoAnd no se sube a ninguna.
    4. v2.24

      Backlog
      • Cambio v2.24 - El plano deja de ser del navegadorGiven que los planos vivían en el almacenamiento del navegador que los dibujóWhen se agrega US-92 en v2.24Then viven en la cuenta, sin perder el dibujo cuando no hay señal.
    5. v3.0

      Backlog
      • Cambio v3.0 - Un plano no se vuelve dosGiven el mismo plano abierto en dos dispositivosWhen se corrige en v3.0Then sigue siendo uno, con el identificador que le puso la cuenta.
  45. US-93 Dibujar la estructura, no sólo los muros

    Como arquitecto quiero dibujar trabes y columnas en el plano, para que el proyecto tenga su estructura y pueda cotizarla por metro lineal, por pieza y por concreto.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Dibujar una trabeGiven la herramienta de trabeWhen hago clic en un apoyo y en el siguienteThen queda dibujada, y la cadena continúa desde el último punto como en los muros.
    2. Flujo principal - Colocar una columnaGiven la herramienta de columnaWhen hago clic donde vaThen queda colocada, pegada a los extremos de muro cercanos.
    3. Flujo principal - Se leen como en un planoGiven trabes y columnas dibujadasWhen miro la plantaThen las trabes van punteadas, porque pasan por arriba del plano de corte, y las columnas macizas, porque el corte las atraviesa.
    4. Flujo principal - Se ven en 3DGiven la vista 3DWhen la abroThen las trabes corren a su altura y las columnas se levantan del piso, con su sección.
    5. Flujo principal - Se corrigen despuésGiven una trabe o una columna seleccionadaWhen cambio su sección, su altura o su giroThen se actualiza, y una medida imposible se rechaza sin tocarla.
    6. Flujo principal - Traen su cuantíaGiven una trabe seleccionadaWhen miro sus propiedadesThen veo su longitud en metros y su concreto en metros cúbicos; en una columna, su concreto.
    7. Flujo principal - Son parte del plano como todo lo demásGiven trabes y columnas dibujadasWhen uso capas, niveles, deshacer, borrar o guardo y vuelvo a abrirThen se comportan como los muros: se apagan juntas en su capa, pertenecen al nivel donde se dibujaron y sobreviven al guardado.
    8. Caso de borde - Seleccionar lo que está encimaGiven una trabe que corre sobre un muro y una columna dentro de su grosorWhen hago clic encimaThen se selecciona la estructura, no el muro de abajo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. v2.25

      Backlog
      • Cambio v2.25 - El plano tiene estructuraGiven que el editor sólo conocía muros, habitaciones y aberturasWhen se agrega US-93 en v2.25Then dibuja también trabes y columnas, que es lo que la cuantificación necesita para cobrar por metro lineal y por pieza.
  46. US-94 Decirle al plano lo que se cobra de cada cosa

    Como arquitecto quiero asignarle a cada elemento del plano los servicios que lleva —y que la herramienta me recomiende cuáles, con mi propio catálogo— para que el dibujo sepa lo que cuesta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Varios servicios en un mismo elementoGiven un muro seleccionadoWhen le agrego el muro de block y el castilloThen los dos quedan colgados del muro, cada uno cobrado por lo suyo: la superficie de una cara y la longitud.
    2. Flujo principal - La herramienta recomiendaGiven mi catálogo de serviciosWhen abro la lista para un muroThen llega ordenada por lo que le toca a un muro, con los recomendados señalados, y sin esconderme ninguno.
    3. Flujo principal - La unidad mandaGiven un servicio que se vende por metro cuadradoWhen elijo cómo se cobraThen sólo se ofrecen superficies, porque cobrar metros lineales a precio de metro cuadrado no significa nada.
    4. Flujo principal - Lo mide el planoGiven un muro de 4 m por 2,50 m de alto con una puertaWhen le cuelgo un servicio por metro cuadradoThen la cantidad es la de la cara descontando el vano, y cambia sola si muevo el muro.
    5. Flujo principal - La textura también cobraGiven una textura de la paleta ligada a un servicioWhen la aplico a la cara de un muroThen esa cara agrega el acabado a la cuenta, sin que yo lo anote aparte.
    6. Caso de borde - Lo borrado deja de cobrarseGiven un muro con serviciosWhen lo borroThen lo que se le cobraba se va con él, y la cuenta ya no lo incluye.
    7. Caso alternativo - Sin catálogoGiven una cuenta sin servicios dados de altaWhen abro la listaThen me dice dónde se dan de alta en vez de quedarse vacía.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    3. v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada textura de la paleta del planoThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
    4. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 9359f15
    5. v4.9 — iteracion-17: el servicio que se cobra se busca en todo el catálogo

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Sugeridos y búsquedaGiven un elemento del planoWhen el usuario abre lo que se cobraThen ve primero los servicios de su catálogo con la unidad que le correspondeAnd puede buscar cualquier otro servicio por su nombre.
    6. v2.26

      Backlog
      • Cambio v2.26 - El dibujo carga con el precioGiven que el plano sólo tenía geometríaWhen se agrega US-94 en v2.26Then cada elemento lleva los servicios que se le cobran y el plano puede convertirse en una cotización.

    Formulario

    • Catálogo Servicio que se cobra de Servicios (abierto: se busca al escribir)
  47. US-95 Convertir el plano en una cotización

    Como arquitecto quiero convertir el plano en una cotización con las cantidades que él mismo mide, para no volver a contar a mano metros de muro ni piezas de columna.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Las partidas salen medidasGiven un plano con servicios asignadosWhen abro «Cotizar»Then veo una partida por servicio con la cantidad sumada de todos los elementos, el precio de mi catálogo y el total.
    2. Flujo principal - Se crea la cotización de siempreGiven las partidas y un cliente elegidoWhen creo la cotizaciónThen queda como cualquier otra: se puede ajustar, imprimir y convertir en proyecto.
    3. Flujo principal - Dejar algo fueraGiven una partida que no entra en este trabajoWhen la quito del resumenThen deja de cotizarse sin que el plano cambie.
    4. Caso de borde - Un plano sin serviciosGiven un plano dibujado pero sin servicios asignadosWhen abro «Cotizar»Then me dice que primero hay que decir qué se le cobra a cada cosa, y no crea nada.
    5. Caso de borde - Sin cliente no hay cotizaciónGiven el resumen con partidasWhen no elijo clienteThen no se puede crear, porque una cotización es para alguien.
    6. Flujo principal - Cada partida sabe de qué habitación esGiven un plano con habitaciones y servicios asignadosWhen creo o actualizo la cotización desde el planoThen cada partida guarda cuánto de ella cae en cada habitaciónAnd la partida conserva la cantidad sumada de todo el plano.
    7. Flujo principal - A qué habitación va cada cosaGiven un plano con habitacionesWhen se cotizaThen el piso, el techo y el perímetro de una habitación son suyos; la cara de un muro va a la habitación a la que da; un muro sin cara se reparte por lo que recorre de cada habitación, y el que separa dos va mitad y mitad; una puerta o ventana va a la habitación en cuyo muro está, y una columna o una trabe a la habitación donde estáAnd lo que se cobra por pieza no se parte: va entero a la habitación que más lo rodea.
    8. Caso de borde - Habitaciones sin nombre o repetidasGiven una habitación sin nombre, o dos con el mismoWhen se cotizaThen la que no tiene nombre se llama «Habitación N», por su lugar en el plano, y la repetida «Baño (2)».
    9. Caso de borde - Un reparto que no cuadraGiven una partidaWhen lo repartido entre habitaciones pasa de su cantidad, repite una habitación o trae un nombre vacío o demasiado largoThen se rechaza señalando el reparto y no se guarda nada.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. Iteración 27 · Bug: Mejora de cumplimiento

      GREENfrontend c5cda06
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven las partidas del plano y un cliente elegidoWhen el usuario toca «Crear cotización» o «Actualizar cotización» y guardar el plano o la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se crean dos cotizaciones.
    5. v5.5 — iteracion-27: el aviso dice por qué no se pudo cotizar

      BacklogBugIteración 27
      • Bug iteracion-27 - El motivo del servidorGiven el arquitecto convierte el plano en una cotizaciónWhen el servidor la rechaza con su motivoThen el aviso dice «No se pudo crear la cotización.» (o «actualizar») seguido de ese motivoAnd «Revisa tu conexión» solo aparece cuando el servidor no respondió.
    6. Iteración 25 · Nueva: US-12 PDF de cotización con desglose por habitación: el resumen global y, debajo, cada habitación con sus conceptos y su subtotal

      GREENbackend 830de0d
    7. v5.3 — iteracion-25: la cotización sabe de qué habitación es cada partida

      BacklogNuevaIteración 25
      • Nueva iteracion-25 - El plano reparte por habitaciónGiven que hasta v5.2 la cotización del plano sólo guardaba la cantidad sumada de cada servicioWhen se agrega el reparto en iteracion-25Then cada partida que mide el plano guarda cuánto cae en cada habitación, para el desglose del documento (US-12).
      • Nueva iteracion-25 - Recotizar actualiza el desgloseGiven una cotización ligada en borradorWhen cambian las habitaciones del plano y el arquitecto vuelve a «Cotizar» y actualizaThen cada partida del plano toma su reparto nuevoAnd la que ya no cae en ninguna habitación se queda sin repartoAnd lo agregado a mano sigue sin habitación.
    8. Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

      GREENfrontend 06e1fe0
    9. Iteración 5 · Cambio: US-95 Recotizar actualiza la cotización ligada en borrador

      GREENbackend f978262
    10. v3.9 — iteracion-5: actualizar la cotización desde el plano

      BacklogCambioIteración 5
      • Cambio iteracion-5 - La cotización recuerda su planoGiven una cotización creada desde un planoWhen se guardaThen queda ligada a ese plano.
      • Cambio iteracion-5 - Recotizar actualiza el borradorGiven un plano con una cotización ligada en borrador, y cambios posteriores en el planoWhen el arquitecto vuelve a «Cotizar»Then se le ofrece «Actualizar la cotización»And al confirmar, las partidas que vienen del plano toman las cantidades nuevas, las que agregó a mano se conservan y el total se recalcula.
      • Cambio iteracion-5 - Lo que ya es proyecto no se tocaGiven la cotización ligada ya está «En proyecto»When el arquitecto vuelve a cotizar el planoThen esa cotización no cambiaAnd se crea una cotización nueva, también ligada al plano.
      • Cambio iteracion-5 - Una partida que ya no estáGiven una partida que venía del plano y cuyo elemento se borróWhen se actualiza la cotizaciónThen esa partida sale de la cotización.
      • Cambio iteracion-5 - Elegir una nueva aunque haya borradorGiven una cotización ligada en borradorWhen el arquitecto elige «Crear una nueva»Then el borrador queda como estaba y se crea otra cotización ligada.
    11. iteracion-5: recotizar un plano con cotización ligada en borrador la actualiza (las partidas del plano toman las cantidades nuevas, las manuales se conservan); si ya está «En proyecto» no se toca y se crea una nueva ligada al plano.

      Decisión
    12. v2.26

      Backlog
      • Cambio v2.26 - Del plano a la cotizaciónGiven que cotizar obligaba a contar a mano lo dibujadoWhen se agrega US-95 en v2.26Then la cotización nace del plano, con las cantidades que él mide.

    Formulario

    • Obligatorios Cliente (al crear una cotización nueva)
    • Catálogo Cliente de Clientes (abierto: se busca al escribir)
  48. US-101 Que lo importado viaje con el plano

    Como arquitecto quiero que las texturas y el mobiliario que importo se guarden en mi cuenta, para que el plano se vea completo en cualquier dispositivo.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Lo importado se guarda en la cuentaGiven una textura o una biblioteca de modelos importadaWhen termina la importaciónThen queda en el dispositivo y se sube a mi cuenta.
    2. Flujo principal - El plano se ve completo en otro dispositivoGiven un plano con texturas y mobiliarioWhen lo abro en otro dispositivoThen se dibuja con sus texturas y sus mallas, no con cajas grises.
    3. Flujo principal - Lo que ya estaba se pone al díaGiven una cuenta que importó todo antes de estoWhen abro el editor en la computadora que tiene los archivosThen se suben solos, sin que yo tenga que volver a importarlos.
    4. Caso de borde - Sin señalGiven la obra sin conexiónWhen importoThen se guarda igual en el dispositivo y se sube cuando haya señal.
    5. Caso de borde - No se sube dos vecesGiven una biblioteca ya subidaWhen la vuelvo a importarThen no se sube de nuevo.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.29

      Backlog
      • Cambio v2.29 - Lo importado deja de ser del dispositivoGiven que las texturas y las mallas vivían sólo en el navegador que las importóWhen se agrega US-101 en v2.29Then viven en la cuenta y el plano se ve igual en todas partes.
    3. v3.0

      Backlog
      • Cambio v3.0 - Lo importado sube de verdadGiven el mismo defecto de los formularios con archivoWhen se corrige en v3.0Then las texturas y las mallas llegan a la cuenta.
  49. US-103 Encontrar mi catálogo de mobiliario en cualquier dispositivo

    Como arquitecto quiero que los modelos que importo queden en mi cuenta para poder colocarlos desde la computadora del estudio y desde el teléfono en obra.

    GREEN2026-10-01

    Criterios de aceptación

    1. Flujo principal - Importar una bibliotecaGiven una biblioteca importada en un dispositivoWhen abro el editor en otroThen el catálogo trae los mismos modelos, con su nombre, su categoría y su medida.
    2. Flujo principal - Lo que ya tenía se sube soloGiven modelos importados antes de que esto existieraWhen abro el editor en el dispositivo que los tieneThen quedan guardados en mi cuenta sin que yo haga nada.
    3. Caso de borde - Reimportar lo mismoGiven un modelo que ya está en el catálogoWhen vuelvo a importar la bibliotecaThen no se duplica.
    4. Caso de borde - Sin señalGiven el editor abierto sin conexiónWhen entro al catálogoThen veo los modelos de este dispositivo y puedo seguir trabajando.

    Historial de cambios

    1. Registrada como existente (adopción)

      GREEN
    2. v2.30

      Backlog
      • Cambio v2.30 - El catálogo deja de ser del navegadorGiven que las fichas del mobiliario vivían sólo en el dispositivo que importó la bibliotecaWhen se agrega US-103 en v2.30Then viven en la cuenta y el catálogo se ve igual en todas partes.
  50. US-100 Que la paleta de texturas no se coma el panel

    Como arquitecto quiero que las texturas ocupen su sitio y no todo el panel para no perder de vista las capas, la orientación y el resumen del plano.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - La paleta se queda en su cajaGiven un plano con muchas texturas importadasWhen abro el panel del editorThen la paleta muestra unas pocas filas y el resto se recorre dentro de su propia cajaAnd las capas y el resumen siguen a la vista.
    2. Caso alternativo - Una cuenta sin texturasGiven una cuenta que no ha importado texturasWhen abro el panelThen la sección lo dice en una línea y no ocupa espacio de más.
    3. Caso de borde - Muchas texturas en una pantalla cortaGiven una paleta con decenas de texturas en una pantalla bajaWhen recorro el panelThen la caja conserva su alto y no se encoge hasta desaparecer.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
  51. US-129 Convertir la foto de un plano en un plano editable

    Como arquitecto quiero subir la foto de un plano en papel —impreso o un croquis a mano— y que la aplicación dibuje sus muros y habitaciones, para no tener que calcarlo línea por línea.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Subir la foto y obtener los murosGiven un plano abierto en el editorWhen el arquitecto toca «Convertir foto en plano» y sube la foto de un plano en papelThen la foto pulida (derecha, recortada al dibujo y en blanco y negro) queda de fondo, como en el calcado (US-41)And sobre ella aparecen los muros detectados, siguiendo sus líneasAnd el editor muestra «Detectamos N muros y M habitaciones».
    2. Flujo principal - La foto se pule antes de leerlaGiven la foto de una hoja tomada en ángulo, con luz dispareja y sombrasWhen se convierteThen la hoja se endereza (sus cuatro esquinas pasan a ser las de la imagen), se recorta al dibujo, se lleva a un tamaño estándar, se empareja la luz, se quita el ruido, se sube el contraste y se pasa a blanco y negroAnd eso es lo que lee la IA y lo que queda de fondo.
    3. Caso alternativo - No se ve el borde de la hojaGiven un escaneo o una foto en la que la hoja llena toda la imagenWhen se convierteThen no se endereza la perspectivaAnd se aplican igual el recorte, la luz, el ruido, el contraste y el blanco y negro.
    4. Flujo principal - Las habitaciones salen con su superficieGiven una foto con espacios cerrados por murosWhen termina la conversiónThen cada espacio cerrado queda como habitación con su superficie calculadaAnd si la foto trae escrito el nombre del espacio («Cocina»), la habitación lo lleva.
    5. Flujo principal - Darle medidas realesGiven el plano convertido sobre la fotoWhen el arquitecto marca dos puntos de la foto e indica que su distancia real es 5,00 mThen la foto, los muros y las habitaciones toman esa escala juntosAnd las superficies se recalculan en metros reales.
    6. Flujo principal - Lo convertido se edita como lo dibujadoGiven los muros y habitaciones que salieron de la fotoWhen el arquitecto mueve, corrige o borra uno, o le pone una puertaThen se comporta igual que un muro o una habitación dibujados a manoAnd se ve en la vista 3D y se puede cotizar.
    7. Flujo principal - Deshacer la conversión de una vezGiven un plano recién convertidoWhen el arquitecto toca «Deshacer»Then desaparecen de una sola vez todos los muros y habitaciones que trajo la fotoAnd el plano queda como estaba antes de convertir.
    8. Caso alternativo - La foto no parece un planoGiven la foto de algo que no es un plano, o tan borrosa que no se distinguen líneasWhen termina la conversiónThen el editor muestra «No encontramos muros en la foto. Prueba con una foto más nítida, de frente y con buena luz.»And no se agrega ningún muroAnd la foto queda de fondo para calcarla a mano.
    9. Caso alternativo - Archivo no admitido o muy pesadoGiven la conversión de una fotoWhen el archivo no es PNG, JPG ni WEBPThen el editor muestra «Formato de imagen no admitido»And cuando la foto pesa más de 10 MB muestra «La foto pesa más de 10 MB»And en ninguno de los dos casos se envía nada a convertir.
    10. Caso de borde - Mientras se convierteGiven una foto enviada a convertirWhen la conversión está en cursoThen el editor muestra «Convirtiendo la foto…»And el botón de convertir queda inactivo hasta que termine, para no mandarla dos veces.
    11. Caso de borde - El servicio no respondeGiven que el servicio de conversión falla o tarda más de 60 segundosWhen el arquitecto convierte una fotoThen el editor muestra «No pudimos convertir la foto ahora. Inténtalo de nuevo en unos minutos.»And el plano queda sin cambios.
    12. Caso de borde - Tope diario por cuentaGiven una cuenta que ya convirtió 5 fotos hoyWhen intenta convertir otraThen el editor muestra «Llegaste al límite de 5 fotos por día. Vuelve a intentarlo mañana.»And no se envía la foto.
    13. Caso de borde - Sólo con sesiónGiven alguien sin sesión iniciadaWhen intenta convertir una fotoThen la aplicación la rechaza como cualquier otra acción de la cuenta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 27 · Bug: El mes en curso y el «hoy» del backend se calculan con la hora de México

      GREENbackend f69fa1a
    3. v5.5 — iteracion-27: el tope diario cuenta el día de México

      BacklogBugIteración 27
      • Bug iteracion-27 - El día empieza a medianoche de MéxicoGiven el arquitecto convirtió una foto a las 10:00When son las 23:30 del mismo día en Ciudad de MéxicoThen esa foto sigue contando para el tope del díaAnd el tope vuelve a empezar a medianoche de México, no a las 18:00.
    4. Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

      GREENbackend 48faa6c
    5. Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

      GREENfrontend 06e1fe0
    6. Iteración 7 · Cambio: US-129 Medidas antes de leer el plano

      GREENbackend 71d35eb
    7. v4.1 — iteracion-7: medidas antes de leer el plano

      BacklogCambioIteración 7
      • Cambio iteracion-7 - El plano trae sus medidasGiven la foto de un plano con cotas legibles de al menos un lado horizontal y uno verticalWhen termina de limpiarseThen se detectan esas medidas antes de enviarla a la IAAnd la IA lee el plano ya con esa escalaAnd el plano llega en metros reales sin preguntar nada.
      • Cambio iteracion-7 - El plano no trae medidasGiven la foto de un plano sin cotas legiblesWhen termina de limpiarseThen , antes de enviarla a la IA, se abre un cuestionario con la foto pulida que pide cuánto mide el plano de ancho (lado horizontal) y de alto (lado vertical)And con esas dos medidas se escala el plano antes de leerlo, para que la IA aproxime el resto de los muros.
      • Cambio iteracion-7 - Falta un solo ladoGiven un plano con una cota horizontal legible y ninguna verticalWhen se abre el cuestionarioThen pide sólo el altoAnd el ancho lo toma de la cota.
      • Caso alternativo iteracion-7 - Seguir sin medidasGiven el cuestionario abiertoWhen el arquitecto toca «Seguir sin medidas»Then se convierte como hasta ahora, a escala aproximada, y la ronda de medidas pregunta la escala.
      • Caso alternativo iteracion-7 - Medida inválidaGiven el cuestionarioWhen el arquitecto escribe 0, deja vacío o algo que no es un númeroThen ve «La medida debe ser mayor que 0» y no se envía.
      • Caso de borde iteracion-7 - Cancelar no gasta una fotoGiven el cuestionario abiertoWhen el arquitecto lo cierra sin convertirThen no se descuenta una foto del tope diario y el plano queda como estaba.
    8. iteracion-7 (propuesta): las medidas se buscan con una lectura rápida de IA sólo de las cotas tras la limpieza; basta una cota horizontal y una vertical legibles; si falta alguna, el cuestionario pide sólo esa. Cerrar el cuestionario no gasta una foto del tope diario.

      Decisión
    9. Iteración 5 · Bug: US-129 Habitaciones cerradas aunque haya puertas o huecos

      GREENbackend 271940d
    10. Iteración 5 · Bug: US-129 Muros a escuadra (0°, 45°, 90°)

      GREENbackend de0dd1f
    11. Iteración 5 · Cambio: US-129 Puertas y ventanas en la conversión

      GREENbackend b915800
    12. Iteración 5 · Cambio: US-129 Las cotas de la foto se importan

      GREENbackend 0166726
    13. Iteración 5 · Cambio: US-129 «Convertir foto en plano» en la barra superior

      GREENfrontend ab054af
    14. Iteración 6 · Bug: US-129 Lo convertido queda centrado

      GREENfrontend 8b23d29
    15. v3.9 — iteracion-5: habitaciones cerradas aunque haya puertas o huecos

      BacklogBugIteración 5
      • Bug iteracion-5 - La habitación cierra sobre la puertaGiven la foto de un plano cuyas habitaciones tienen puertas o vanos abiertosWhen se convierteThen cada habitación queda como un polígono cerrado que sigue sus muros, con su superficie, aunque el muro tenga el hueco de la puerta.
      • Bug iteracion-5 - Las esquinas se tocanGiven dos muros cuyos extremos quedan a menos de 15 cm, o uno que llega casi al costado de otroWhen se convierteThen se unen en el mismo punto y no quedan extremos sueltos.
      • Bug iteracion-5 - El hueco de una puerta no se rellenaGiven dos muros en línea separados por un hueco de hasta 1,20 mWhen se convierteThen el hueco se conserva como paso entre los dos murosAnd la habitación de cada lado se cierra igual.
    16. v3.9 — iteracion-5: muros a escuadra

      BacklogBugIteración 5
      • Bug iteracion-5 - Lo casi recto queda rectoGiven un muro detectado a menos de 8° de la horizontal, la vertical o la diagonal de 45°When se convierteThen queda exactamente en ese ángulo, aunque la hoja estuviera pandeada.
      • Bug iteracion-5 - Lo inclinado a propósito se respetaGiven un muro a más de 8° de esos ángulosWhen se convierteThen conserva el ángulo con que se dibujó.
      • Bug iteracion-5 - Un cuarto rectangular sale rectangularGiven un cuarto dibujado rectangular en una foto con perspectiva leveWhen se convierteThen sus muros opuestos quedan paralelos y sus esquinas a 90°.
    17. v3.9 — iteracion-5: puertas y ventanas

      BacklogCambioIteración 5
      • Cambio iteracion-5 - Las puertas salen como puertasGiven una puerta dibujada (su hoja y su arco de giro, o un hueco en el muro)When se convierteThen aparece una puerta en ese muro, en esa posición y con el ancho del hueco, con la altura de la puerta genérica. (Supuesto: el editor no guarda hacia dónde abre una puerta, así que el arco sólo sirve para reconocerla.)
      • Cambio iteracion-5 - Las ventanas salen como ventanasGiven una ventana dibujada en un muro (las líneas paralelas dentro del muro)When se convierteThen aparece una ventana en ese muro, con su ancho.
      • Cambio iteracion-5 - Se editan como las demásGiven puertas y ventanas convertidasWhen el arquitecto las seleccionaThen se mueven, se cambian de tipo y de medida, y se ven en 3D, como las colocadas a mano.
      • Cambio iteracion-5 - Lo que no cae en un muro no se inventaGiven una puerta o ventana leída que no queda sobre ningún muroWhen se convierteThen se descarta.
    18. v3.9 — iteracion-5: las cotas se importan

      BacklogCambioIteración 5
      • Cambio iteracion-5 - Las cotas del papel aparecen en el planoGiven una foto con cotas escritas (por ejemplo «4.50»)When se convierteThen cada cota aparece como cota del plano, donde estaba dibujada, a lo largo de lo que mideAnd al confirmar la escala (US-130) marca el valor leído.
      • Cambio iteracion-5 - Una cota da la escalaGiven al menos una cota leídaWhen termina la conversiónThen la ronda de medidas propone esa cota como medida de referencia, para confirmarla en vez de escribirla (US-130).
      • Cambio iteracion-5 - Una cota que no cuadra se señalaGiven dos cotas leídas que no son proporcionales a lo dibujadoWhen se confirma la escalaThen la ronda de medidas señala cuál no cuadra.
    19. v3.9 — iteracion-5: «Convertir foto en plano» en la barra superior

      BacklogCambioIteración 5
      • Cambio iteracion-5 - Una opción principal del editorGiven el editor abiertoWhen el arquitecto mira la barra superiorThen «Convertir foto en plano» está ahí, junto a «Cotizar» y «Exportar plano», y ya no en el panel del plano de fondo.
    20. v4.0 — iteracion-6: lo convertido queda centrado

      BacklogBugIteración 6
      • Bug iteracion-6 - El plano convertido se ve entero y al centroGiven el editor con la vista en cualquier lugarWhen termina de convertir la fotoThen la vista se ajusta a lo convertido —la foto de fondo y lo dibujado sobre ella—, centrado y con margen, sin quedar en una esquina.
      • Bug iteracion-6 - También sin murosGiven una foto en la que no se encontraron murosWhen termina la conversiónThen la vista se ajusta a la foto que quedó de fondo.
    21. iteracion-5: la geometría de la conversión (unir esquinas, cerrar habitaciones sobre las puertas, escuadra, puertas y ventanas en su muro, cotas) vive en el backend (photo_geometry); el item #1 no necesitó cambios en el frontend.

      Decisión
    22. iteracion-5: las puertas convertidas no guardan hacia dónde abren, porque el editor no modela el giro de una puerta; el arco dibujado sólo sirve para reconocerla.

      Decisión
    23. iteracion-5: los muros convertidos a menos de 8° de 0°, 45° o 90° se enderezan a ese ángulo; los demás conservan el suyo.

      Decisión
    24. Iteración 4 · Nueva: US-129 Convertir la foto de un plano en un plano editable

      GREENbackend f11bec1
    25. Iteración 4 · Cambio: US-129 Pulir la foto con OpenCV antes de la IA

      GREENbackend 913ff68
    26. v3.7 — iteracion-4: alta de la conversión de foto a plano (MVP)

      BacklogNuevaIteración 4
      • Nueva iteracion-4 - De la foto al planoGiven que hasta v3.6 un plano en papel sólo se podía calcar a mano (US-41)When se agrega US-129 en v3.7Then el arquitecto sube la foto y obtiene muros y habitaciones editables, que luego lleva a escala real con dos puntos.
    27. v3.8 — iteracion-4: la foto se pule con OpenCV antes de la IA

      BacklogCambioIteración 4
      • Cambio iteracion-4 - Pulido de la fotoGiven que en v3.7 la foto llegaba a la IA tal como se tomóWhen se cambia US-129 en v3.8Then pasa antes por corrección de perspectiva, recorte, escala, corrección de iluminación, reducción de ruido, contraste y binarización, y la foto pulida es la que queda de fondo.
    28. iteracion-4 — US-129 suma un pulido de la foto con OpenCV en el servidor antes de la IA: corrección de perspectiva, recorte, escala, corrección de iluminación, reducción de ruido, contraste y binarización. La foto pulida (no la original) queda de fondo, para que los muros caigan exactos sobre ella; si no se encuentra el borde de la hoja, se sigue sin enderezar. Se decidió correrlo en el backend (opencv-python-headless) y comprobar en el preview de Vercel que la función cabe.

      Decisión
    29. iteracion-4 — GATE PROPUESTA aprobada: la foto de un plano en papel se convierte en muros y habitaciones con IA en el servidor (Claude con visión); el MVP no detecta puertas, ventanas, mobiliario ni cotas, y la escala la da el arquitecto con dos puntos. El tope es de 5 fotos por cuenta al día (se propusieron 20; el usuario lo bajó a 5 para contener el costo).

      Decisión
  52. US-130 Confirmar las medidas del plano importado

    Como arquitecto quiero responder unas pocas preguntas después de convertir la foto de un plano, para que sus medidas y proporciones sean las reales y no una aproximación.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - La medida de referenciaGiven un plano recién convertidoWhen termina la conversiónThen se abre la ronda de medidas con el muro más largo resaltado y la pregunta «¿Cuánto mide este muro?»And al responder 8,40 m todo el plano —foto, muros, habitaciones, puertas, ventanas y cotas— toma esa escala.
    2. Flujo principal - Si se leyó una cota, sólo se confirmaGiven una cota leída en la fotoWhen se abre la rondaThen la pregunta muestra esa cota y su valor, para confirmarlo o corregirlo.
    3. Flujo principal - Grosor de los murosGiven la segunda preguntaWhen el arquitecto indica 20 cm para muros exteriores y 12 cm para interioresThen los muros del contorno toman 20 cm y los demás 12 cm.
    4. Flujo principal - Altura de techoGiven la tercera preguntaWhen el arquitecto indica 2,70 mThen todos los muros convertidos toman esa alturaAnd se ve en 3D.
    5. Flujo principal - Un solo deshacerGiven las tres respuestas aplicadasWhen el arquitecto toca «Deshacer»Then vuelven las medidas que tenía el plano antes de la ronda.
    6. Caso alternativo - Saltar la rondaGiven la ronda abiertaWhen el arquitecto la omiteThen el plano queda con la escala provisionalAnd el editor avisa «Las medidas son aproximadas: da la escala con Escalar cuando quieras».
    7. Caso alternativo - Medidas inválidasGiven una respuesta de 0 o negativaWhen el arquitecto intenta continuarThen ve «La medida debe ser mayor que 0» y la pregunta sigue abierta.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend 6236451
    3. v5.7 — iteracion-29: el foco entra al panel de medidas y vuelve al cerrarlo

      BacklogCambioIteración 29
      • Cambio iteracion-29 - El foco entra al panel de medidas y vuelve al cerrarloGiven el arquitecto con un plano importadoWhen se abre la ronda de medidas en el panel lateralThen el teclado queda dentro del panel, en su primera preguntaAnd al cerrarlo, con Esc o al terminar, el foco vuelve al botón que lo abrió.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend f16eca4
    5. v5.3 — iteracion-25: la ronda en un panel que pregunta antes de descartar

      BacklogCambioIteración 25
      • Cambio iteracion-25 - A un lado del planoGiven la ronda de medidas abiertaWhen el arquitecto mira el planoThen la pregunta va en un panel a la derecha desde tableta y abajo en el teléfono, y el elemento por el que pregunta sigue centrado y resaltado.
      • Cambio iteracion-25 - Cerrar sin haber respondidoGiven la primera pregunta sin tocarWhen el arquitecto pulsa Esc o toca fueraThen la ronda se omite, como con «Omitir».
      • Cambio iteracion-25 - Cerrar con respuestas pregunta antesGiven la ronda con algo respondidoWhen el arquitecto pulsa Esc o toca fueraThen se pregunta «¿Descartar las medidas?»And «Descartar medidas» omite la ronda y el plano queda con la escala provisionalAnd «Cancelar» vuelve a la pregunta donde iba, con lo escrito.
    6. Iteración 8 · Cambio: US-130 Los recorridos resaltan en ámbar

      GREENfrontend 26bf17a
    7. Iteración 8 · Cambio: US-130 «Validar medidas» cuando se quiera

      GREENfrontend f909554
    8. v4.2 — iteracion-8: el recorrido resalta en ámbar

      BacklogCambioIteración 8
      • Cambio iteracion-8 - Muros, puertas y ventanas en ámbarGiven un recorrido abierto (la ronda de medidas o «Asignar materiales»)When pregunta por un muro, una puerta o una ventanaThen ese elemento se resalta en ámbar, el mismo color con que se marca una habitación elegida, y no en el azul de la selección.
      • Cambio iteracion-8 - Los pisos, como una habitación elegidaGiven el recorrido en el piso de una habitaciónWhen se muestraThen la habitación se tiñe y resalta en ámbar como al tocarla.
      • Cambio iteracion-8 - Al cerrar, nada queda resaltadoGiven un recorrido abiertoWhen termina o se cierraThen ya no queda ningún elemento resaltado en ámbar.
    9. v4.2 — iteracion-8: «Validar medidas» cuando se quiera

      BacklogCambioIteración 8
      • Cambio iteracion-8 - Validar medidas cuando se quieraGiven un plano convertido de una fotoWhen el arquitecto toca «Validar medidas»Then se abre la ronda de medidas sobre lo convertido, con sus medidas actuales.
      • Cambio iteracion-8 - Tantas veces como quieraGiven una ronda omitida, cancelada o ya aplicadaWhen el arquitecto vuelve a tocar «Validar medidas»Then la ronda se abre de nuevo.
      • Cambio iteracion-8 - Lo ya dado no se pierdeGiven un plano al que ya se le dio la escala, el grosor y la alturaWhen se repite la rondaThen no pregunta la escala otra vezAnd el grosor y la altura vienen con los valores que ya tiene, no con los de por omisión.
      • Caso de borde iteracion-8 - Sin nada convertidoGiven un plano dibujado a mano, sin nada convertido de una fotoWhen el arquitecto mira «Validar medidas»Then no está disponible y su ayuda dice que sirve para planos convertidos de una foto.
    10. iteracion-8 #2: el fondo guarda realScale (lo marcan la lectura con escala, la ronda y «Escalar») y measures (grosor exterior, interior y altura que aplicó la ronda); «Validar medidas» repite la ronda sobre lo convertido sin las cotas leídas (la referencia es el muro más largo si aún no hay escala). En el paso de grosor y altura queda resaltado el último elemento preguntado.

      Decisión
    11. Iteración 7 · Cambio: US-130 Con la escala conocida, la ronda no la pregunta

      GREENfrontend 6cc0931
    12. v4.1 — iteracion-7: con la escala conocida, la ronda no la pregunta

      BacklogCambioIteración 7
      • Cambio iteracion-7 - Sin pregunta de escalaGiven un plano que llegó a escala real, por sus cotas o por el ancho y alto del cuestionarioWhen se abre la ronda de medidasThen empieza por «Muro 1 de N» para confirmar o corregir cada muro, puerta y ventanaAnd al final pregunta el grosor de los muros y la altura de techo, sin preguntar la escala.
      • Cambio iteracion-7 - Escala aproximada, como hasta ahoraGiven un plano convertido sin medidasWhen se abre la rondaThen la primera pregunta da la escala, como en v4.0.
    13. iteracion-7 (propuesta): cuando la escala se conoce antes de la IA (cotas legibles o ancho y alto del cuestionario), la ronda se salta la pregunta de escala y empieza por el primer muro.

      Decisión
    14. Iteración 6 · Cambio: US-130 La ronda recorre todos los muros, puertas y ventanas

      GREENfrontend 2a94275
    15. iteracion-6 #4: corregir un muro en la ronda lo estira (todo lo convertido en o más allá de su extremo se desliza a lo largo del muro, tolerancia 5 cm); lo unido lo sigue a escuadra y las aberturas conservan su sitio. Una respuesta a menos de 5 mm de lo que mide no cambia nada; sólo se envían las respuestas tocadas. «Omitir el resto» aplica lo respondido antes de la pregunta en curso, con grosor y altura por omisión.

      Decisión
    16. Iteración 5 · Nueva: US-130 Ronda de medidas tras convertir la foto

      GREENfrontend 157f4db
    17. Iteración 6 · Cambio: US-130 Cada pregunta centra lo que pregunta

      GREENfrontend 3137c7b
    18. v3.9 — iteracion-5: alta de la ronda de medidas

      BacklogNuevaIteración 5
      • Nueva iteracion-5 - Medidas confirmadasGiven que hasta v3.8 un plano convertido quedaba a escala provisionalWhen se agrega US-130Then tres preguntas fijan la escala, el grosor de los muros y la altura de techo.
    19. v4.0 — iteracion-6: cada pregunta centra lo que pregunta

      BacklogCambioIteración 6
      • Cambio iteracion-6 - El elemento por el que se pregunta, al centroGiven la ronda de medidas abiertaWhen pasa a una pregunta sobre un muro, una puerta, una ventana o una cotaThen la vista se centra en ese elemento, resaltado, y lo aleja lo necesario para verlo entero.
    20. v4.0 — iteracion-6: la ronda recorre todos los muros, puertas y ventanas

      BacklogCambioIteración 6
      • Cambio iteracion-6 - Una pregunta por elementoGiven una conversión con 8 muros, 2 puertas y 1 ventanaWhen se abre la rondaThen pregunta por cada uno, de uno en uno —«Muro 1 de 8», «Puerta 1 de 2»…—, y al final por el grosor de los muros y la altura de techo.
      • Cambio iteracion-6 - La primera respuesta da la escalaGiven la primera pregunta, por la cota leída o por el muro más largoWhen el arquitecto responde 8,40 mThen todo el plano toma esa escalaAnd las preguntas siguientes ya traen sus medidas a esa escala.
      • Cambio iteracion-6 - Las demás corrigen ese elementoGiven un muro que a esa escala mide 3,10 mWhen el arquitecto responde 3,00 mThen ese muro pasa a medir 3,00 m y los muros unidos a él lo siguenAnd si en una puerta responde 0,90 m, la puerta pasa a medir 0,90 m de ancho.
      • Cambio iteracion-6 - Dejar como estáGiven una pregunta cuyo valor ya es el correctoWhen el arquitecto sigue sin cambiarloThen ese elemento no se toca.
      • Cambio iteracion-6 - Omitir el restoGiven la ronda a mediasWhen el arquitecto toca «Omitir el resto»Then se aplica lo respondido hasta ahí, con los valores por omisión de grosor y altura, y la ronda se cierra.
      • Cambio iteracion-6 - Un solo deshacerGiven la ronda aplicadaWhen el arquitecto toca «Deshacer»Then vuelve el plano como quedó al convertir.
    21. iteracion-6: la ronda pregunta por cada muro y cada puerta o ventana (no por cotas ni habitaciones); la primera respuesta (cota leída o muro más largo) da la escala y las demás corrigen ese elemento: el muro mueve su extremo final y los muros unidos lo siguen; la abertura cambia su ancho. Se puede «Omitir el resto».

      Decisión
    22. iteracion-5: la ronda de medidas tiene tres preguntas — longitud real del muro más largo (o confirmar la cota leída), grosor de muros exteriores e interiores, y altura de techo — y se aplica en un solo paso de deshacer.

      Decisión
  53. US-131 Moverme por el plano arrastrando

    Como arquitecto quiero arrastrar el plano para centrarlo o ir a una parte en especial, sin tener que alejar y acercar con la rueda.

    GREEN2026-10-09frontend

    Criterios de aceptación

    1. Flujo principal - Arrastrar con el clic derechoGiven el editor abiertoWhen el arquitecto mantiene el clic derecho y mueve el cursorThen el plano se desplaza con el cursorAnd no cambia ningún elemento ni se agrega nada que deshacer.
    2. Flujo principal - Con el botón central o la barra espaciadoraGiven el editor abiertoWhen el arquitecto arrastra con el botón central, o mantiene la barra espaciadora y arrastra con el clic principalThen el plano se desplaza igual.
    3. Caso alternativo - El clic derecho sin arrastrar sigue cancelandoGiven un muro a medio trazarWhen el arquitecto hace clic derecho sin mover el cursorThen se cancela el trazo, como hasta ahora.
    4. Caso de borde - El cursor lo anunciaGiven el arquitecto arrastrando el planoWhen se mueveThen el cursor muestra la mano de arrastreAnd al soltar vuelve el de la herramienta activa.

    Historial de cambios

    1. Iteración 5 · Nueva: US-131 Moverse por el plano arrastrando

      GREENfrontend 38c5c01
    2. v3.9 — iteracion-5: alta del desplazamiento del plano

      BacklogNuevaIteración 5
      • Nueva iteracion-5 - Moverse sin la ruedaGiven que hasta v3.8 sólo se podía acercar, alejar y «Ajustar vista»When se agrega US-131Then el plano se arrastra con el clic derecho, el central o la barra espaciadora.
    3. iteracion-5: «Ajustar vista» y «Guardar vista» pasan a íconos junto a deshacer para que la barra superior quepa a 1280 px con «Foto a plano» y «Sin guardar».

      Decisión
    4. iteracion-5: el plano se arrastra con el clic derecho, el botón central o barra espaciadora + clic; un clic derecho sin arrastre (menos de 4 px) sigue cancelando.

      Decisión
  54. US-132 Seleccionar varios elementos con un recuadro

    Como arquitecto quiero encerrar varios elementos en un recuadro para moverlos o eliminarlos de una sola vez.

    GREEN2026-10-16frontend

    Criterios de aceptación

    1. Flujo principal - Encerrar en un recuadroGiven la herramienta SeleccionarWhen el arquitecto presiona el clic principal en un espacio vacío, arrastra y sueltaThen se dibuja un recuadro mientras arrastraAnd al soltar quedan seleccionados todos los elementos que quedaron enteros dentro: muros, habitaciones, puertas, ventanas, mobiliario, trabes, columnas y cotas.
    2. Flujo principal - Moverlos juntosGiven varios elementos seleccionadosWhen el arquitecto arrastra uno de ellosThen todos se desplazan juntos conservando sus posiciones relativas.
    3. Flujo principal - Eliminarlos juntosGiven varios elementos seleccionadosWhen el arquitecto pulsa Suprimir o toca «Eliminar»Then desaparecen todosAnd un solo «Deshacer» los devuelve.
    4. Caso alternativo - Sumar a la selecciónGiven una selección hechaWhen el arquitecto traza otro recuadro con Mayúsculas presionadaThen lo nuevo se suma a lo que ya estaba seleccionado.
    5. Caso de borde - Sólo el nivel activoGiven un plano con varios nivelesWhen el arquitecto traza un recuadroThen sólo se seleccionan elementos del nivel en que trabaja.

    Historial de cambios

    1. Iteración 11 · Cambio: US-29 Todo lo resaltado en ámbar

      GREENfrontend f37ccc9
    2. v4.3 — iteracion-11: el recuadro en ámbar

      BacklogCambioIteración 11
      • Cambio iteracion-11 - El recuadro y lo que encierraGiven la herramienta SeleccionarWhen el arquitecto arrastra un recuadroThen el recuadro se dibuja en ámbarAnd al soltar, lo que quedó dentro se resalta en ámbar.
    3. Iteración 5 · Nueva: US-132 Selección por recuadro para mover o eliminar

      GREENfrontend 3b16ea7
    4. v3.9 — iteracion-5: alta de la selección por recuadro

      BacklogNuevaIteración 5
      • Nueva iteracion-5 - Muchos a la vezGiven que hasta v3.8 la selección múltiple era con Mayúsculas, elemento por elementoWhen se agrega US-132Then un recuadro selecciona todo lo que encierra.
  55. US-133 Ir del plano a su cotización y de vuelta

    Como arquitecto quiero pasar de un plano a la cotización que salió de él, y de la cotización a su plano, sin buscarlos.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Del listado de planos a la cotizaciónGiven un plano con cotización ligadaWhen el arquitecto mira el listado de planosThen esa fila muestra la cotización (su folio)And al tocarla abre el detalle de esa cotización.
    2. Flujo principal - Del editor a la cotizaciónGiven un plano con cotización ligada abierto en el editorWhen el arquitecto toca «Ver cotización»Then abre el detalle de la cotización.
    3. Flujo principal - De la cotización al planoGiven una cotización que salió de un planoWhen el arquitecto la mira en el listado o en su detalleThen ve el acceso «Ver plano»And al tocarlo abre ese plano en el editor.
    4. Caso alternativo - Varias cotizaciones del mismo planoGiven un plano con dos cotizaciones ligadasWhen el arquitecto mira su filaThen ve la más reciente y cuántas tiene.
    5. Caso de borde - Sin vínculo no hay enlaceGiven una cotización hecha a mano, o cuyo plano se eliminóWhen el arquitecto la miraThen no aparece «Ver plano».

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. v5.6 — iteracion-28: en el teléfono el folio va junto a las acciones del plano

      BacklogCambioIteración 28
      • Cambio iteracion-28 - El folio fuera de la tarjeta que abre el planoGiven un plano con cotización ligada en el listado, en un teléfonoWhen el arquitecto mira su tarjetaThen el folio de la cotización se ve junto a las acciones de la tarjetaAnd tocar el folio abre la cotización, mientras que tocar el resto de la tarjeta abre el plano.
    3. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    4. v5.3 — iteracion-25: el enlace del plano dice el folio de su cotización

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio de la cotización en el listado de planosGiven un plano con una cotización de folio «OBR-7»When se ve el listado de planosThen el enlace dice «OBR-7».
    5. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 6d6a64d
    6. v4.9 — iteracion-17: el cliente de la cotización del plano se busca

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Buscar el cliente desde el planoGiven una cuenta con 200 clientesWhen el usuario crea la cotización de un plano y escribe «gar» en ClienteThen ve los clientes que contienen «gar», de los 200.
    7. Iteración 5 · Nueva: US-133 Ir del plano a su cotización y de vuelta

      GREENfrontend 9d3cb3d
    8. v3.9 — iteracion-5: alta del vínculo plano ↔ cotización

      BacklogNuevaIteración 5
      • Nueva iteracion-5 - Del uno al otroGiven que hasta v3.8 la cotización no recordaba su planoWhen se agrega US-133Then se navega entre los dos en ambos sentidos.
    9. iteracion-5: el vínculo plano ↔ cotización lo lleva la cotización (Quote.plan, item #12); US-133 no necesitó más backend: las pantallas lo leen de las cotizaciones de la cuenta. El detalle de una cotización se abre por /quotes?cotizacion=<id>.

      Decisión

    Formulario

    • Catálogo Cliente de Clientes (abierto: se busca al escribir)
  56. US-134 Asignar materiales con un recorrido

    Como arquitecto quiero un recorrido opcional que me lleve por cada muro y cada piso del plano y me deje elegir de mi catálogo los servicios que lleva cada uno, para armar la cotización sin buscar elemento por elemento.

    GREEN2026-11-01frontend

    Criterios de aceptación

    1. Flujo principal - Empezar el recorridoGiven un plano con muros y habitacionesWhen el arquitecto toca «Asignar materiales»Then se abre el recorrido en un panel a la derecha (abajo en el teléfono), en el primer muro, centrado y resaltado en el plano («Muro 1 de 8»).
    2. Flujo principal - Elegir los servicios de un muroGiven un muro en el recorridoWhen el arquitecto elige uno o varios servicios de su catálogo, con los recomendados primeroThen quedan ligados a ese muro y se cobran con lo que mide, según la unidad de cada servicio (m², metro lineal o pieza).
    3. Flujo principal - Los pisosGiven recorridos todos los murosWhen el arquitecto sigueThen el recorrido pasa por el piso de cada habitación («Piso 1 de 3»), centrado y resaltado, para elegir sus servicios.
    4. Flujo principal - Lo ya asignado se veGiven un muro que ya tiene servicios ligadosWhen el recorrido llega a élThen aparecen elegidosAnd el arquitecto puede quitarlos o agregar otros.
    5. Caso alternativo - Saltar, volver y terminarGiven el recorrido abiertoWhen el arquitecto toca «Siguiente» sin elegir nadaThen ese elemento queda como estabaAnd «Atrás» vuelve al anteriorAnd «Terminar» cierra el recorrido con lo elegido hasta ahí.
    6. Caso alternativo - Un solo deshacerGiven el recorrido terminadoWhen el arquitecto toca «Deshacer»Then se quitan juntas todas las asignaciones que hizo el recorrido.
    7. Caso de borde - Catálogo vacíoGiven una cuenta sin servicios en su catálogoWhen el arquitecto abre el recorridoThen se le dice que primero necesita servicios, con un acceso al catálogo.
    8. Caso de borde - Nada que recorrerGiven un plano sin muros ni habitacionesWhen el arquitecto mira «Asignar materiales»Then no está disponible y su ayuda explica por qué.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 71ca9a8
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend 6236451
    3. v5.7 — iteracion-29: el foco entra a «Asignar materiales» y vuelve al cerrarlo

      BacklogCambioIteración 29
      • Cambio iteracion-29 - El foco entra a «Asignar materiales» y vuelve al cerrarloGiven el arquitecto en el editor de planosWhen toca «Asignar materiales» y se abre el panel lateralThen el teclado queda dentro del panelAnd al cerrarlo, con Esc o al terminar, el foco vuelve a «Asignar materiales».
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend f16eca4
    5. v5.3 — iteracion-25: el recorrido en un panel que se cierra como cualquier ventana

      BacklogCambioIteración 25
      • Cambio iteracion-25 - A un lado del planoGiven el recorrido abiertoWhen el arquitecto mira el planoThen el recorrido va en un panel a la derecha desde tableta y abajo en el teléfono, con el fondo atenuado que dice que es una ventana, y el elemento sigue centrado y resaltado.
      • Cambio iteracion-25 - Esc o tocar fuera terminanGiven el recorrido con servicios elegidosWhen el arquitecto pulsa Esc o toca fuera del panelThen el recorrido se cierra como con «Terminar», con lo elegido hasta ahí.
    6. Iteración 8 · Cambio: US-130 Los recorridos resaltan en ámbar

      GREENfrontend 26bf17a
    7. Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

      GREENfrontend 06e1fe0
    8. v4.2 — iteracion-8: el recorrido resalta en ámbar

      BacklogCambioIteración 8
      • Cambio iteracion-8 - Muros, puertas y ventanas en ámbarGiven un recorrido abierto (la ronda de medidas o «Asignar materiales»)When pregunta por un muro, una puerta o una ventanaThen ese elemento se resalta en ámbar, el mismo color con que se marca una habitación elegida, y no en el azul de la selección.
      • Cambio iteracion-8 - Los pisos, como una habitación elegidaGiven el recorrido en el piso de una habitaciónWhen se muestraThen la habitación se tiñe y resalta en ámbar como al tocarla.
      • Cambio iteracion-8 - Al cerrar, nada queda resaltadoGiven un recorrido abiertoWhen termina o se cierraThen ya no queda ningún elemento resaltado en ámbar.
    9. Iteración 7 · Nueva: US-134 Asignar materiales con un recorrido

      GREENfrontend 2cc3aa8
    10. v4.1 — iteracion-7: alta del recorrido «Asignar materiales»

      BacklogNuevaIteración 7
      • Nueva iteracion-7 - Asignar sin buscarGiven que hasta v4.0 los servicios se ligaban elemento por elemento desde el panel (US-94)When se agrega US-134Then un recorrido opcional pasa por cada muro y cada piso para elegirlos.
    11. iteracion-7 #3: «Asignar materiales» vive en el panel (sección MATERIALES, siempre visible) porque la barra superior ya no tiene sitio a 1280 px; el recorrido es del nivel activo; elegir un servicio usa la medida por omisión de su unidad (US-94: una cara del muro, superficie de piso); lo elegido se aplica al terminar, en un solo «Deshacer».

      Decisión
    12. iteracion-7 (propuesta): «Asignar materiales» asigna servicios del catálogo (los de US-94), no texturas; recorre muros y pisos, no puertas ni ventanas.

      Decisión

Últimos cambios

  1. US-27 Crear y gestionar los planos de la cuenta

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-37 Exportar el plano como imágenes separadas por capa

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  3. US-38 Exportar la imagen 3D desde un punto de vista definido

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  4. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  5. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    v5.6 — iteracion-28: el editor de escritorio desde 1024 px y su cromo con los colores del tema

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El escritorio empieza en 1024 pxGiven una pantalla de 1024 px o másWhen el arquitecto abre un planoThen ve el editor de escritorio, con el mobiliario, el lienzo y las propiedades lado a lado y la barra y las herramientas arribaAnd en una pantalla más angosta, como una tableta de 768 px, ve la vista de teléfono y tableta, donde el lienzo se consulta y se elige con un toque pero nada se arrastra.
    • Cambio iteracion-28 - La pista y el plano vacío siguen al temaGiven la aplicación en oscuroWhen el arquitecto abre un plano vacíoThen la pista de la herramienta y el aviso «Este plano está vacío» se ven sobre la superficie oscura del tema, con su texto legibleAnd el lienzo sigue siendo papel claro, como el plano impreso.
  6. US-41 Calcar sobre la imagen de un plano existente

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  7. US-42 Aplicar colores y texturas a los elementos

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  8. US-48 Barra de elementos y catálogo de mobiliario

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  9. US-50 Dar al muro su color en planta y su coronamiento en 3D

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  10. US-65 Ver la contraseña al escribirla

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend da9534a
  11. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 409ce23
  12. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend 6236451
  13. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v5.7 — iteracion-29: las tarjetas del proyecto, solo con su título

    BacklogCambioIteración 29
    • Cambio iteracion-29 - Las tarjetas del proyecto, solo con su títuloGiven el usuario en la pantalla de un proyectoWhen ve sus tarjetas (Avance, Cobros, Registrar avance, Avances registrados, Reparto de servicios y Pagos al personal)Then cada una lleva solo su título, sin un ícono encima, como pide el manual de marca, y la pieza de la tarjeta ya no acepta uno.
  14. US-69 Consultar mi cuenta y salir desde un mismo menú

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  15. US-69 Consultar mi cuenta y salir desde un mismo menú

    v5.6 — iteracion-28: si la cuenta no llega, Perfil y Plan lo dicen y dejan reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si la cuenta no llega, Perfil y Plan lo dicen y dejan reintentarGiven la persona abre Perfil o Plan en Mi perfilAnd el servidor no entrega su cuentaWhen se pinta la secciónThen dice «No se pudo cargar tu cuenta.» con el motivo que dio el servidor y el botón «Reintentar»And no queda debajo un esqueleto esperando la cuentaAnd al tocar «Reintentar» se vuelve a pedir y aparecen el correo y la suscripción.
  16. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  17. US-93 Dibujar la estructura, no sólo los muros

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  18. US-94 Decirle al plano lo que se cobra de cada cosa

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  19. US-95 Convertir el plano en una cotización

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  20. US-100 Que la paleta de texturas no se coma el panel

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  21. US-129 Convertir la foto de un plano en un plano editable

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  22. US-130 Confirmar las medidas del plano importado

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  23. US-130 Confirmar las medidas del plano importado

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend 6236451
  24. US-130 Confirmar las medidas del plano importado

    v5.7 — iteracion-29: el foco entra al panel de medidas y vuelve al cerrarlo

    BacklogCambioIteración 29
    • Cambio iteracion-29 - El foco entra al panel de medidas y vuelve al cerrarloGiven el arquitecto con un plano importadoWhen se abre la ronda de medidas en el panel lateralThen el teclado queda dentro del panel, en su primera preguntaAnd al cerrarlo, con Esc o al terminar, el foco vuelve al botón que lo abrió.
  25. US-133 Ir del plano a su cotización y de vuelta

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  26. US-133 Ir del plano a su cotización y de vuelta

    v5.6 — iteracion-28: en el teléfono el folio va junto a las acciones del plano

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El folio fuera de la tarjeta que abre el planoGiven un plano con cotización ligada en el listado, en un teléfonoWhen el arquitecto mira su tarjetaThen el folio de la cotización se ve junto a las acciones de la tarjetaAnd tocar el folio abre la cotización, mientras que tocar el resto de la tarjeta abre el plano.
  27. US-134 Asignar materiales con un recorrido

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 71ca9a8
  28. US-134 Asignar materiales con un recorrido

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend 6236451
  29. US-134 Asignar materiales con un recorrido

    v5.7 — iteracion-29: el foco entra a «Asignar materiales» y vuelve al cerrarlo

    BacklogCambioIteración 29
    • Cambio iteracion-29 - El foco entra a «Asignar materiales» y vuelve al cerrarloGiven el arquitecto en el editor de planosWhen toca «Asignar materiales» y se abre el panel lateralThen el teclado queda dentro del panelAnd al cerrarlo, con Esc o al terminar, el foco vuelve a «Asignar materiales».
  30. US-27 Crear y gestionar los planos de la cuenta

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  31. US-27 Crear y gestionar los planos de la cuenta

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la lista de planosWhen el usuario toca «Nuevo plano» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se crean dos planos.
  32. US-54 Importar texturas al plano, sueltas o en paquete

    v5.4 — iteracion-26: texturas y modelos de hasta 4 MB

    BacklogCambioIteración 26
    • Cambio iteracion-26 - Tope de 4 MB por archivoGiven una textura o un modelo de más de 4 MB, o un archivo cuyo contenido no es la imagen que dice serWhen lo importoThen la importación lo rechaza con su motivo (el tope de 4 MB o el tipo de archivo).
  33. US-69 Consultar mi cuenta y salir desde un mismo menú

    v5.6 — iteracion-28: menú de la cuenta con el DropdownMenu del kit

    BacklogCambioIteración 28
    • Cambio iteracion-28 - El menú de la cuenta del kitGiven el usuario toca «Mi cuenta»When se abre el menúThen aparece con su animación y conserva el orden: su correo; Mi perfil; Organización; Colaboradores (si administra); la empresa (si trabaja en más de una); la fila «Tema» con Claro, Oscuro y Sistema; Guías, Documentos legales e Instalar app; y al final «Cerrar sesión» en rojoAnd se cierra al elegir, al tocar fuera y con Esc, pero no al elegir el tema.
    • Cambio iteracion-28 - El botón de la cuenta desde 768 pxGiven una pantalla de 768 px o másWhen el usuario mira la barra superiorThen el botón de la cuenta muestra el avatar con la inicial de su correo y el correo al lado, truncadoAnd en un teléfono muestra solo la inicial.
  34. US-95 Convertir el plano en una cotización

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  35. US-95 Convertir el plano en una cotización

    Iteración 27 · Bug: Mejora de cumplimiento

    GREENfrontend c5cda06
  36. US-95 Convertir el plano en una cotización

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven las partidas del plano y un cliente elegidoWhen el usuario toca «Crear cotización» o «Actualizar cotización» y guardar el plano o la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se crean dos cotizaciones.
  37. US-95 Convertir el plano en una cotización

    v5.5 — iteracion-27: el aviso dice por qué no se pudo cotizar

    BacklogBugIteración 27
    • Bug iteracion-27 - El motivo del servidorGiven el arquitecto convierte el plano en una cotizaciónWhen el servidor la rechaza con su motivoThen el aviso dice «No se pudo crear la cotización.» (o «actualizar») seguido de ese motivoAnd «Revisa tu conexión» solo aparece cuando el servidor no respondió.
  38. US-129 Convertir la foto de un plano en un plano editable

    Iteración 27 · Bug: El mes en curso y el «hoy» del backend se calculan con la hora de México

    GREENbackend f69fa1a
  39. US-129 Convertir la foto de un plano en un plano editable

    v5.5 — iteracion-27: el tope diario cuenta el día de México

    BacklogBugIteración 27
    • Bug iteracion-27 - El día empieza a medianoche de MéxicoGiven el arquitecto convirtió una foto a las 10:00When son las 23:30 del mismo día en Ciudad de MéxicoThen esa foto sigue contando para el tope del díaAnd el tope vuelve a empezar a medianoche de México, no a las 18:00.
  40. US-27 Crear y gestionar los planos de la cuenta

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  41. US-27 Crear y gestionar los planos de la cuenta

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el nombre de un planoWhen el usuario lo abreThen ve un asterisco en Nombre del planoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre del plano» sin cumplirlo ve «El plano necesita un nombre para guardarse» junto al campo.
  42. US-27 Crear y gestionar los planos de la cuenta

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Guardar nombre» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  43. US-41 Calcar sobre la imagen de un plano existente

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend f16eca4
  44. US-41 Calcar sobre la imagen de un plano existente

    v5.3 — iteracion-25: cancelar la escala no quita la imagen

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Cancelar la escalaGiven los dos puntos marcados y la pregunta de la distancia abiertaWhen el arquitecto toca «Cancelar», pulsa Esc o toca fueraThen la pregunta se cierra y se deja de escalarAnd la imagen de fondo sigue en el plano, con su escala de antes (para quitarla está «Quitar»).
  45. US-42 Aplicar colores y texturas a los elementos

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  46. US-42 Aplicar colores y texturas a los elementos

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada color, textura e «Importar textura» de las caras, el suelo y los objetosThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  47. US-48 Barra de elementos y catálogo de mobiliario

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  48. US-48 Barra de elementos y catálogo de mobiliario

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada categoría y cada modelo del catálogo de mobiliarioThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  49. US-50 Dar al muro su color en planta y su coronamiento en 3D

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  50. US-50 Dar al muro su color en planta y su coronamiento en 3D

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada color del muro en planta y del coronamiento, y «Auto»Then es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  51. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  52. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Cliente», «Cotizado» o «Avance»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Avance» (menos avance primero) ya se ve ordenada.
  53. US-69 Consultar mi cuenta y salir desde un mismo menú

    Iteración 23 · Cambio: Menú de la cuenta con el orden del estándar: «Mi perfil» y «Cerrar sesión» (antes «Ir a mi perfil» y «Salir»)

    GREENfrontend f2b2c5a
  54. US-69 Consultar mi cuenta y salir desde un mismo menú

    Iteración 23 · Cambio: Botón de la cuenta con avatar: inicial y correo desde 600 px, solo la inicial en el teléfono

    GREENfrontend c20959d
  55. US-69 Consultar mi cuenta y salir desde un mismo menú

    Iteración 23 · Cambio: Mi perfil con el layout de configuración: Perfil, Cuenta, Plan y Apariencia, cada una con su ruta

    GREENfrontend 823acbe
  56. US-69 Consultar mi cuenta y salir desde un mismo menú

    v5.2 — iteracion-23: menú de cuenta y perfil con el estándar de configuración

    BacklogCambioIteración 23
    • Cambio iteracion-23 - Cerrar sesión y Mi perfilGiven el menú de la cuenta abiertoWhen el usuario lo recorreThen ve, en orden: su correo como encabezado; Mi perfil; Organización; Colaboradores (si administra); la empresa (si trabaja en más de una); Tema; Guías, Documentos legales e Instalar app; y al final «Cerrar sesión» en rojoAnd ya no dice «Salir» ni «Ir a mi perfil».
    • Cambio iteracion-23 - El botón de la cuenta dice quién esGiven una pantalla de 600 px o másWhen el usuario mira la barra superiorThen el botón de la cuenta muestra un avatar con la inicial de su correo y el correo al ladoAnd en el teléfono muestra solo el avatar con la inicial.
    • Cambio iteracion-23 - Mi perfil por seccionesGiven el usuario en Mi perfilWhen lo abreThen ve una navegación con Perfil, Cuenta, Plan y Apariencia, la activa marcadaAnd cada sección tiene su dirección (/profile, /profile/account, /profile/plan, /profile/appearance)And Perfil muestra su correo y desde cuándo existe la cuenta.
  57. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  58. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Plano» o «Modificado»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Modificado» (lo más reciente primero) ya se ve ordenada.
  59. US-94 Decirle al plano lo que se cobra de cada cosa

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  60. US-94 Decirle al plano lo que se cobra de cada cosa

    v5.3 — iteracion-25: los botones y las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Botones del sistema de diseñoGiven el editor de planosWhen el usuario llega con el teclado a cada textura de la paleta del planoThen es un botón con su nombre y el anillo de foco del sistema, se activa con Enter o espacioAnd no envía ningún formulario.
  61. US-95 Convertir el plano en una cotización

    Iteración 25 · Nueva: US-12 PDF de cotización con desglose por habitación: el resumen global y, debajo, cada habitación con sus conceptos y su subtotal

    GREENbackend 830de0d
  62. US-95 Convertir el plano en una cotización

    v5.3 — iteracion-25: la cotización sabe de qué habitación es cada partida

    BacklogNuevaIteración 25
    • Nueva iteracion-25 - El plano reparte por habitaciónGiven que hasta v5.2 la cotización del plano sólo guardaba la cantidad sumada de cada servicioWhen se agrega el reparto en iteracion-25Then cada partida que mide el plano guarda cuánto cae en cada habitación, para el desglose del documento (US-12).
    • Nueva iteracion-25 - Recotizar actualiza el desgloseGiven una cotización ligada en borradorWhen cambian las habitaciones del plano y el arquitecto vuelve a «Cotizar» y actualizaThen cada partida del plano toma su reparto nuevoAnd la que ya no cae en ninguna habitación se queda sin repartoAnd lo agregado a mano sigue sin habitación.
  63. US-130 Confirmar las medidas del plano importado

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend f16eca4
  64. US-130 Confirmar las medidas del plano importado

    v5.3 — iteracion-25: la ronda en un panel que pregunta antes de descartar

    BacklogCambioIteración 25
    • Cambio iteracion-25 - A un lado del planoGiven la ronda de medidas abiertaWhen el arquitecto mira el planoThen la pregunta va en un panel a la derecha desde tableta y abajo en el teléfono, y el elemento por el que pregunta sigue centrado y resaltado.
    • Cambio iteracion-25 - Cerrar sin haber respondidoGiven la primera pregunta sin tocarWhen el arquitecto pulsa Esc o toca fueraThen la ronda se omite, como con «Omitir».
    • Cambio iteracion-25 - Cerrar con respuestas pregunta antesGiven la ronda con algo respondidoWhen el arquitecto pulsa Esc o toca fueraThen se pregunta «¿Descartar las medidas?»And «Descartar medidas» omite la ronda y el plano queda con la escala provisionalAnd «Cancelar» vuelve a la pregunta donde iba, con lo escrito.
  65. US-133 Ir del plano a su cotización y de vuelta

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  66. US-133 Ir del plano a su cotización y de vuelta

    v5.3 — iteracion-25: el enlace del plano dice el folio de su cotización

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio de la cotización en el listado de planosGiven un plano con una cotización de folio «OBR-7»When se ve el listado de planosThen el enlace dice «OBR-7».
  67. US-134 Asignar materiales con un recorrido

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend f16eca4
  68. US-134 Asignar materiales con un recorrido

    v5.3 — iteracion-25: el recorrido en un panel que se cierra como cualquier ventana

    BacklogCambioIteración 25
    • Cambio iteracion-25 - A un lado del planoGiven el recorrido abiertoWhen el arquitecto mira el planoThen el recorrido va en un panel a la derecha desde tableta y abajo en el teléfono, con el fondo atenuado que dice que es una ventana, y el elemento sigue centrado y resaltado.
    • Cambio iteracion-25 - Esc o tocar fuera terminanGiven el recorrido con servicios elegidosWhen el arquitecto pulsa Esc o toca fuera del panelThen el recorrido se cierra como con «Terminar», con lo elegido hasta ahí.
  69. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    v5.1

    BacklogCambioIteración 20
    • Revisada: «Renombrar» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Renombrar» queda una por una porque cada plano lleva su propio nombre; así ya funciona.
  70. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend c2db9b3
  71. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 90794cb
  72. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v4.9 — iteracion-17: los proyectos se piden por páginas y cada uno se abre solo

    BacklogCambioIteración 17
    • Cambio iteracion-17 - La lista no trae los avancesGiven una cuenta con 30 proyectos con avances y fotosWhen el usuario abre ProyectosThen recibe los primeros 20 con su cliente, avance e importes, sin los avances ni las fotos de cada uno.
    • Cambio iteracion-17 - Abrir un proyecto pide solo ese proyectoGiven el enlace de un proyectoWhen el usuario lo abre, desde la lista o desde un enlace compartidoThen se carga ese proyecto con sus avances y fotos, sin descargar la lista.
    • Cambio iteracion-17 - Filtrar y ordenar en todoWhen el usuario filtra Estado por «En curso» y ordena por menos avanceThen el primero es el proyecto en curso con menos avance de toda la cuenta.
    • Cambio iteracion-17 - Sin acciones en loteGiven la lista de proyectosWhen el usuario la miraThen no hay casillas de selección, porque terminar un proyecto se hace desde su pantalla, con su saldo y su documento.
  73. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    v4.9 — iteracion-17: la lista de planos se recorre por páginas y se elimina en lote

    BacklogCambioIteración 17
    • Cambio iteracion-17 - La lista se corta en páginasGiven 45 planos en la cuentaWhen el usuario abre PlanosThen ve los 20 más recientes y el contador «1–20 de 45».
    • Cambio iteracion-17 - Sincronizar no es descargar todo de una vezGiven 300 planos en la cuentaWhen el dispositivo se pone al día con el servidorThen pide los resúmenes por páginas de 100 y solo baja el contenido de los que abre o cambiaron.
    • Cambio iteracion-17 - Eliminar variosGiven el usuario selecciona 3 planosWhen elige «Eliminar» y confirma «¿Eliminar 3 planos?»Then desaparecen del dispositivo y de la cuentaAnd ve «3 planos eliminados».
  74. US-92 Que mis planos estén donde yo esté

    Iteración 16 · Bug: Gravedad alta — US-92 · US-137: los planos, modelos y texturas del dispositivo son de cada empresa

    GREENfrontend 87b9c56
  75. US-92 Que mis planos estén donde yo esté

    Iteración 16 · Bug: US-92: endurecimiento del guardado de planos

    GREENbackend faa0091
  76. US-92 Que mis planos estén donde yo esté

    v4.8 — iteracion-16: lo guardado en el dispositivo es de cada empresa

    BacklogBugIteración 16
    • Bug iteracion-16 - Los planos del dispositivo son de la empresa donde se dibujaronGiven un colaborador con planos, modelos y texturas guardados en el dispositivo mientras trabajaba en la empresa AWhen cambia a la empresa B y abre PlanosThen no ve ni sube a B nada de lo de AAnd al volver a A lo encuentra como lo dejó.
    • Bug iteracion-16 - Lo de antes no viaja a una empresa equivocadaGiven un dispositivo con planos guardados antes de esta versión por alguien que colabora en otra empresaWhen se abre el editorThen lo que no se sabe de qué empresa es queda apartado en el dispositivoAnd no se sube a ninguna.
  77. US-94 Decirle al plano lo que se cobra de cada cosa

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 9359f15
  78. US-94 Decirle al plano lo que se cobra de cada cosa

    v4.9 — iteracion-17: el servicio que se cobra se busca en todo el catálogo

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Sugeridos y búsquedaGiven un elemento del planoWhen el usuario abre lo que se cobraThen ve primero los servicios de su catálogo con la unidad que le correspondeAnd puede buscar cualquier otro servicio por su nombre.
  79. US-133 Ir del plano a su cotización y de vuelta

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 6d6a64d
  80. US-133 Ir del plano a su cotización y de vuelta

    v4.9 — iteracion-17: el cliente de la cotización del plano se busca

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Buscar el cliente desde el planoGiven una cuenta con 200 clientesWhen el usuario crea la cotización de un plano y escribe «gar» en ClienteThen ve los clientes que contienen «gar», de los 200.
  81. US-31 Importar modelos propios a la biblioteca de la cuenta

    Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

    GREENbackend 073df9f
  82. US-31 Importar modelos propios a la biblioteca de la cuenta

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  83. US-54 Importar texturas al plano, sueltas o en paquete

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  84. US-67 Los proyectos en una tabla, cada uno con su pantalla

    Iteración 13 · Cambio: US-67 Estado de error en Proyectos y su detalle

    GREENfrontend b65e628
  85. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v4.5 — iteracion-13: la lista de proyectos dice cuándo no cargó

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Error al cargarGiven que la lista de proyectos no se pudo cargarWhen se abre ProyectosThen se explica que no se pudo cargarAnd hay un botón para reintentarAnd no se muestra como si no hubiera proyectos.
  86. US-69 Consultar mi cuenta y salir desde un mismo menú

    Iteración 12 · Bug: US-03 Sesión en cookies seguras con rotación y cierre

    GREENbackend 23c6d4d
  87. US-69 Consultar mi cuenta y salir desde un mismo menú

    v4.4 — iteracion-12: salir cierra la sesión de verdad

    BacklogBugIteración 12
    • Bug iteracion-12 - Salir invalida la sesiónGiven una sesión abiertaWhen la persona toca «Salir»Then esa sesión ya no sirve, ni en ese dispositivo ni si alguien la copió.
  88. US-129 Convertir la foto de un plano en un plano editable

    Iteración 12 · Bug: US-16 Archivos validados por su contenido, con nombre propio y privados

    GREENbackend 48faa6c
  89. US-29 Definir habitaciones y conocer su superficie

    Iteración 11 · Cambio: US-29 Todo lo resaltado en ámbar

    GREENfrontend f37ccc9
  90. US-29 Definir habitaciones y conocer su superficie

    v4.3 — iteracion-11: todo lo resaltado en ámbar

    BacklogCambioIteración 11
    • Cambio iteracion-11 - Lo elegido, en ámbarGiven un plano con muros, habitaciones, puertas, ventanas, mobiliario, trabes, columnas y cotasWhen el arquitecto elige cualquiera de ellosThen se resalta en ámbar, el mismo color de los recorridos, y no en azul.
    • Cambio iteracion-11 - La habitación elegida, igualGiven una habitación elegidaWhen se muestraThen su superficie se tiñe de ámbar y lo suyo se resalta en el mismo ámbar, como en iteracion-6.
    • Cambio iteracion-11 - Las manijas del muro elegidoGiven un muro elegidoWhen se muestran las manijas de sus extremosThen van en ámbar.
    • Cambio iteracion-11 - Lo que se dibuja no es un resalteGiven un muro, una habitación o una cota a medio dibujarWhen se ve su trazo provisionalThen sigue en azul: es lo que se está dibujando, no algo resaltado.
  91. US-36 Ver y recorrer el plano en vista 3D

    Iteración 11 · Cambio: US-36 La cámara aérea no baja del suelo

    GREENfrontend 66465c6
  92. US-36 Ver y recorrer el plano en vista 3D

    Iteración 11 · Cambio: US-36 El suelo en gris tenue en 3D

    GREENfrontend 0c13a9e
  93. US-36 Ver y recorrer el plano en vista 3D

    v4.3 — iteracion-11: la cámara no baja del suelo y el suelo se distingue

    BacklogCambioIteración 11
    • Cambio iteracion-11 - La cámara se detiene en el sueloGiven la vista aéreaWhen el arquitecto gira el plano hacia abajo con el cursorThen la cámara se detiene a ras del sueloAnd no se puede ver el plano desde abajo.
    • Cambio iteracion-11 - Desplazar tampoco lo hundeGiven la vista aéreaWhen el arquitecto desplaza la vista hacia abajoThen el punto de mira no baja del suelo y la cámara sigue encima.
    • Cambio iteracion-11 - Un punto de vista guardado tampocoGiven un punto de vista guardado por debajo del sueloWhen se aplicaThen la cámara queda a ras del suelo, no debajo.
    • Cambio iteracion-11 - El suelo en gris tenueGiven una habitación sin acabado de sueloWhen se abre la vista 3DThen su suelo se ve en un gris tenue, distinto de los muros y de la estructuraAnd un suelo con acabado se ve con su acabado.
  94. US-132 Seleccionar varios elementos con un recuadro

    Iteración 11 · Cambio: US-29 Todo lo resaltado en ámbar

    GREENfrontend f37ccc9
  95. US-132 Seleccionar varios elementos con un recuadro

    v4.3 — iteracion-11: el recuadro en ámbar

    BacklogCambioIteración 11
    • Cambio iteracion-11 - El recuadro y lo que encierraGiven la herramienta SeleccionarWhen el arquitecto arrastra un recuadroThen el recuadro se dibuja en ámbarAnd al soltar, lo que quedó dentro se resalta en ámbar.
  96. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

    GREENfrontend 06e1fe0
  97. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    v4.2 — iteracion-8: foto a plano, recorridos y cotizar en el teléfono

    BacklogCambioIteración 8
    • Cambio iteracion-8 - Foto a plano en el teléfonoGiven el editor abierto en un teléfonoWhen el arquitecto toca «Foto a plano»Then puede tomar una foto o elegirla de la galeríaAnd se convierte como en escritorio, con el cuestionario de medidas si hace falta.
    • Cambio iteracion-8 - Los recorridos en el teléfonoGiven un plano en el teléfonoWhen el arquitecto toca «Validar medidas» o «Asignar materiales»Then el recorrido se abre con el plano a la vista, centrado y resaltado en cada paso.
    • Cambio iteracion-8 - Cotizar en el teléfonoGiven un plano con servicios asignados en el teléfonoWhen el arquitecto toca «Cotizar»Then se crea o actualiza la cotización como en escritorio.
    • Cambio iteracion-8 - Guardar lo hecho en el teléfonoGiven cambios hechos en el teléfono (una conversión, un recorrido)When el arquitecto toca «Guardar»Then el plano queda guardadoAnd «Deshacer» quita lo último que se hizo.
    • Cambio iteracion-8 - Lo demás sigue en escritorioGiven el editor en un teléfonoWhen el arquitecto busca dibujar o editar muros, mobiliario, texturas o exportarThen no está: el aviso dice que esas herramientas son de escritorio.
  98. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    iteracion-8 #3: en el teléfono el editor ofrece Foto a plano (cámara o galería, sin capture), Validar medidas, Asignar materiales, Cotizar, Deshacer y Guardar; el dibujo sigue en escritorio y el lienzo del teléfono no arrastra nada. Al abrir un recorrido el lienzo sube a la vista (con espacio abajo para la pregunta) y los avisos salen arriba. La conversión en cotización va a pantalla completa en pantallas angostas, con el precio bajo la cantidad.

    Decisión
  99. US-95 Convertir el plano en una cotización

    Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

    GREENfrontend 06e1fe0
  100. US-129 Convertir la foto de un plano en un plano editable

    Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

    GREENfrontend 06e1fe0
  101. US-130 Confirmar las medidas del plano importado

    Iteración 8 · Cambio: US-130 Los recorridos resaltan en ámbar

    GREENfrontend 26bf17a
  102. US-130 Confirmar las medidas del plano importado

    Iteración 8 · Cambio: US-130 «Validar medidas» cuando se quiera

    GREENfrontend f909554
  103. US-130 Confirmar las medidas del plano importado

    v4.2 — iteracion-8: el recorrido resalta en ámbar

    BacklogCambioIteración 8
    • Cambio iteracion-8 - Muros, puertas y ventanas en ámbarGiven un recorrido abierto (la ronda de medidas o «Asignar materiales»)When pregunta por un muro, una puerta o una ventanaThen ese elemento se resalta en ámbar, el mismo color con que se marca una habitación elegida, y no en el azul de la selección.
    • Cambio iteracion-8 - Los pisos, como una habitación elegidaGiven el recorrido en el piso de una habitaciónWhen se muestraThen la habitación se tiñe y resalta en ámbar como al tocarla.
    • Cambio iteracion-8 - Al cerrar, nada queda resaltadoGiven un recorrido abiertoWhen termina o se cierraThen ya no queda ningún elemento resaltado en ámbar.
  104. US-130 Confirmar las medidas del plano importado

    v4.2 — iteracion-8: «Validar medidas» cuando se quiera

    BacklogCambioIteración 8
    • Cambio iteracion-8 - Validar medidas cuando se quieraGiven un plano convertido de una fotoWhen el arquitecto toca «Validar medidas»Then se abre la ronda de medidas sobre lo convertido, con sus medidas actuales.
    • Cambio iteracion-8 - Tantas veces como quieraGiven una ronda omitida, cancelada o ya aplicadaWhen el arquitecto vuelve a tocar «Validar medidas»Then la ronda se abre de nuevo.
    • Cambio iteracion-8 - Lo ya dado no se pierdeGiven un plano al que ya se le dio la escala, el grosor y la alturaWhen se repite la rondaThen no pregunta la escala otra vezAnd el grosor y la altura vienen con los valores que ya tiene, no con los de por omisión.
    • Caso de borde iteracion-8 - Sin nada convertidoGiven un plano dibujado a mano, sin nada convertido de una fotoWhen el arquitecto mira «Validar medidas»Then no está disponible y su ayuda dice que sirve para planos convertidos de una foto.
  105. US-130 Confirmar las medidas del plano importado

    iteracion-8 #2: el fondo guarda realScale (lo marcan la lectura con escala, la ronda y «Escalar») y measures (grosor exterior, interior y altura que aplicó la ronda); «Validar medidas» repite la ronda sobre lo convertido sin las cotas leídas (la referencia es el muro más largo si aún no hay escala). En el paso de grosor y altura queda resaltado el último elemento preguntado.

    Decisión
  106. US-134 Asignar materiales con un recorrido

    Iteración 8 · Cambio: US-130 Los recorridos resaltan en ámbar

    GREENfrontend 26bf17a
  107. US-134 Asignar materiales con un recorrido

    Iteración 8 · Cambio: US-39 Foto a plano, recorridos y cotizar en el teléfono

    GREENfrontend 06e1fe0
  108. US-134 Asignar materiales con un recorrido

    v4.2 — iteracion-8: el recorrido resalta en ámbar

    BacklogCambioIteración 8
    • Cambio iteracion-8 - Muros, puertas y ventanas en ámbarGiven un recorrido abierto (la ronda de medidas o «Asignar materiales»)When pregunta por un muro, una puerta o una ventanaThen ese elemento se resalta en ámbar, el mismo color con que se marca una habitación elegida, y no en el azul de la selección.
    • Cambio iteracion-8 - Los pisos, como una habitación elegidaGiven el recorrido en el piso de una habitaciónWhen se muestraThen la habitación se tiñe y resalta en ámbar como al tocarla.
    • Cambio iteracion-8 - Al cerrar, nada queda resaltadoGiven un recorrido abiertoWhen termina o se cierraThen ya no queda ningún elemento resaltado en ámbar.
  109. US-129 Convertir la foto de un plano en un plano editable

    Iteración 7 · Cambio: US-129 Medidas antes de leer el plano

    GREENbackend 71d35eb
  110. US-129 Convertir la foto de un plano en un plano editable

    v4.1 — iteracion-7: medidas antes de leer el plano

    BacklogCambioIteración 7
    • Cambio iteracion-7 - El plano trae sus medidasGiven la foto de un plano con cotas legibles de al menos un lado horizontal y uno verticalWhen termina de limpiarseThen se detectan esas medidas antes de enviarla a la IAAnd la IA lee el plano ya con esa escalaAnd el plano llega en metros reales sin preguntar nada.
    • Cambio iteracion-7 - El plano no trae medidasGiven la foto de un plano sin cotas legiblesWhen termina de limpiarseThen , antes de enviarla a la IA, se abre un cuestionario con la foto pulida que pide cuánto mide el plano de ancho (lado horizontal) y de alto (lado vertical)And con esas dos medidas se escala el plano antes de leerlo, para que la IA aproxime el resto de los muros.
    • Cambio iteracion-7 - Falta un solo ladoGiven un plano con una cota horizontal legible y ninguna verticalWhen se abre el cuestionarioThen pide sólo el altoAnd el ancho lo toma de la cota.
    • Caso alternativo iteracion-7 - Seguir sin medidasGiven el cuestionario abiertoWhen el arquitecto toca «Seguir sin medidas»Then se convierte como hasta ahora, a escala aproximada, y la ronda de medidas pregunta la escala.
    • Caso alternativo iteracion-7 - Medida inválidaGiven el cuestionarioWhen el arquitecto escribe 0, deja vacío o algo que no es un númeroThen ve «La medida debe ser mayor que 0» y no se envía.
    • Caso de borde iteracion-7 - Cancelar no gasta una fotoGiven el cuestionario abiertoWhen el arquitecto lo cierra sin convertirThen no se descuenta una foto del tope diario y el plano queda como estaba.
  111. US-129 Convertir la foto de un plano en un plano editable

    iteracion-7 (propuesta): las medidas se buscan con una lectura rápida de IA sólo de las cotas tras la limpieza; basta una cota horizontal y una vertical legibles; si falta alguna, el cuestionario pide sólo esa. Cerrar el cuestionario no gasta una foto del tope diario.

    Decisión
  112. US-130 Confirmar las medidas del plano importado

    Iteración 7 · Cambio: US-130 Con la escala conocida, la ronda no la pregunta

    GREENfrontend 6cc0931
  113. US-130 Confirmar las medidas del plano importado

    v4.1 — iteracion-7: con la escala conocida, la ronda no la pregunta

    BacklogCambioIteración 7
    • Cambio iteracion-7 - Sin pregunta de escalaGiven un plano que llegó a escala real, por sus cotas o por el ancho y alto del cuestionarioWhen se abre la ronda de medidasThen empieza por «Muro 1 de N» para confirmar o corregir cada muro, puerta y ventanaAnd al final pregunta el grosor de los muros y la altura de techo, sin preguntar la escala.
    • Cambio iteracion-7 - Escala aproximada, como hasta ahoraGiven un plano convertido sin medidasWhen se abre la rondaThen la primera pregunta da la escala, como en v4.0.
  114. US-130 Confirmar las medidas del plano importado

    iteracion-7 (propuesta): cuando la escala se conoce antes de la IA (cotas legibles o ancho y alto del cuestionario), la ronda se salta la pregunta de escala y empieza por el primer muro.

    Decisión
  115. US-134 Asignar materiales con un recorrido

    Iteración 7 · Nueva: US-134 Asignar materiales con un recorrido

    GREENfrontend 2cc3aa8
  116. US-134 Asignar materiales con un recorrido

    v4.1 — iteracion-7: alta del recorrido «Asignar materiales»

    BacklogNuevaIteración 7
    • Nueva iteracion-7 - Asignar sin buscarGiven que hasta v4.0 los servicios se ligaban elemento por elemento desde el panel (US-94)When se agrega US-134Then un recorrido opcional pasa por cada muro y cada piso para elegirlos.
  117. US-134 Asignar materiales con un recorrido

    iteracion-7 #3: «Asignar materiales» vive en el panel (sección MATERIALES, siempre visible) porque la barra superior ya no tiene sitio a 1280 px; el recorrido es del nivel activo; elegir un servicio usa la medida por omisión de su unidad (US-94: una cara del muro, superficie de piso); lo elegido se aplica al terminar, en un solo «Deshacer».

    Decisión
  118. US-134 Asignar materiales con un recorrido

    iteracion-7 (propuesta): «Asignar materiales» asigna servicios del catálogo (los de US-94), no texturas; recorre muros y pisos, no puertas ni ventanas.

    Decisión
  119. US-130 Confirmar las medidas del plano importado

    Iteración 6 · Cambio: US-130 La ronda recorre todos los muros, puertas y ventanas

    GREENfrontend 2a94275
  120. US-130 Confirmar las medidas del plano importado

    iteracion-6 #4: corregir un muro en la ronda lo estira (todo lo convertido en o más allá de su extremo se desliza a lo largo del muro, tolerancia 5 cm); lo unido lo sigue a escuadra y las aberturas conservan su sitio. Una respuesta a menos de 5 mm de lo que mide no cambia nada; sólo se envían las respuestas tocadas. «Omitir el resto» aplica lo respondido antes de la pregunta en curso, con grosor y altura por omisión.

    Decisión
  121. US-27 Crear y gestionar los planos de la cuenta

    Iteración 5 · Bug: US-27 Renombrar y eliminar planos desde el editor y el listado

    GREENfrontend d97305d
  122. US-27 Crear y gestionar los planos de la cuenta

    v3.9 — iteracion-5: renombrar y eliminar planos

    BacklogBugIteración 5
    • Bug iteracion-5 - Renombrar desde el editorGiven un plano abiertoWhen el arquitecto toca su nombre en la barra superior, escribe «Casa Pérez - revisión 2» y pulsa EnterThen el plano se llama así en el editor y en el listadoAnd si deja el nombre vacío ve «El plano necesita un nombre para guardarse» y conserva el anterior.
    • Bug iteracion-5 - Acciones en cada fila del listadoGiven el listado de planosWhen el arquitecto abre las opciones de una filaThen puede abrirlo para editarlo, renombrarlo o eliminarlo.
    • Bug iteracion-5 - Eliminar pide confirmaciónGiven el arquitecto elige eliminar un planoWhen confirmaThen el plano desaparece de su cuenta y del listadoAnd las cotizaciones que salieron de él se conservan, sin el enlace al plano.
  123. US-29 Definir habitaciones y conocer su superficie

    Iteración 5 · Cambio: US-29 Tocar una habitación la selecciona con sus elementos y su resumen

    GREENfrontend d8dfaf5
  124. US-29 Definir habitaciones y conocer su superficie

    Iteración 6 · Cambio: US-29 La habitación elegida se distingue en ámbar

    GREENfrontend 98e5892
  125. US-29 Definir habitaciones y conocer su superficie

    v3.9 — iteracion-5: tocar una habitación la selecciona con todo lo suyo

    BacklogCambioIteración 5
    • Cambio iteracion-5 - La habitación se ilumina con sus elementosGiven un plano con habitacionesWhen el arquitecto toca el interior de una habitaciónThen queda seleccionadaAnd se resaltan sus muros, sus puertas y ventanas, y el mobiliario que está dentro.
    • Cambio iteracion-5 - El resumen habla de esa habitaciónGiven una habitación seleccionadaWhen el arquitecto mira el apartado «Resumen»Then ve su superficie en m², su perímetro en metros lineales, los m² de muro que la rodean, cuántas puertas, ventanas y muebles tiene, y los materiales de su suelo, su techo y sus muros.
    • Cambio iteracion-5 - Al soltarla vuelve el resumen del planoGiven una habitación seleccionadaWhen el arquitecto toca fuera de todoThen el resumen vuelve a ser el del plano completo.
  126. US-29 Definir habitaciones y conocer su superficie

    v4.0 — iteracion-6: la habitación elegida se distingue en ámbar

    BacklogCambioIteración 6
    • Cambio iteracion-6 - La zona elegida se marca en otro colorGiven un plano con habitacionesWhen el arquitecto toca una habitaciónThen su superficie se tiñe de ámbar y su contorno, sus muros, sus puertas y ventanas y su mobiliario se resaltan en ámbar, un color distinto del azul con que se marca un elemento suelto.
    • Cambio iteracion-6 - Se sigue leyendoGiven la habitación teñidaWhen el arquitecto la miraThen se siguen leyendo su nombre, su superficie y el acabado del suelo debajo del tinte.
  127. US-29 Definir habitaciones y conocer su superficie

    iteracion-6: la habitación elegida se marca en ámbar (warning #B26A00 de la marca), con tinte en su superficie, para distinguirla del azul de un elemento elegido suelto.

    Decisión
  128. US-95 Convertir el plano en una cotización

    Iteración 5 · Cambio: US-95 Recotizar actualiza la cotización ligada en borrador

    GREENbackend f978262
  129. US-95 Convertir el plano en una cotización

    v3.9 — iteracion-5: actualizar la cotización desde el plano

    BacklogCambioIteración 5
    • Cambio iteracion-5 - La cotización recuerda su planoGiven una cotización creada desde un planoWhen se guardaThen queda ligada a ese plano.
    • Cambio iteracion-5 - Recotizar actualiza el borradorGiven un plano con una cotización ligada en borrador, y cambios posteriores en el planoWhen el arquitecto vuelve a «Cotizar»Then se le ofrece «Actualizar la cotización»And al confirmar, las partidas que vienen del plano toman las cantidades nuevas, las que agregó a mano se conservan y el total se recalcula.
    • Cambio iteracion-5 - Lo que ya es proyecto no se tocaGiven la cotización ligada ya está «En proyecto»When el arquitecto vuelve a cotizar el planoThen esa cotización no cambiaAnd se crea una cotización nueva, también ligada al plano.
    • Cambio iteracion-5 - Una partida que ya no estáGiven una partida que venía del plano y cuyo elemento se borróWhen se actualiza la cotizaciónThen esa partida sale de la cotización.
    • Cambio iteracion-5 - Elegir una nueva aunque haya borradorGiven una cotización ligada en borradorWhen el arquitecto elige «Crear una nueva»Then el borrador queda como estaba y se crea otra cotización ligada.
  130. US-95 Convertir el plano en una cotización

    iteracion-5: recotizar un plano con cotización ligada en borrador la actualiza (las partidas del plano toman las cantidades nuevas, las manuales se conservan); si ya está «En proyecto» no se toca y se crea una nueva ligada al plano.

    Decisión
  131. US-129 Convertir la foto de un plano en un plano editable

    Iteración 5 · Bug: US-129 Habitaciones cerradas aunque haya puertas o huecos

    GREENbackend 271940d
  132. US-129 Convertir la foto de un plano en un plano editable

    Iteración 5 · Bug: US-129 Muros a escuadra (0°, 45°, 90°)

    GREENbackend de0dd1f
  133. US-129 Convertir la foto de un plano en un plano editable

    Iteración 5 · Cambio: US-129 Puertas y ventanas en la conversión

    GREENbackend b915800
  134. US-129 Convertir la foto de un plano en un plano editable

    Iteración 5 · Cambio: US-129 Las cotas de la foto se importan

    GREENbackend 0166726
  135. US-129 Convertir la foto de un plano en un plano editable

    Iteración 5 · Cambio: US-129 «Convertir foto en plano» en la barra superior

    GREENfrontend ab054af
  136. US-129 Convertir la foto de un plano en un plano editable

    Iteración 6 · Bug: US-129 Lo convertido queda centrado

    GREENfrontend 8b23d29
  137. US-129 Convertir la foto de un plano en un plano editable

    v3.9 — iteracion-5: habitaciones cerradas aunque haya puertas o huecos

    BacklogBugIteración 5
    • Bug iteracion-5 - La habitación cierra sobre la puertaGiven la foto de un plano cuyas habitaciones tienen puertas o vanos abiertosWhen se convierteThen cada habitación queda como un polígono cerrado que sigue sus muros, con su superficie, aunque el muro tenga el hueco de la puerta.
    • Bug iteracion-5 - Las esquinas se tocanGiven dos muros cuyos extremos quedan a menos de 15 cm, o uno que llega casi al costado de otroWhen se convierteThen se unen en el mismo punto y no quedan extremos sueltos.
    • Bug iteracion-5 - El hueco de una puerta no se rellenaGiven dos muros en línea separados por un hueco de hasta 1,20 mWhen se convierteThen el hueco se conserva como paso entre los dos murosAnd la habitación de cada lado se cierra igual.
  138. US-129 Convertir la foto de un plano en un plano editable

    v3.9 — iteracion-5: muros a escuadra

    BacklogBugIteración 5
    • Bug iteracion-5 - Lo casi recto queda rectoGiven un muro detectado a menos de 8° de la horizontal, la vertical o la diagonal de 45°When se convierteThen queda exactamente en ese ángulo, aunque la hoja estuviera pandeada.
    • Bug iteracion-5 - Lo inclinado a propósito se respetaGiven un muro a más de 8° de esos ángulosWhen se convierteThen conserva el ángulo con que se dibujó.
    • Bug iteracion-5 - Un cuarto rectangular sale rectangularGiven un cuarto dibujado rectangular en una foto con perspectiva leveWhen se convierteThen sus muros opuestos quedan paralelos y sus esquinas a 90°.
  139. US-129 Convertir la foto de un plano en un plano editable

    v3.9 — iteracion-5: puertas y ventanas

    BacklogCambioIteración 5
    • Cambio iteracion-5 - Las puertas salen como puertasGiven una puerta dibujada (su hoja y su arco de giro, o un hueco en el muro)When se convierteThen aparece una puerta en ese muro, en esa posición y con el ancho del hueco, con la altura de la puerta genérica. (Supuesto: el editor no guarda hacia dónde abre una puerta, así que el arco sólo sirve para reconocerla.)
    • Cambio iteracion-5 - Las ventanas salen como ventanasGiven una ventana dibujada en un muro (las líneas paralelas dentro del muro)When se convierteThen aparece una ventana en ese muro, con su ancho.
    • Cambio iteracion-5 - Se editan como las demásGiven puertas y ventanas convertidasWhen el arquitecto las seleccionaThen se mueven, se cambian de tipo y de medida, y se ven en 3D, como las colocadas a mano.
    • Cambio iteracion-5 - Lo que no cae en un muro no se inventaGiven una puerta o ventana leída que no queda sobre ningún muroWhen se convierteThen se descarta.
  140. US-129 Convertir la foto de un plano en un plano editable

    v3.9 — iteracion-5: las cotas se importan

    BacklogCambioIteración 5
    • Cambio iteracion-5 - Las cotas del papel aparecen en el planoGiven una foto con cotas escritas (por ejemplo «4.50»)When se convierteThen cada cota aparece como cota del plano, donde estaba dibujada, a lo largo de lo que mideAnd al confirmar la escala (US-130) marca el valor leído.
    • Cambio iteracion-5 - Una cota da la escalaGiven al menos una cota leídaWhen termina la conversiónThen la ronda de medidas propone esa cota como medida de referencia, para confirmarla en vez de escribirla (US-130).
    • Cambio iteracion-5 - Una cota que no cuadra se señalaGiven dos cotas leídas que no son proporcionales a lo dibujadoWhen se confirma la escalaThen la ronda de medidas señala cuál no cuadra.
  141. US-129 Convertir la foto de un plano en un plano editable

    v3.9 — iteracion-5: «Convertir foto en plano» en la barra superior

    BacklogCambioIteración 5
    • Cambio iteracion-5 - Una opción principal del editorGiven el editor abiertoWhen el arquitecto mira la barra superiorThen «Convertir foto en plano» está ahí, junto a «Cotizar» y «Exportar plano», y ya no en el panel del plano de fondo.
  142. US-129 Convertir la foto de un plano en un plano editable

    v4.0 — iteracion-6: lo convertido queda centrado

    BacklogBugIteración 6
    • Bug iteracion-6 - El plano convertido se ve entero y al centroGiven el editor con la vista en cualquier lugarWhen termina de convertir la fotoThen la vista se ajusta a lo convertido —la foto de fondo y lo dibujado sobre ella—, centrado y con margen, sin quedar en una esquina.
    • Bug iteracion-6 - También sin murosGiven una foto en la que no se encontraron murosWhen termina la conversiónThen la vista se ajusta a la foto que quedó de fondo.
  143. US-129 Convertir la foto de un plano en un plano editable

    iteracion-5: la geometría de la conversión (unir esquinas, cerrar habitaciones sobre las puertas, escuadra, puertas y ventanas en su muro, cotas) vive en el backend (photo_geometry); el item #1 no necesitó cambios en el frontend.

    Decisión
  144. US-129 Convertir la foto de un plano en un plano editable

    iteracion-5: las puertas convertidas no guardan hacia dónde abren, porque el editor no modela el giro de una puerta; el arco dibujado sólo sirve para reconocerla.

    Decisión
  145. US-129 Convertir la foto de un plano en un plano editable

    iteracion-5: los muros convertidos a menos de 8° de 0°, 45° o 90° se enderezan a ese ángulo; los demás conservan el suyo.

    Decisión
  146. US-130 Confirmar las medidas del plano importado

    Iteración 5 · Nueva: US-130 Ronda de medidas tras convertir la foto

    GREENfrontend 157f4db
  147. US-130 Confirmar las medidas del plano importado

    Iteración 6 · Cambio: US-130 Cada pregunta centra lo que pregunta

    GREENfrontend 3137c7b
  148. US-130 Confirmar las medidas del plano importado

    v3.9 — iteracion-5: alta de la ronda de medidas

    BacklogNuevaIteración 5
    • Nueva iteracion-5 - Medidas confirmadasGiven que hasta v3.8 un plano convertido quedaba a escala provisionalWhen se agrega US-130Then tres preguntas fijan la escala, el grosor de los muros y la altura de techo.
  149. US-130 Confirmar las medidas del plano importado

    v4.0 — iteracion-6: cada pregunta centra lo que pregunta

    BacklogCambioIteración 6
    • Cambio iteracion-6 - El elemento por el que se pregunta, al centroGiven la ronda de medidas abiertaWhen pasa a una pregunta sobre un muro, una puerta, una ventana o una cotaThen la vista se centra en ese elemento, resaltado, y lo aleja lo necesario para verlo entero.
  150. US-130 Confirmar las medidas del plano importado

    v4.0 — iteracion-6: la ronda recorre todos los muros, puertas y ventanas

    BacklogCambioIteración 6
    • Cambio iteracion-6 - Una pregunta por elementoGiven una conversión con 8 muros, 2 puertas y 1 ventanaWhen se abre la rondaThen pregunta por cada uno, de uno en uno —«Muro 1 de 8», «Puerta 1 de 2»…—, y al final por el grosor de los muros y la altura de techo.
    • Cambio iteracion-6 - La primera respuesta da la escalaGiven la primera pregunta, por la cota leída o por el muro más largoWhen el arquitecto responde 8,40 mThen todo el plano toma esa escalaAnd las preguntas siguientes ya traen sus medidas a esa escala.
    • Cambio iteracion-6 - Las demás corrigen ese elementoGiven un muro que a esa escala mide 3,10 mWhen el arquitecto responde 3,00 mThen ese muro pasa a medir 3,00 m y los muros unidos a él lo siguenAnd si en una puerta responde 0,90 m, la puerta pasa a medir 0,90 m de ancho.
    • Cambio iteracion-6 - Dejar como estáGiven una pregunta cuyo valor ya es el correctoWhen el arquitecto sigue sin cambiarloThen ese elemento no se toca.
    • Cambio iteracion-6 - Omitir el restoGiven la ronda a mediasWhen el arquitecto toca «Omitir el resto»Then se aplica lo respondido hasta ahí, con los valores por omisión de grosor y altura, y la ronda se cierra.
    • Cambio iteracion-6 - Un solo deshacerGiven la ronda aplicadaWhen el arquitecto toca «Deshacer»Then vuelve el plano como quedó al convertir.
  151. US-130 Confirmar las medidas del plano importado

    iteracion-6: la ronda pregunta por cada muro y cada puerta o ventana (no por cotas ni habitaciones); la primera respuesta (cota leída o muro más largo) da la escala y las demás corrigen ese elemento: el muro mueve su extremo final y los muros unidos lo siguen; la abertura cambia su ancho. Se puede «Omitir el resto».

    Decisión
  152. US-130 Confirmar las medidas del plano importado

    iteracion-5: la ronda de medidas tiene tres preguntas — longitud real del muro más largo (o confirmar la cota leída), grosor de muros exteriores e interiores, y altura de techo — y se aplica en un solo paso de deshacer.

    Decisión
  153. US-131 Moverme por el plano arrastrando

    Iteración 5 · Nueva: US-131 Moverse por el plano arrastrando

    GREENfrontend 38c5c01
  154. US-131 Moverme por el plano arrastrando

    v3.9 — iteracion-5: alta del desplazamiento del plano

    BacklogNuevaIteración 5
    • Nueva iteracion-5 - Moverse sin la ruedaGiven que hasta v3.8 sólo se podía acercar, alejar y «Ajustar vista»When se agrega US-131Then el plano se arrastra con el clic derecho, el central o la barra espaciadora.
  155. US-131 Moverme por el plano arrastrando

    iteracion-5: «Ajustar vista» y «Guardar vista» pasan a íconos junto a deshacer para que la barra superior quepa a 1280 px con «Foto a plano» y «Sin guardar».

    Decisión
  156. US-131 Moverme por el plano arrastrando

    iteracion-5: el plano se arrastra con el clic derecho, el botón central o barra espaciadora + clic; un clic derecho sin arrastre (menos de 4 px) sigue cancelando.

    Decisión
  157. US-132 Seleccionar varios elementos con un recuadro

    Iteración 5 · Nueva: US-132 Selección por recuadro para mover o eliminar

    GREENfrontend 3b16ea7
  158. US-132 Seleccionar varios elementos con un recuadro

    v3.9 — iteracion-5: alta de la selección por recuadro

    BacklogNuevaIteración 5
    • Nueva iteracion-5 - Muchos a la vezGiven que hasta v3.8 la selección múltiple era con Mayúsculas, elemento por elementoWhen se agrega US-132Then un recuadro selecciona todo lo que encierra.
  159. US-133 Ir del plano a su cotización y de vuelta

    Iteración 5 · Nueva: US-133 Ir del plano a su cotización y de vuelta

    GREENfrontend 9d3cb3d
  160. US-133 Ir del plano a su cotización y de vuelta

    v3.9 — iteracion-5: alta del vínculo plano ↔ cotización

    BacklogNuevaIteración 5
    • Nueva iteracion-5 - Del uno al otroGiven que hasta v3.8 la cotización no recordaba su planoWhen se agrega US-133Then se navega entre los dos en ambos sentidos.
  161. US-133 Ir del plano a su cotización y de vuelta

    iteracion-5: el vínculo plano ↔ cotización lo lleva la cotización (Quote.plan, item #12); US-133 no necesitó más backend: las pantallas lo leen de las cotizaciones de la cuenta. El detalle de una cotización se abre por /quotes?cotizacion=<id>.

    Decisión
  162. US-129 Convertir la foto de un plano en un plano editable

    Iteración 4 · Nueva: US-129 Convertir la foto de un plano en un plano editable

    GREENbackend f11bec1
  163. US-129 Convertir la foto de un plano en un plano editable

    Iteración 4 · Cambio: US-129 Pulir la foto con OpenCV antes de la IA

    GREENbackend 913ff68
  164. US-129 Convertir la foto de un plano en un plano editable

    v3.7 — iteracion-4: alta de la conversión de foto a plano (MVP)

    BacklogNuevaIteración 4
    • Nueva iteracion-4 - De la foto al planoGiven que hasta v3.6 un plano en papel sólo se podía calcar a mano (US-41)When se agrega US-129 en v3.7Then el arquitecto sube la foto y obtiene muros y habitaciones editables, que luego lleva a escala real con dos puntos.
  165. US-129 Convertir la foto de un plano en un plano editable

    v3.8 — iteracion-4: la foto se pule con OpenCV antes de la IA

    BacklogCambioIteración 4
    • Cambio iteracion-4 - Pulido de la fotoGiven que en v3.7 la foto llegaba a la IA tal como se tomóWhen se cambia US-129 en v3.8Then pasa antes por corrección de perspectiva, recorte, escala, corrección de iluminación, reducción de ruido, contraste y binarización, y la foto pulida es la que queda de fondo.
  166. US-129 Convertir la foto de un plano en un plano editable

    iteracion-4 — US-129 suma un pulido de la foto con OpenCV en el servidor antes de la IA: corrección de perspectiva, recorte, escala, corrección de iluminación, reducción de ruido, contraste y binarización. La foto pulida (no la original) queda de fondo, para que los muros caigan exactos sobre ella; si no se encuentra el borde de la hoja, se sigue sin enderezar. Se decidió correrlo en el backend (opencv-python-headless) y comprobar en el preview de Vercel que la función cabe.

    Decisión
  167. US-129 Convertir la foto de un plano en un plano editable

    iteracion-4 — GATE PROPUESTA aprobada: la foto de un plano en papel se convierte en muros y habitaciones con IA en el servidor (Claude con visión); el MVP no detecta puertas, ventanas, mobiliario ni cotas, y la escala la da el arquitecto con dos puntos. El tope es de 5 fotos por cuenta al día (se propusieron 20; el usuario lo bajó a 5 para contener el costo).

    Decisión
  168. US-28 Dibujar los muros del espacio

    Registrada como existente (adopción)

    GREEN
  169. US-30 Colocar puertas y ventanas en los muros

    Registrada como existente (adopción)

    GREEN
  170. US-32 Colocar y manipular objetos en el plano

    Registrada como existente (adopción)

    GREEN
  171. US-33 Trabajar en medidas reales y acotar el plano

    Registrada como existente (adopción)

    GREEN
  172. US-34 Deshacer y rehacer las acciones del editor

    Registrada como existente (adopción)

    GREEN
  173. US-35 Mostrar u ocultar los elementos del plano por capas

    Registrada como existente (adopción)

    GREEN
  174. US-40 Organizar el plano en varios niveles

    Registrada como existente (adopción)

    GREEN
  175. US-43 Trazar muros curvos

    Registrada como existente (adopción)

    GREEN
  176. US-44 Agrupar elementos del plano

    Registrada como existente (adopción)

    GREEN
  177. US-45 Indicar la orientación del plano

    Registrada como existente (adopción)

    GREEN
  178. US-46 Acotar con la línea de cota separada del elemento

    Registrada como existente (adopción)

    GREEN
  179. US-47 Muros con altura distinta en cada extremo

    Registrada como existente (adopción)

    GREEN
  180. US-48 Barra de elementos y catálogo de mobiliario

    Iteración 1 · Bug: US-48 Barra de elementos y catálogo de mobiliario: pruebas de sus escenarios

    GREENfrontend 3d0c112
  181. US-49 Trazar muros con esquinas limpias y con el ángulo a la vista

    Registrada como existente (adopción)

    GREEN
  182. US-51 Editar un nivel sin que los demás estorben

    Registrada como existente (adopción)

    GREEN
  183. US-52 Importar mobiliario sin salir del editor

    Registrada como existente (adopción)

    GREEN
  184. US-53 Salir del editor sin perder el trabajo

    Registrada como existente (adopción)

    GREEN
  185. US-55 Ver de verdad el mobiliario que se importa

    Registrada como existente (adopción)

    GREEN
  186. US-56 Mover y soltar lo que ya está en el lienzo

    Registrada como existente (adopción)

    GREEN
  187. US-57 Importar bibliotecas de texturas .sh3t

    Registrada como existente (adopción)

    GREEN
  188. US-58 Elegir y ajustar una puerta o una ventana ya colocada

    Registrada como existente (adopción)

    GREEN
  189. US-59 Girar, elevar y medir un objeto del plano

    Registrada como existente (adopción)

    GREEN
  190. US-60 Recorrer el plano con un visitante virtual

    Registrada como existente (adopción)

    GREEN
  191. US-61 Que el mobiliario se pegue solo a lo que tiene al lado

    Registrada como existente (adopción)

    GREEN
  192. US-62 Distinguir la superficie de la habitación con sus muros

    Registrada como existente (adopción)

    GREEN
  193. US-64 Desplegables con la apariencia de la aplicación

    Registrada como existente (adopción)

    GREEN
  194. US-66 Errores del servidor contados en una frase

    Registrada como existente (adopción)

    GREEN
  195. US-68 Leer la cotización completa en el teléfono

    Registrada como existente (adopción)

    GREEN
  196. US-101 Que lo importado viaje con el plano

    Registrada como existente (adopción)

    GREEN
  197. US-103 Encontrar mi catálogo de mobiliario en cualquier dispositivo

    Registrada como existente (adopción)

    GREEN
  198. US-27 Crear y gestionar los planos de la cuenta

    v2.0

    Backlog
    • Cambio v2.0 - Alta del documento de planoGiven que hasta v1.3 la aplicación no permitía dibujar planosWhen se agrega US-27 en v2.0Then el arquitecto dispone de planos propios que puede crear, nombrar, guardar, reabrir, renombrar y eliminar, con su contenido íntegro conservado entre sesiones.
  199. US-28 Dibujar los muros del espacio

    v2.0

    Backlog
    • Cambio v2.0 - Alta del trazado de murosGiven que hasta v1.3 no existía dibujo de planosWhen se agrega US-28 en v2.0Then el arquitecto puede trazar, encadenar, medir, editar y eliminar muros con medidas reales.
  200. US-29 Definir habitaciones y conocer su superficie

    v2.0

    Backlog
    • Cambio v2.0 - Alta de habitaciones con superficieGiven que hasta v1.3 los metros cuadrados se escribían a mano en la cotizaciónWhen se agrega US-29 en v2.0Then el arquitecto obtiene la superficie de cada ambiente calculada a partir del plano dibujado. Nota: en v2.0 el dato es informativo dentro del editor; su traslado automático a las cotizaciones corresponde a una etapa posterior.
  201. US-30 Colocar puertas y ventanas en los muros

    v2.0

    Backlog
    • Cambio v2.0 - Alta de puertas y ventanasGiven que el editor no dispone de catálogo de modelos propioWhen se agrega US-30 en v2.0Then el arquitecto puede insertar aberturas que recortan el muro, contando desde el primer uso con una puerta y una ventana genéricas aunque no haya importado ningún modelo.
  202. US-31 Importar modelos propios a la biblioteca de la cuenta

    v2.0

    Backlog
    • Cambio v2.0 - Biblioteca de modelos propia del usuario, sin catálogo inicialGiven la decisión de no distribuir ningún modelo propio ni de tercerosWhen se agrega US-31 en v2.0Then cada cuenta construye su propia biblioteca importando sus modelos, el sistema se limita a recomendar los catálogos gratuitos de Sweet Home 3D, y la atribución de los autores queda como responsabilidad de quien los utiliza.
  203. US-31 Importar modelos propios a la biblioteca de la cuenta

    v2.4

    Backlog
    • Cambio v2.4 - La biblioteca conserva los binariosGiven que hasta v2.3 solo se guardaba la ficha de cada modeloWhen se comprueba que sin sus mallas no hay nada que dibujarThen se amplía US-31 para conservarlas junto a sus materiales y miniaturas.
  204. US-32 Colocar y manipular objetos en el plano

    v2.0

    Backlog
    • Cambio v2.0 - Alta de mobiliario en el planoGiven que hasta v1.3 no existía representación del espacioWhen se agrega US-32 en v2.0Then el arquitecto puede amueblar el plano colocando, moviendo, girando, redimensionando, elevando, duplicando y eliminando objetos.
  205. US-33 Trabajar en medidas reales y acotar el plano

    v2.0

    Backlog
    • Cambio v2.0 - Alta de escala real y acotadoGiven que la fiabilidad de las medidas es la base del futuro cálculo de cantidadesWhen se agrega US-33 en v2.0Then el plano trabaja en unidades reales configurables y admite líneas de cota que se actualizan con los elementos.
  206. US-34 Deshacer y rehacer las acciones del editor

    v2.0

    Backlog
    • Cambio v2.0 - Alta del historial de ediciónGiven que un editor de planos exige corregir errores sin rehacer el trabajoWhen se agrega US-34 en v2.0Then toda acción del editor puede deshacerse y rehacerse en orden.
  207. US-35 Mostrar u ocultar los elementos del plano por capas

    v2.0

    Backlog
    • Cambio v2.0 - Alta de capas del planoGiven la necesidad de exportar el plano separado por tipo de contenidoWhen se agrega US-35 en v2.0Then los elementos se organizan en capas (muros, habitaciones, aberturas, mobiliario y cotas) cuya visibilidad el arquitecto controla.
  208. US-36 Ver y recorrer el plano en vista 3D

    v2.0

    Backlog
    • Cambio v2.0 - Alta de la vista 3DGiven la decisión de ofrecer calidad realista sin cálculo de trazado de rayosWhen se agrega US-36 en v2.0Then el arquitecto recorre su plano en 3D en tiempo real, con iluminación, sombras y materiales realistas.
  209. US-36 Ver y recorrer el plano en vista 3D

    v2.7

    Backlog
    • Cambio v2.7 - Dos maneras de mirar el 3DGiven que la vista 3D solo orbitaba el edificio desde fueraWhen se agrega el visitante virtual de US-60Then se amplía US-36 con la alternancia entre la vista aérea y la del visitante.
  210. US-37 Exportar el plano como imágenes separadas por capa

    v2.0

    Backlog
    • Cambio v2.0 - Alta de la exportación del plano por capasGiven que el arquitecto necesita componer sus propias láminas de presentaciónWhen se agrega US-37 en v2.0Then puede exportar cada capa del plano como una imagen PNG independiente, todas con el mismo encuadre y fondo transparente.
  211. US-38 Exportar la imagen 3D desde un punto de vista definido

    v2.0

    Backlog
    • Cambio v2.0 - Alta de la exportación de la vista 3DGiven la decisión de exportar únicamente imágenes y no modelosWhen se agrega US-38 en v2.0Then el arquitecto obtiene imágenes PNG de su escena 3D desde puntos de vista que él mismo define y conserva en el plano.
  212. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    v2.0

    Backlog
    • Cambio v2.0 - Alta del acceso al editor como módulo independienteGiven que la aplicación es de uso preferente en móvil pero el editor requiere pantalla grandeWhen se agrega US-39 en v2.0Then el editor vive en su propia sección orientada a escritorio, con consulta disponible en móvil y sin afectar al rendimiento del resto de la aplicación.
  213. US-39 Acceder al editor y conocer su alcance en cada dispositivo

    v2.13

    Backlog
    • Cambio v2.13 - La primera pantalla dice a qué huele el oficioGiven que el acceso era un formulario sobre un degradado y no había forma de volver a la landingWhen se amplía US-39 en v2.13Then entran las fotografías de obra y el icono de inicio.
  214. US-40 Organizar el plano en varios niveles

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Multinivel definido para oleada posteriorGiven la priorización aprobada, que sitúa el núcleo del editor por delanteWhen se define US-40 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  215. US-41 Calcar sobre la imagen de un plano existente

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Plano de fondo definido para oleada posteriorGiven la priorización aprobadaWhen se define US-41 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  216. US-42 Aplicar colores y texturas a los elementos

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Texturas y materiales definidos para oleada posteriorGiven la priorización aprobadaWhen se define US-42 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  217. US-42 Aplicar colores y texturas a los elementos

    v2.5

    Backlog
    • Cambio v2.5 - Las imágenes de biblioteca van al almacén de la cuentaGiven que una sola biblioteca de texturas es un megabyte de imágenesWhen se comprueba que dentro del documento no dejaría sitio para los planosThen se amplía US-42 para guardarlas aparte, dejando en el plano solo la referencia.
  218. US-43 Trazar muros curvos

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Muros curvos definidos para oleada posteriorGiven la priorización aprobadaWhen se define US-43 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  219. US-44 Agrupar elementos del plano

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Agrupación definida para oleada posteriorGiven la priorización aprobadaWhen se define US-44 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  220. US-45 Indicar la orientación del plano

    v2.0 (definida — planificada para oleada posterior)

    Backlog
    • Cambio v2.0 - Orientación definida para oleada posteriorGiven la priorización aprobadaWhen se define US-45 en v2.0Then queda especificada pero planificada para una oleada posterior al núcleo.
  221. US-46 Acotar con la línea de cota separada del elemento

    v2.1

    Backlog
    • Cambio v2.1 - La cota pasa de dos clics a tresGiven que hasta v2.0 la cota se creaba con dos clics y se dibujaba sobre la línea medidaWhen se agrega US-46 en v2.1Then el tercer clic fija la separación perpendicular y la cota se dibuja con líneas de referencia, marcas en los extremos y la medida centrada.
  222. US-47 Muros con altura distinta en cada extremo

    v2.1

    Backlog
    • Cambio v2.1 - Alta de muros de altura variableGiven que hasta v2.0 el muro tenía una sola alturaWhen se agrega US-47 en v2.1Then admite altura de inicio y de fin, conservando el comportamiento anterior cuando no se indican.
  223. US-48 Barra de elementos y catálogo de mobiliario

    v2.1

    Backlog
    • Cambio v2.1 - Reorganización del editorGiven que hasta v2.0 las herramientas ocupaban una barra vertical de iconos sin nombre y no había catálogo visibleWhen se agrega US-48 en v2.1Then los elementos pasan a una barra superior con nombre y el lateral izquierdo se dedica al catálogo de mobiliario con buscador y categorías.
  224. US-49 Trazar muros con esquinas limpias y con el ángulo a la vista

    v2.2

    Backlog
    • Cambio v2.2 - Alta de US-49Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-49 en v2.2 para cubrirlas.
  225. US-50 Dar al muro su color en planta y su coronamiento en 3D

    v2.2

    Backlog
    • Cambio v2.2 - Alta de US-50Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-50 en v2.2 para cubrirlas.
  226. US-50 Dar al muro su color en planta y su coronamiento en 3D

    v2.3

    Backlog
    • Cambio v2.3 - El muro inclinado deja de compartir acabado entre sus carasGiven que en v2.2 un muro inclinado se construía de una pieza y sus dos caras compartían acabadoWhen se reconstruye en dos mitades que se encuentran en su línea centralThen cada cara conserva el suyo y el criterio que documentaba la limitación se sustituye por el comportamiento correcto.
  227. US-51 Editar un nivel sin que los demás estorben

    v2.2

    Backlog
    • Cambio v2.2 - Alta de US-51Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-51 en v2.2 para cubrirlas.
  228. US-52 Importar mobiliario sin salir del editor

    v2.2

    Backlog
    • Cambio v2.2 - Alta de US-52Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-52 en v2.2 para cubrirlas.
  229. US-52 Importar mobiliario sin salir del editor

    v2.3

    Backlog
    • Cambio v2.3 - Paquetes de modelos sin catálogoGiven que en v2.2 un .zip solo se abría si traía el catálogo de Sweet Home 3DWhen se comprueba que la mayoría de los packs de modelos viajan como una carpeta de mallas comprimidaThen se amplía US-52 para abrirlos igualmente, malla a malla.
  230. US-53 Salir del editor sin perder el trabajo

    v2.2

    Backlog
    • Cambio v2.2 - Alta de US-53Given que el editor ya se estaba usando para dibujar planos realesWhen se detectan en ese uso carencias del trazado, del color, del trabajo por niveles y del propio marco del editorThen se agrega US-53 en v2.2 para cubrirlas.
  231. US-54 Importar texturas al plano, sueltas o en paquete

    v2.3

    Backlog
    • Cambio v2.3 - Alta de US-54Given que el importador de texturas solo existía dentro de una fila de colores y exigía tener algo seleccionadoWhen se comprueba en uso que resulta inencontrable y que las texturas suelen llegar en loteThen se agrega US-54 con un importador propio en el panel y soporte de paquetes .zip.
  232. US-55 Ver de verdad el mobiliario que se importa

    v2.4

    Backlog
    • Cambio v2.4 - Alta de US-55Given que de una biblioteca importada solo se guardaba la ficha y se descartaban sus mallas y miniaturasWhen se comprueba en uso que todo lo importado acaba en el plano como un cajón grisThen se agrega US-55 para guardar también los binarios y dibujar el modelo de verdad.
  233. US-55 Ver de verdad el mobiliario que se importa

    v2.5

    Backlog
    • Cambio v2.5 - Rutas con barra inicialGiven que en v2.4 el modelo importado seguía dibujándose como una caja con bibliotecas realesWhen se comprueba que el catálogo pide «/carpeta/malla.obj» y el ZIP guarda «carpeta/malla.obj»Then se normalizan las rutas al leer el catálogo y se corrige US-55.
  234. US-55 Ver de verdad el mobiliario que se importa

    v2.6

    Backlog
    • Cambio v2.6 - Vista cenital en el planoGiven que en planta cada objeto era un rectángulo en blancoWhen se comprueba que un plano se lee por la forma de las cosas que hay en élThen se amplía US-55 para dibujar el modelo visto desde arriba.
  235. US-56 Mover y soltar lo que ya está en el lienzo

    v2.4

    Backlog
    • Cambio v2.4 - Alta de US-56Given que solo el mobiliario se arrastraba y que colocar objetos no tenía forma de terminarWhen se usa el editor para amueblar un plano de verdadThen se agrega US-56 con el arrastre de cotas y habitaciones y la salida del modo de colocar.
  236. US-56 Mover y soltar lo que ya está en el lienzo

    v2.8

    Backlog
    • Cambio v2.8 - La esquina se mueve enteraGiven que mover un muro obligaba a rehacer a mano las esquinas que tocabaWhen se agregan los tiradores de sus extremosThen se amplía US-56 con el arrastre que conserva las uniones.
  237. US-57 Importar bibliotecas de texturas .sh3t

    v2.5

    Backlog
    • Cambio v2.5 - Alta de US-57Given que las texturas de Sweet Home 3D viajan en bibliotecas .sh3t y el editor solo admitía imágenes sueltas o un .zip corrienteWhen se comprueba que su catálogo trae además el tamaño real de cada baldosaThen se agrega US-57 para importarlas enteras y con ese tamaño.
  238. US-58 Elegir y ajustar una puerta o una ventana ya colocada

    v2.6

    Backlog
    • Cambio v2.6 - Alta de US-58Given que una abertura no se podía seleccionar porque el clic acababa siempre en su muroWhen se comprueba en uso que no hay forma de corregir una puerta ya colocadaThen se agrega US-58.
  239. US-59 Girar, elevar y medir un objeto del plano

    v2.6

    Backlog
    • Cambio v2.6 - Alta de US-59Given que el panel del objeto solo ofrecía color y agrupaciónWhen se comprueba que amueblar de verdad exige girar, elevar y ajustar medidasThen se agrega US-59 sobre las operaciones que el dominio ya tenía.
  240. US-59 Girar, elevar y medir un objeto del plano

    v2.8

    Backlog
    • Cambio v2.8 - Invertir y mover con el tecladoGiven que un objeto solo podía moverse arrastrando y no había manera de reflejarloWhen se agregan la inversión y el desplazamiento con las flechasThen se amplía US-59 con ambas.
  241. US-60 Recorrer el plano con un visitante virtual

    v2.7

    Backlog
    • Cambio v2.7 - Alta de US-60Given que la vista 3D solo se podía orbitar desde fueraWhen se comprueba que enseñar un espacio exige recorrerlo desde dentroThen se agrega US-60 con el visitante virtual.
  242. US-60 Recorrer el plano con un visitante virtual

    v2.8

    Backlog
    • Cambio v2.8 - El ratón mira y el teclado andaGiven que las flechas hacían a la vez de giro y de avance y no había forma de mirar alrededorWhen se separa mirar de moverseThen el arrastre gira la cabeza y las flechas quedan para andar y desplazarse de lado.
  243. US-61 Que el mobiliario se pegue solo a lo que tiene al lado

    v2.8

    Backlog
    • Cambio v2.8 - Nace el imánGiven que arrimar un mueble a la pared exigía acertar al milímetro con el ratónWhen se agrega US-61 en v2.8Then colocar y arrastrar pegan la pieza a lo que tiene al lado.
  244. US-62 Distinguir la superficie de la habitación con sus muros

    v2.8

    Backlog
    • Cambio v2.8 - Nacen superficie y habitaciónGiven que crear una habitación solo dejaba el suelo y los muros había que trazarlos aparteWhen se agrega US-62 en v2.8Then la herramienta se parte en superficie y habitación.
  245. US-64 Desplegables con la apariencia de la aplicación

    v2.9

    Backlog
    • Cambio v2.9 - Los desplegables dejan de ser del sistemaGiven una captura de un teléfono real donde la lista de clientes se abría en gris oscuro sobre una aplicación claraWhen se agrega US-64 en v2.9Then los desplegables se pintan con el tema de la aplicación.
  246. US-65 Ver la contraseña al escribirla

    v2.10

    Backlog
    • Cambio v2.10 - Nace el ojo del campoGiven que una contraseña mal escrita en el teléfono era invisible y el único aviso era un acceso fallidoWhen se agrega US-65 en v2.10Then el campo ofrece verla.
  247. US-66 Errores del servidor contados en una frase

    v2.10

    Backlog
    • Cambio v2.10 - El aviso deja de escupir HTMLGiven una captura donde el formulario de acceso mostraba `<!doctype html> <html lang="en">…` en el aviso rojoWhen se agrega US-66 en v2.10Then un cuerpo que es una página web se traduce a una frase.
  248. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v2.12

    Backlog
    • Cambio v2.12 - La lista deja de ser el tallerGiven que cada proyecto traía su formulario entero dentro de la listaWhen se agrega US-67 en v2.12Then la lista sirve para encontrar y la pantalla del proyecto para trabajar.
  249. US-67 Los proyectos en una tabla, cada uno con su pantalla

    v2.13

    Backlog
    • Cambio v2.13 - El detalle deja de ser una sola tarjetaGiven que avance, formulario, cobros y cierre compartían una tarjeta y había que recorrerla entera para encontrar cualquier cosaWhen se amplía US-67 en v2.13Then cada cosa tiene su sección y el cierre queda aparte.
  250. US-68 Leer la cotización completa en el teléfono

    v2.12

    Backlog
    • Cambio v2.12 - El detalle deja de cortarseGiven una captura donde el precio y el importe se salían por la derecha del modal y había que arrastrar de lado para leerlosWhen se agrega US-68 en v2.12Then cada partida se apila y en pantalla pequeña el detalle ocupa la pantalla entera.
  251. US-69 Consultar mi cuenta y salir desde un mismo menú

    v2.13

    Backlog
    • Cambio v2.13 - Nace el menú de cuentaGiven que salir era lo único que se podía hacer con la cuenta y estaba suelto en la barraWhen se agrega US-69 en v2.13Then la cuenta pasa a tener menú y pantalla propia.
  252. US-69 Consultar mi cuenta y salir desde un mismo menú

    v3.3

    Backlog
    • Cambio v3.3 - Perfil con correo, contraseña y eliminar cuentaGiven que el perfil sólo mostraba la cuenta y la suscripciónWhen se revisa US-69 en v3.3Then también cambia el correo y la contraseña, y elimina la cuenta.
  253. US-69 Consultar mi cuenta y salir desde un mismo menú

    v3.6

    Backlog
    • Cambio v3.6 - Texto alineado con el sistemaGiven que el perfil decía mostrar el teléfonoWhen se revisa US-69 en v3.6Then muestra el correo de acceso; el teléfono es de la organización (US-118).
  254. US-78 Entrar a mis planos desde la aplicación, no desde otra pantalla

    v2.15

    Backlog
    • Cambio v2.15 - El listado vuelve a la aplicaciónGiven que el listado era una rejilla de tarjetas con su propio botón de «Volver», fuera del armazón de la aplicaciónWhen se agrega US-78 en v2.15Then vive dentro de él y se lee como las demás listas.
  255. US-92 Que mis planos estén donde yo esté

    v2.24

    Backlog
    • Cambio v2.24 - El plano deja de ser del navegadorGiven que los planos vivían en el almacenamiento del navegador que los dibujóWhen se agrega US-92 en v2.24Then viven en la cuenta, sin perder el dibujo cuando no hay señal.
  256. US-92 Que mis planos estén donde yo esté

    v3.0

    Backlog
    • Cambio v3.0 - Un plano no se vuelve dosGiven el mismo plano abierto en dos dispositivosWhen se corrige en v3.0Then sigue siendo uno, con el identificador que le puso la cuenta.
  257. US-93 Dibujar la estructura, no sólo los muros

    v2.25

    Backlog
    • Cambio v2.25 - El plano tiene estructuraGiven que el editor sólo conocía muros, habitaciones y aberturasWhen se agrega US-93 en v2.25Then dibuja también trabes y columnas, que es lo que la cuantificación necesita para cobrar por metro lineal y por pieza.
  258. US-94 Decirle al plano lo que se cobra de cada cosa

    v2.26

    Backlog
    • Cambio v2.26 - El dibujo carga con el precioGiven que el plano sólo tenía geometríaWhen se agrega US-94 en v2.26Then cada elemento lleva los servicios que se le cobran y el plano puede convertirse en una cotización.
  259. US-95 Convertir el plano en una cotización

    v2.26

    Backlog
    • Cambio v2.26 - Del plano a la cotizaciónGiven que cotizar obligaba a contar a mano lo dibujadoWhen se agrega US-95 en v2.26Then la cotización nace del plano, con las cantidades que él mide.
  260. US-101 Que lo importado viaje con el plano

    v2.29

    Backlog
    • Cambio v2.29 - Lo importado deja de ser del dispositivoGiven que las texturas y las mallas vivían sólo en el navegador que las importóWhen se agrega US-101 en v2.29Then viven en la cuenta y el plano se ve igual en todas partes.
  261. US-101 Que lo importado viaje con el plano

    v3.0

    Backlog
    • Cambio v3.0 - Lo importado sube de verdadGiven el mismo defecto de los formularios con archivoWhen se corrige en v3.0Then las texturas y las mallas llegan a la cuenta.
  262. US-103 Encontrar mi catálogo de mobiliario en cualquier dispositivo

    v2.30

    Backlog
    • Cambio v2.30 - El catálogo deja de ser del navegadorGiven que las fichas del mobiliario vivían sólo en el dispositivo que importó la bibliotecaWhen se agrega US-103 en v2.30Then viven en la cuenta y el catálogo se ve igual en todas partes.
EPIC-10

Personal, reparto de la obra y pagos

100%3 de 3 en GREEN

3 historias · aún sin integrar en develop

Detalles

El dinero que entra ya se llevaba —cotización, avance, cobro—. Este epic cubre el que sale: dar de alta a quien ejecuta los servicios (una persona o una empresa), con lo que sabe hacer y el precio al que se le paga; repartir las partidas de un proyecto entre esas personas; registrar quién ejecutó cada avance, para que lo trabajado se convierta en lo que se le debe; y pagarle, con su comprobante, igual que se documentan los cobros al cliente. Dos cifras se mantienen separadas a propósito: lo COMPROMETIDO (todo lo repartido) y lo DEVENGADO (lo ya ejecutado); se paga contra lo devengado. El propio despacho existe como un registro más —«Yo»— para saber qué parte de la obra hace la casa, pero no genera deuda ni pagos.

  • GREEN 3
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
12 · 13 · 17 · 20 · 25 · 26 · 27 · 28
Último cambio
2026-11-01

Historias

  1. US-96 Registrar a quien hace el trabajo

    Como arquitecto quiero registrar a mi personal —personas o empresas— con los servicios que hacen y el precio al que se les paga, para poder repartirles trabajo y saber cuánto les debo.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Alta de personal con sus serviciosGiven la pantalla de PersonalWhen doy de alta a alguien y le marco los servicios que hace con su precioThen queda registrado, y ese precio es lo que YO le pago, no lo que le cobro al cliente.
    2. Flujo principal - Una empresa también es personalGiven un subcontratistaWhen lo doy de alta como empresaThen se registra igual que una persona.
    3. Flujo principal - Varios a variosGiven un servicio que hacen dos personasWhen las registroThen las dos lo tienen, y cada una puede tener varios servicios.
    4. Flujo principal - Se ve lo que se les debeGiven personal con trabajo hechoWhen abro la pantallaThen veo el saldo de cada quien y el total que se debe.
    5. Caso de borde - «Yo» es uno soloGiven mi propio registro en el personalWhen intento crear otroThen se rechaza, porque dos despachos propios no significan nada.
    6. Caso de borde - Aislamiento entre cuentasGiven el personal de otra cuentaWhen consulto el míoThen no aparece.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de quien hace el trabajoWhen el usuario lo abreThen ve un asterisco en Nombre, TipoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
    4. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Personal» o «Se le debe»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Se le debe» (más primero) ya se ve ordenada.
    5. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar al personal» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    6. v5.1

      BacklogCambioIteración 20
      • Revisada: «Pagar» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Pagar» queda una por una porque pide el monto de cada quien; así ya funciona.
    7. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 4e50764
    8. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 9359f15
    9. v4.9 — iteracion-17: el personal se pide por páginas y sus servicios se buscan

      BacklogCambioIteración 17
      • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 40 personas y empresasWhen el usuario abre PersonalThen recibe las primeras 20, primero a quienes más se les debe, y el contador dice «1–20 de 40».
      • Cambio iteracion-17 - Buscar también por servicioWhen el usuario escribe «plom» en BuscarThen ve a quienes se llaman así o cobran un servicio que lo contiene, de los 40.
      • Cambio iteracion-17 - Con saldo en toda la cuentaWhen el usuario elige «Con saldo»Then ve a todos los que tienen algo por cobrar, estén en la página que estén.
      • Cambio iteracion-17 - Elegir los servicios que cobraGiven el alta o la edición de alguienWhen el usuario escribe «pint» en Servicios que cobraThen ve los servicios de su cuenta que contienen «pint», de todo el catálogo,And puede elegir varios.
      • Cambio iteracion-17 - Sin acciones en loteGiven la lista de personalWhen el usuario la miraThen no hay casillas de selección, porque pagar pide el monto de cada quien.
    10. Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

      GREENbackend 073df9f
    11. Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

      GREENbackend 57daef9
    12. Iteración 13 · Cambio: TEC Capas e higiene

      GREENbackend b397792
    13. v4.5 — iteracion-13: el teléfono del personal se valida

      BacklogCambioIteración 13
      • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
      • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
    14. v2.27

      Backlog
      • Cambio v2.27 - Un módulo para quien ejecutaGiven que la aplicación sólo conocía a los clientesWhen se agrega US-96 en v2.27Then también conoce a quien hace el trabajo y lo que se le paga.

    Lista y formulario

    • Página 20 registros por página
    • Busca en Nombre, Teléfono, Correo, Servicios que cobra
    • Filtros Saldo (un valor: Con saldo) · Tipo (un valor: Persona, Empresa)
    • Orden Lo que se les debe · también por Saldo, Nombre
    • Acciones de fila Pagar, Editar
    • Sin lote Pagar: pide el monto de cada quien
    • Obligatorios Nombre, Tipo
    • Catálogo Servicios que cobra de Servicios (abierto: se busca al escribir, varios)
    • Mensaje Nombre: «El nombre es obligatorio»
  2. US-97 Repartir la obra entre el personal

    Como arquitecto quiero repartir las partidas de un proyecto entre mi personal y yo, para saber quién hace qué y cuánto le tocará cobrar.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Repartir una partidaGiven un proyecto con partidasWhen le reparto parte de una a alguienThen queda asignada con la cantidad y el precio acordado, y se ve cuánto falta por repartir.
    2. Flujo principal - Se ofrece primero a quien lo haceGiven personal con servicios registradosWhen reparto una partidaThen arriba aparecen quienes hacen ese servicio, con su precio ya puesto.
    3. Flujo principal - Repartirme a míGiven mi propio registroWhen me reparto una partidaThen cuenta como hecha por la casa y no genera deuda.
    4. Caso de borde - No se reparte de másGiven una partida ya repartidaWhen intento repartir más de lo que quedaThen se rechaza diciendo cuánto queda.
    5. Caso de borde - Corregir un repartoGiven una partida repartida a alguienWhen se la vuelvo a repartirThen se corrige, no se duplica.
    6. Caso de borde - Quitar un repartoGiven un reparto hechoWhen lo quitoThen deja de contar en lo comprometido.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend a48c776
    2. v5.6 — iteracion-28: si el reparto no llega, el proyecto lo dice y deja reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si el reparto no llega, el proyecto lo dice y deja reintentarGiven la persona abre el reparto de un proyectoAnd el servidor no lo entregaWhen se pinta el panelThen dice «No se pudo cargar el reparto.» con el motivo del servidor y el botón «Reintentar»And nunca dice «Este proyecto no tiene partidas que repartir.»And al tocar «Reintentar» aparecen las partidas con quién lleva qué.
    3. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    4. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven una partida con quién la hace y la cantidadWhen el usuario toca «Repartir», o quita a alguien de la partida, y la respuesta tardaThen ese botón muestra el indicador de carga del sistema y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    6. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el reparto de la obraWhen el usuario lo abreThen ve un asterisco en Quién hace el trabajo, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Quién hace el trabajo» sin cumplirlo ve «Elige quién lo hace» junto al campo.
    7. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend 4e50764
    8. v4.9 — iteracion-17: a quién se le reparte el trabajo se busca

      BacklogCambioIteración 17
      • Cambio iteracion-17 - Buscar a quien hace el trabajoGiven una cuenta con 40 personasWhen el usuario reparte una partida y escribe «juan» en Quién hace el trabajoThen ve a las personas y empresas que contienen «juan», de las 40.
    9. Iteración 13 · Cambio: TEC Capas e higiene

      GREENbackend b397792
    10. v2.27

      Backlog
      • Cambio v2.27 - La obra se reparteGiven que un proyecto no sabía quién lo ejecutabaWhen se agrega US-97 en v2.27Then cada partida dice quién la hace y por cuánto.
    11. v3.0

      Backlog
      • Cambio v3.0 - El precio acordado entra soloGiven un reparto a alguien con precio acordado para ese servicioWhen se corrige en v3.0Then el importe entra solo, y si no tiene precio acordado la pantalla lo dice en vez de callar.

    Formulario

    • Obligatorios Quién hace el trabajo, Cantidad
    • Catálogo Quién hace el trabajo de Personal (abierto: se busca al escribir)
    • Mensaje Quién hace el trabajo: «Elige quién lo hace»
    • Mensaje Cantidad: «Escribe la cantidad que le toca»
  3. US-98 Pagar al personal por lo trabajado

    Como arquitecto quiero registrar quién ejecutó cada avance y pagarle por lo trabajado, con su comprobante, para llevar lo que sale igual que llevo lo que entra.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - El avance dice quién lo hizoGiven una partida repartidaWhen registro un avanceThen puedo decir quién lo hizo, y si está repartida a una sola persona viene puesta.
    2. Flujo principal - Lo trabajado se convierte en deudaGiven un avance con autorWhen lo registroThen lo ejecutado se le abona a esa persona al precio de su reparto.
    3. Flujo principal - Pagar y comprobarGiven alguien con saldoWhen le registro un pagoThen el saldo baja y queda un comprobante en PDF a su nombre.
    4. Flujo principal - Pago de la semanaGiven trabajos en varias obrasWhen le hago un pago generalThen se registra sin proyecto y cuenta contra su saldo.
    5. Caso de borde - A mí no se me pagaGiven mi propio registroWhen intento pagarmeThen no se puede: eso no es deuda, es lo que queda.
    6. Caso de borde - Avance sin autorGiven un avance que no dice quién lo hizoWhen se registraThen no le debe nada a nadie.
    7. Caso de borde - Pagado de másGiven un pago mayor a lo trabajadoWhen lo registroThen el saldo no se vuelve negativo: la diferencia se informa como anticipo.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. v5.6 — iteracion-28: «Pagos hechos» dice si no hay o si no se pudieron cargar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Sin pagos hechos lo diceGiven una persona del personal a la que todavía no se le ha pagadoWhen el arquitecto abre «Pagar a» esa personaThen en «Pagos hechos» se lee «Todavía no hay pagos hechos.» y puede registrar el pago.
      • Cambio iteracion-28 - Los pagos hechos que no cargaron se pueden volver a pedirGiven la consulta de los pagos de esa persona fallaWhen el arquitecto abre «Pagar a» esa personaThen «Pagos hechos» dice «No se pudieron cargar los pagos hechos.» con el motivo y el botón «Reintentar», sin esconder lo que se le debe ni el formulario.
    3. v5.6 — iteracion-28: si lo que se le debe a una persona no llega, el panel lo dice y deja reintentar, sin «$0.00»

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si lo que se le debe a una persona no llega, el panel lo dice y deja reintentarGiven la persona abre «Pagar a…» de alguien del personalAnd el servidor no entrega su resumenWhen se pinta el panelThen en lugar de «Por trabajos hechos» y «Se le debe» dice «No se pudo cargar lo que se le debe.» con el motivo del servidor y el botón «Reintentar»And nunca enseña «$0.00»And el formulario para pagar y los pagos hechos siguen ahíAnd al tocar «Reintentar» aparecen las cifras.
    4. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    5. Iteración 27 · Cambio: Mejora de cumplimiento

      GREENfrontend 61a2882
    6. Iteración 27 · Bug: Los comprobantes ya no salen con el día anterior (pruebas de PDF fuera de UTC)

      GREENfrontend 81ba04f
    7. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven el pago a una persona del personal con su montoWhen el usuario toca «Registrar pago» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se le paga dos veces.
    8. v5.5 — iteracion-27: la fecha se elige en el calendario de la app

      BacklogCambioIteración 27
      • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Pagar»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar pago» se guarda la fecha elegida, sin correrse un día.
    9. v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

      BacklogBugIteración 27
      • Bug iteracion-27 - Hoy en el calendario de quien pagaGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Pagar»Then la fecha por omisión es la de hoy, no la de mañana.
    10. v5.5 — iteracion-27: el comprobante dice la fecha del pago

      BacklogBugIteración 27
      • Bug iteracion-27 - El comprobante no corre la fechaGiven un pago al personal del 3 de febrero de 2026When el arquitecto, en México, ve o comparte su comprobanteThen el documento dice «03 de febrero de 2026», no el día anterior.
    11. v5.6 — iteracion-28: los pagos hechos llegan de cinco en cinco

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Solo llega la página que se veGiven una persona del personal con 12 pagosWhen abro su panel de pagosThen en «Pagos hechos» llegan solo 5, cada uno con su fecha, monto y nota, y el pie dice «1–5 de 12»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demásAnd lo pagado y el saldo son los de los 12.
      • Cambio iteracion-28 - Los pagos de una obraGiven una persona con 3 pagos de un proyecto y 2 pagos de la semanaWhen abro su panel desde ese proyectoThen «Pagos hechos» cuenta los 3 de ese proyectoAnd lo pagado del panel es la suma de esos 3.
    12. Iteración 25 · Nueva: Folios de documentos configurables por organización

      GREENbackend dbf8796
    13. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    14. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven el pago al personalWhen el usuario lo abreThen ve un asterisco en Monto, Método, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Monto» sin cumplirlo ve «Escribe el monto del pago» junto al campo.
    15. v5.3 — iteracion-25: el comprobante de pago a personal imprime su folio

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El folio del pago a personalGiven un pago al personal con folio «PAG-4»When se genera su comprobanteThen el PDF dice «Folio: PAG-4» y el archivo se llama «PAG-4.pdf».
    16. Iteración 13 · Cambio: TEC Capas e higiene

      GREENbackend b397792
    17. v2.27

      Backlog
      • Cambio v2.27 - Lo que sale, documentadoGiven que sólo se documentaban los cobrosWhen se agrega US-98 en v2.27Then los pagos al personal también tienen su comprobante.

    Lista y formulario

    • Página 5 registros por página
    • Orden Fecha del pago, del más antiguo al más reciente
    • Acciones de fila Ver comprobante, Enviar comprobante, Compartir comprobante
    • Sin lote Enviar comprobante: cada comprobante va a la persona que recibió ese pago, a su correo
    • Sin lote Compartir comprobante: se comparte desde el teléfono, uno por uno, con quien lo recibió
    • Obligatorios Monto, Método, Fecha
    • Catálogo Método de Métodos de pago (cerrado: lista fija)
    • Mensaje Monto: «Escribe el monto del pago»
    • Mensaje Fecha: «Elige la fecha del pago»

Últimos cambios

  1. US-96 Registrar a quien hace el trabajo

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  2. US-97 Repartir la obra entre el personal

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend a48c776
  3. US-97 Repartir la obra entre el personal

    v5.6 — iteracion-28: si el reparto no llega, el proyecto lo dice y deja reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si el reparto no llega, el proyecto lo dice y deja reintentarGiven la persona abre el reparto de un proyectoAnd el servidor no lo entregaWhen se pinta el panelThen dice «No se pudo cargar el reparto.» con el motivo del servidor y el botón «Reintentar»And nunca dice «Este proyecto no tiene partidas que repartir.»And al tocar «Reintentar» aparecen las partidas con quién lleva qué.
  4. US-98 Pagar al personal por lo trabajado

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  5. US-98 Pagar al personal por lo trabajado

    v5.6 — iteracion-28: «Pagos hechos» dice si no hay o si no se pudieron cargar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Sin pagos hechos lo diceGiven una persona del personal a la que todavía no se le ha pagadoWhen el arquitecto abre «Pagar a» esa personaThen en «Pagos hechos» se lee «Todavía no hay pagos hechos.» y puede registrar el pago.
    • Cambio iteracion-28 - Los pagos hechos que no cargaron se pueden volver a pedirGiven la consulta de los pagos de esa persona fallaWhen el arquitecto abre «Pagar a» esa personaThen «Pagos hechos» dice «No se pudieron cargar los pagos hechos.» con el motivo y el botón «Reintentar», sin esconder lo que se le debe ni el formulario.
  6. US-98 Pagar al personal por lo trabajado

    v5.6 — iteracion-28: si lo que se le debe a una persona no llega, el panel lo dice y deja reintentar, sin «$0.00»

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si lo que se le debe a una persona no llega, el panel lo dice y deja reintentarGiven la persona abre «Pagar a…» de alguien del personalAnd el servidor no entrega su resumenWhen se pinta el panelThen en lugar de «Por trabajos hechos» y «Se le debe» dice «No se pudo cargar lo que se le debe.» con el motivo del servidor y el botón «Reintentar»And nunca enseña «$0.00»And el formulario para pagar y los pagos hechos siguen ahíAnd al tocar «Reintentar» aparecen las cifras.
  7. US-97 Repartir la obra entre el personal

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  8. US-97 Repartir la obra entre el personal

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven una partida con quién la hace y la cantidadWhen el usuario toca «Repartir», o quita a alguien de la partida, y la respuesta tardaThen ese botón muestra el indicador de carga del sistema y queda deshabilitadoAnd no se manda dos veces.
  9. US-98 Pagar al personal por lo trabajado

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  10. US-98 Pagar al personal por lo trabajado

    Iteración 27 · Cambio: Mejora de cumplimiento

    GREENfrontend 61a2882
  11. US-98 Pagar al personal por lo trabajado

    Iteración 27 · Bug: Los comprobantes ya no salen con el día anterior (pruebas de PDF fuera de UTC)

    GREENfrontend 81ba04f
  12. US-98 Pagar al personal por lo trabajado

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven el pago a una persona del personal con su montoWhen el usuario toca «Registrar pago» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se le paga dos veces.
  13. US-98 Pagar al personal por lo trabajado

    v5.5 — iteracion-27: la fecha se elige en el calendario de la app

    BacklogCambioIteración 27
    • Cambio iteracion-27 - Fecha con el selector de la appGiven el formulario «Pagar»When el usuario abre la fechaThen ve el calendario de la app, con el tema claro u oscuro, en español y con la semana desde el lunes, nunca el del navegadorAnd puede escribirla como DD/MM/AAAAAnd al tocar «Registrar pago» se guarda la fecha elegida, sin correrse un día.
  14. US-98 Pagar al personal por lo trabajado

    v5.5 — iteracion-27: la fecha por omisión es hoy también de noche

    BacklogBugIteración 27
    • Bug iteracion-27 - Hoy en el calendario de quien pagaGiven son las 19:30 en Ciudad de MéxicoWhen el usuario abre «Pagar»Then la fecha por omisión es la de hoy, no la de mañana.
  15. US-98 Pagar al personal por lo trabajado

    v5.5 — iteracion-27: el comprobante dice la fecha del pago

    BacklogBugIteración 27
    • Bug iteracion-27 - El comprobante no corre la fechaGiven un pago al personal del 3 de febrero de 2026When el arquitecto, en México, ve o comparte su comprobanteThen el documento dice «03 de febrero de 2026», no el día anterior.
  16. US-98 Pagar al personal por lo trabajado

    v5.6 — iteracion-28: los pagos hechos llegan de cinco en cinco

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Solo llega la página que se veGiven una persona del personal con 12 pagosWhen abro su panel de pagosThen en «Pagos hechos» llegan solo 5, cada uno con su fecha, monto y nota, y el pie dice «1–5 de 12»And al pasar a la página 2 llegan los 5 siguientes, sin haber traído los demásAnd lo pagado y el saldo son los de los 12.
    • Cambio iteracion-28 - Los pagos de una obraGiven una persona con 3 pagos de un proyecto y 2 pagos de la semanaWhen abro su panel desde ese proyectoThen «Pagos hechos» cuenta los 3 de ese proyectoAnd lo pagado del panel es la suma de esos 3.
  17. US-96 Registrar a quien hace el trabajo

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  18. US-96 Registrar a quien hace el trabajo

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el alta de quien hace el trabajoWhen el usuario lo abreThen ve un asterisco en Nombre, TipoAnd la leyenda «Los campos con * son obligatorios»And si sale de «Nombre» sin cumplirlo ve «El nombre es obligatorio» junto al campo.
  19. US-96 Registrar a quien hace el trabajo

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Personal» o «Se le debe»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Se le debe» (más primero) ya se ve ordenada.
  20. US-96 Registrar a quien hace el trabajo

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Agregar al personal» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  21. US-97 Repartir la obra entre el personal

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  22. US-97 Repartir la obra entre el personal

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el reparto de la obraWhen el usuario lo abreThen ve un asterisco en Quién hace el trabajo, CantidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Quién hace el trabajo» sin cumplirlo ve «Elige quién lo hace» junto al campo.
  23. US-98 Pagar al personal por lo trabajado

    Iteración 25 · Nueva: Folios de documentos configurables por organización

    GREENbackend dbf8796
  24. US-98 Pagar al personal por lo trabajado

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  25. US-98 Pagar al personal por lo trabajado

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven el pago al personalWhen el usuario lo abreThen ve un asterisco en Monto, Método, FechaAnd la leyenda «Los campos con * son obligatorios»And si sale de «Monto» sin cumplirlo ve «Escribe el monto del pago» junto al campo.
  26. US-98 Pagar al personal por lo trabajado

    v5.3 — iteracion-25: el comprobante de pago a personal imprime su folio

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El folio del pago a personalGiven un pago al personal con folio «PAG-4»When se genera su comprobanteThen el PDF dice «Folio: PAG-4» y el archivo se llama «PAG-4.pdf».
  27. US-96 Registrar a quien hace el trabajo

    v5.1

    BacklogCambioIteración 20
    • Revisada: «Pagar» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Pagar» queda una por una porque pide el monto de cada quien; así ya funciona.
  28. US-96 Registrar a quien hace el trabajo

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 4e50764
  29. US-97 Repartir la obra entre el personal

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 4e50764
  30. US-96 Registrar a quien hace el trabajo

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend 9359f15
  31. US-96 Registrar a quien hace el trabajo

    v4.9 — iteracion-17: el personal se pide por páginas y sus servicios se buscan

    BacklogCambioIteración 17
    • Cambio iteracion-17 - El servidor entrega una páginaGiven una cuenta con 40 personas y empresasWhen el usuario abre PersonalThen recibe las primeras 20, primero a quienes más se les debe, y el contador dice «1–20 de 40».
    • Cambio iteracion-17 - Buscar también por servicioWhen el usuario escribe «plom» en BuscarThen ve a quienes se llaman así o cobran un servicio que lo contiene, de los 40.
    • Cambio iteracion-17 - Con saldo en toda la cuentaWhen el usuario elige «Con saldo»Then ve a todos los que tienen algo por cobrar, estén en la página que estén.
    • Cambio iteracion-17 - Elegir los servicios que cobraGiven el alta o la edición de alguienWhen el usuario escribe «pint» en Servicios que cobraThen ve los servicios de su cuenta que contienen «pint», de todo el catálogo,And puede elegir varios.
    • Cambio iteracion-17 - Sin acciones en loteGiven la lista de personalWhen el usuario la miraThen no hay casillas de selección, porque pagar pide el monto de cada quien.
  32. US-97 Repartir la obra entre el personal

    v4.9 — iteracion-17: a quién se le reparte el trabajo se busca

    BacklogCambioIteración 17
    • Cambio iteracion-17 - Buscar a quien hace el trabajoGiven una cuenta con 40 personasWhen el usuario reparte una partida y escribe «juan» en Quién hace el trabajoThen ve a las personas y empresas que contienen «juan», de las 40.
  33. US-96 Registrar a quien hace el trabajo

    Iteración 12 · Bug: US-18 Pruebas de acceso cruzado y referencias acotadas a la cuenta

    GREENbackend 073df9f
  34. US-96 Registrar a quien hace el trabajo

    Iteración 13 · Cambio: US-07 Teléfonos con PhoneNumberField

    GREENbackend 57daef9
  35. US-96 Registrar a quien hace el trabajo

    Iteración 13 · Cambio: TEC Capas e higiene

    GREENbackend b397792
  36. US-96 Registrar a quien hace el trabajo

    v4.5 — iteracion-13: el teléfono del personal se valida

    BacklogCambioIteración 13
    • Cambio iteracion-13 - Teléfono válido en un solo formatoGiven un teléfono escrito con espacios, guiones o paréntesisWhen se guardaThen queda en un solo formato con su ladaAnd se muestra legible.
    • Cambio iteracion-13 - Teléfono inválidoGiven un teléfono con muy pocos dígitos o con letrasWhen se intenta guardarThen se pide escribir un teléfono válidoAnd no se guarda.
  37. US-97 Repartir la obra entre el personal

    Iteración 13 · Cambio: TEC Capas e higiene

    GREENbackend b397792
  38. US-98 Pagar al personal por lo trabajado

    Iteración 13 · Cambio: TEC Capas e higiene

    GREENbackend b397792
  39. US-96 Registrar a quien hace el trabajo

    v2.27

    Backlog
    • Cambio v2.27 - Un módulo para quien ejecutaGiven que la aplicación sólo conocía a los clientesWhen se agrega US-96 en v2.27Then también conoce a quien hace el trabajo y lo que se le paga.
  40. US-97 Repartir la obra entre el personal

    v2.27

    Backlog
    • Cambio v2.27 - La obra se reparteGiven que un proyecto no sabía quién lo ejecutabaWhen se agrega US-97 en v2.27Then cada partida dice quién la hace y por cuánto.
  41. US-97 Repartir la obra entre el personal

    v3.0

    Backlog
    • Cambio v3.0 - El precio acordado entra soloGiven un reparto a alguien con precio acordado para ese servicioWhen se corrige en v3.0Then el importe entra solo, y si no tiene precio acordado la pantalla lo dice en vez de callar.
  42. US-98 Pagar al personal por lo trabajado

    v2.27

    Backlog
    • Cambio v2.27 - Lo que sale, documentadoGiven que sólo se documentaban los cobrosWhen se agrega US-98 en v2.27Then los pagos al personal también tienen su comprobante.
EPIC-11

Inicio — el resumen de la cuenta

100%1 de 1 en GREEN

1 historia · aún sin integrar en develop

Detalles

Una pantalla de entrada que responde, sin buscar nada, lo que el arquitecto abre la aplicación a preguntar: qué obras están en curso, cuánto de lo que cotiza se vuelve obra —medido en dinero—, qué le deben, qué debe, cuánto ha cobrado mes a mes y qué es lo que más se vende, quién más le compra y quién más trabaja para él. Es lectura: no se registra nada aquí; cada cifra es una puerta a la pantalla donde se trabaja.

  • GREEN 1
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
19 · 25 · 27 · 28 · 29
Último cambio
2026-11-01

Historias

  1. US-99 Ver cómo va el despacho al entrar

    Como arquitecto quiero que al entrar se me muestre el estado de mi despacho —obras, conversión, cobros, pagos, ingresos y lo que más se vende— para saber dónde estoy parado sin revisar pantalla por pantalla.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Lo que hay en marchaGiven una cuenta con obrasWhen entroThen veo cuántas están en curso, cuánto me deben y cuánto debo.
    2. Flujo principal - De lo cotizado a la obraGiven cotizaciones hechas y vendidasWhen miro el inicioThen veo qué parte de lo cotizado se volvió obra, medida en dinero, porque dos cotizaciones chicas ganadas y una grande perdida no son un 66 % de nada.
    3. Flujo principal - Ingresos de seis mesesGiven cobros registradosWhen miro la gráficaThen veo los últimos seis meses terminando en el actual, con el mes en curso y su importe escritos encima de la gráficaAnd el importe de cualquier mes al pasar o tocar su barra.
    4. Flujo principal - Lo que más se vendeGiven obra vendidaWhen miro el inicioThen veo los diez servicios más vendidos, los cinco clientes que más compran y las cinco personas con más trabajos.
    5. Caso de borde - Cuenta recién abiertaGiven una cuenta sin movimientosWhen entroThen cada tabla dice qué falta para llenarse, en vez de quedarse vacía.
    6. Caso de borde - Cabe en el teléfonoGiven la pantalla en un teléfonoWhen la abroThen la gráfica y las tablas se leen, y la barra inferior sigue llevando a todas las secciones.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 47b99a0
    2. Iteración 28 · Bug: Cambiar de empresa como colaborador ya no rompe la pantalla

      GREENfrontend f12aab4
    3. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend 6236451
    4. v5.6 — iteracion-28: Inicio no se cae si la respuesta no es el resumen

      BacklogBugIteración 28
      • Bug iteracion-28 - Al cambiar de empresa, Inicio dice lo que pasó en lugar de romperseGiven un colaborador de dos empresas cambia de una a otra desde el menú de su cuentaAnd la respuesta al resumen no es el resumen (una página web, una lista o un resumen sin sus listas)When se abre InicioThen la pantalla dice «No pudimos leer el resumen de tu despacho. Intenta de nuevo en un momento.» en lugar de romperseAnd el encabezado y la navegación siguen a la mano.
    5. v5.6 — iteracion-28: si el resumen no llega, Inicio lo dice y deja reintentar

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Si el resumen no llega, Inicio lo dice y deja reintentarGiven la persona abre InicioAnd el servidor no entrega el resumen de su despachoWhen se pinta la pantallaThen dice «No se pudo cargar el resumen.» con el motivo que dio el servidor y el botón «Reintentar»And no enseña ninguna cifra en ceroAnd al tocar «Reintentar» se vuelve a pedir el resumen y aparecen sus cifras.
    6. v5.7 — iteracion-29: las tarjetas de Inicio, solo con su título

      BacklogCambioIteración 29
      • Cambio iteracion-29 - Las tarjetas de Inicio, solo con su títuloGiven el usuario en InicioWhen ve las tarjetas del resumen (Ingresos cobrados, De lo cotizado a la obra, los servicios, los clientes y el personal)Then cada una lleva solo su título, sin un ícono encima, como pide el manual de marca, y la pieza de la tarjeta ya no acepta uno.
    7. Iteración 27 · Bug: El mes en curso y el «hoy» del backend se calculan con la hora de México

      GREENbackend f69fa1a
    8. v5.5 — iteracion-27: el mes en curso es el de México

      BacklogBugIteración 27
      • Bug iteracion-27 - El último día del mes por la nocheGiven es 30 de septiembre a las 23:30 en Ciudad de México y ese día se cobró un pagoWhen el arquitecto abre InicioThen la gráfica de ingresos termina en septiembre y ese mes incluye el pago.
    9. v5.6 — iteracion-28: las cifras en la letra del manual

      BacklogCambioIteración 28
      • Cambio iteracion-28 - Las cifras se leen en la letra del manualGiven el despacho tiene obras, cotizaciones, saldo por cobrar y saldo por pagarWhen el arquitecto abre InicioThen las cuatro cifras se ven en Inter seminegrita de 22 px con números tabulares, más chicas si la tarjeta es angosta pero sin partirse, «Por cobrar» en ocre y los títulos de las tarjetas sin ícono al lado.
    10. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a2e9394
    11. v5.3 — iteracion-25: las tarjetas del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
    12. v5.3 — iteracion-25: la gráfica de ingresos del sistema de diseño

      BacklogCambioIteración 25
      • Cambio iteracion-25 - El importe del mes, escritoGiven cobros en los últimos seis mesesWhen se abre InicioThen encima de la gráfica van el mes en curso y su importe («septiembre de 2026», «$25,000.00»), y debajo una barra por mes en el color de gráfica de la marca, en claro y en oscuro.
      • Cambio iteracion-25 - Cualquier mes a un toqueGiven la gráficaWhen el usuario pasa el puntero o toca el carril de un mes, aunque no haya cobrado nadaThen ve el mes completo y su importe («junio de 2026», «$0.00»).
      • Cambio iteracion-25 - Seis meses sin cobrosGiven una cuenta sin cobros en los últimos seis mesesWhen se abre InicioThen la tarjeta dice «Sin cobros en los últimos seis meses.» en lugar de un eje vacío.
    13. Iteración 19 · Bug: US-99 Inicio por nivel: las cifras y las tarjetas en columnas

      GREENfrontend 2d63ada
    14. v2.28

      Backlog
      • Cambio v2.28 - La aplicación tiene entradaGiven que entrar dejaba al arquitecto en el catálogo de serviciosWhen se agrega US-99 en v2.28Then entra a un resumen de su despacho.
    15. v3.0

      Backlog
      • Cambio v3.0 - Cada cifra en su propia tarjetaGiven que las cuatro cifras vivían dentro de una tarjeta común y sueltas se perdían contra el fondoWhen se corrige en v3.0Then cada una es su propia tarjeta, distinguible del fondo de la pantalla.

Últimos cambios

  1. US-99 Ver cómo va el despacho al entrar

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 47b99a0
  2. US-99 Ver cómo va el despacho al entrar

    Iteración 28 · Bug: Cambiar de empresa como colaborador ya no rompe la pantalla

    GREENfrontend f12aab4
  3. US-99 Ver cómo va el despacho al entrar

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend 6236451
  4. US-99 Ver cómo va el despacho al entrar

    v5.6 — iteracion-28: Inicio no se cae si la respuesta no es el resumen

    BacklogBugIteración 28
    • Bug iteracion-28 - Al cambiar de empresa, Inicio dice lo que pasó en lugar de romperseGiven un colaborador de dos empresas cambia de una a otra desde el menú de su cuentaAnd la respuesta al resumen no es el resumen (una página web, una lista o un resumen sin sus listas)When se abre InicioThen la pantalla dice «No pudimos leer el resumen de tu despacho. Intenta de nuevo en un momento.» en lugar de romperseAnd el encabezado y la navegación siguen a la mano.
  5. US-99 Ver cómo va el despacho al entrar

    v5.6 — iteracion-28: si el resumen no llega, Inicio lo dice y deja reintentar

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Si el resumen no llega, Inicio lo dice y deja reintentarGiven la persona abre InicioAnd el servidor no entrega el resumen de su despachoWhen se pinta la pantallaThen dice «No se pudo cargar el resumen.» con el motivo que dio el servidor y el botón «Reintentar»And no enseña ninguna cifra en ceroAnd al tocar «Reintentar» se vuelve a pedir el resumen y aparecen sus cifras.
  6. US-99 Ver cómo va el despacho al entrar

    v5.7 — iteracion-29: las tarjetas de Inicio, solo con su título

    BacklogCambioIteración 29
    • Cambio iteracion-29 - Las tarjetas de Inicio, solo con su títuloGiven el usuario en InicioWhen ve las tarjetas del resumen (Ingresos cobrados, De lo cotizado a la obra, los servicios, los clientes y el personal)Then cada una lleva solo su título, sin un ícono encima, como pide el manual de marca, y la pieza de la tarjeta ya no acepta uno.
  7. US-99 Ver cómo va el despacho al entrar

    Iteración 27 · Bug: El mes en curso y el «hoy» del backend se calculan con la hora de México

    GREENbackend f69fa1a
  8. US-99 Ver cómo va el despacho al entrar

    v5.5 — iteracion-27: el mes en curso es el de México

    BacklogBugIteración 27
    • Bug iteracion-27 - El último día del mes por la nocheGiven es 30 de septiembre a las 23:30 en Ciudad de México y ese día se cobró un pagoWhen el arquitecto abre InicioThen la gráfica de ingresos termina en septiembre y ese mes incluye el pago.
  9. US-99 Ver cómo va el despacho al entrar

    v5.6 — iteracion-28: las cifras en la letra del manual

    BacklogCambioIteración 28
    • Cambio iteracion-28 - Las cifras se leen en la letra del manualGiven el despacho tiene obras, cotizaciones, saldo por cobrar y saldo por pagarWhen el arquitecto abre InicioThen las cuatro cifras se ven en Inter seminegrita de 22 px con números tabulares, más chicas si la tarjeta es angosta pero sin partirse, «Por cobrar» en ocre y los títulos de las tarjetas sin ícono al lado.
  10. US-99 Ver cómo va el despacho al entrar

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a2e9394
  11. US-99 Ver cómo va el despacho al entrar

    v5.3 — iteracion-25: las tarjetas del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Cada cifra y cada bloque, una tarjeta del sistemaGiven Inicio (US-99) o la página pública (US-26, US-84: pasos, ventajas, planos, preguntas y contacto)When se abreThen cada cifra y cada bloque es una tarjeta del sistema de diseño, con su borde y su sombra en claro y en oscuroAnd dentro de otra tarjeta una cifra va hundida, no como tarjeta dentro de tarjeta.
  12. US-99 Ver cómo va el despacho al entrar

    v5.3 — iteracion-25: la gráfica de ingresos del sistema de diseño

    BacklogCambioIteración 25
    • Cambio iteracion-25 - El importe del mes, escritoGiven cobros en los últimos seis mesesWhen se abre InicioThen encima de la gráfica van el mes en curso y su importe («septiembre de 2026», «$25,000.00»), y debajo una barra por mes en el color de gráfica de la marca, en claro y en oscuro.
    • Cambio iteracion-25 - Cualquier mes a un toqueGiven la gráficaWhen el usuario pasa el puntero o toca el carril de un mes, aunque no haya cobrado nadaThen ve el mes completo y su importe («junio de 2026», «$0.00»).
    • Cambio iteracion-25 - Seis meses sin cobrosGiven una cuenta sin cobros en los últimos seis mesesWhen se abre InicioThen la tarjeta dice «Sin cobros en los últimos seis meses.» en lugar de un eje vacío.
  13. US-99 Ver cómo va el despacho al entrar

    Iteración 19 · Bug: US-99 Inicio por nivel: las cifras y las tarjetas en columnas

    GREENfrontend 2d63ada
  14. US-99 Ver cómo va el despacho al entrar

    v2.28

    Backlog
    • Cambio v2.28 - La aplicación tiene entradaGiven que entrar dejaba al arquitecto en el catálogo de serviciosWhen se agrega US-99 en v2.28Then entra a un resumen de su despacho.
  15. US-99 Ver cómo va el despacho al entrar

    v3.0

    Backlog
    • Cambio v3.0 - Cada cifra en su propia tarjetaGiven que las cuatro cifras vivían dentro de una tarjeta común y sueltas se perdían contra el fondoWhen se corrige en v3.0Then cada una es su propia tarjeta, distinguible del fondo de la pantalla.
EPIC-12

Colaboradores

100%6 de 6 en GREEN

6 historias · aún sin integrar en develop

Detalles

Que varias personas trabajen en la misma empresa: el administrador —quien creó la cuenta— invita por correo a sus colaboradores, que crean su cuenta ligada a la suya y trabajan con los datos de la empresa; un colaborador puede estar en una o varias empresas. Por ahora los colaboradores hacen todo, salvo cambiar la configuración de la organización y gestionar colaboradores.

  • GREEN 6
  • En curso 0
  • Bloqueada 0
  • Pendiente 0
Integrada en develop
Pendiente
Aplicaciones
backend · frontend
Iteraciones
14 · 16 · 17 · 20 · 25 · 26 · 28 · 29 · 30
Último cambio
2026-11-01

Historias

  1. US-135 Invitar colaboradores por correo

    Como administrador de la cuenta quiero invitar por correo a una o varias personas, para que trabajen conmigo en mi empresa.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Invitar a variosGiven el administrador en ColaboradoresWhen escribe uno o varios correos y toca «Enviar invitaciones»Then a cada correo le llega una invitación con un enlace que vence en 7 díasAnd aparecen en la tabla como invitación pendiente.
    2. Caso alternativo - Correo que ya estáGiven un correo que ya es colaborador o que ya tiene una invitación pendienteWhen se invita otra vezThen no se manda una segundaAnd se dice por qué.
    3. Caso de borde - Su propio correoGiven el correo del propio administradorWhen lo invitaThen se le dice que ya es el administradorAnd no se manda nada.
    4. Caso de borde - Correo mal escritoGiven un correo con formato inválido entre los que escribióWhen intenta invitarThen se señala ese correoAnd no sale ninguna invitación.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    3. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la invitación de colaboradoresWhen el usuario lo abreThen ve un asterisco en CorreosAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correos» sin cumplirlo ve «Escribe al menos un correo.» junto al campo.
    4. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Enviar invitaciones» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    5. Iteración 16 · Bug: Gravedad media — US-135 · US-137: producción no sale sin correo, las tandas de invitaciones salen de una vez y la pantalla se limpia al cambiar de empresa

      GREENbackend 7488a47
    6. Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

      GREENbackend 70d0483
    7. v4.8 — iteracion-16: invitaciones que siempre llegan o se avisa

      BacklogBugIteración 16
      • Bug iteracion-16 - Producción no sale sin correoGiven una versión a publicar en producción sin la llave del servicio de correo o con su remitente de pruebaWhen se despliegaThen el despliegue se detiene diciendo qué faltaAnd la versión anterior sigue atendiendo.
      • Bug iteracion-16 - Una tanda sale de una vezGiven el administrador invita a 20 correosWhen toca «Enviar invitaciones»Then los 20 correos salen en un solo envío y la respuesta llega en segundosAnd si algo corta el envío a la mitad no queda ninguna invitación pendiente sin su correo.
      • Bug iteracion-16 - Dos envíos al mismo tiempoGiven el administrador toca dos veces «Enviar invitaciones» con el mismo correoWhen las dos peticiones llegan a la vezThen sale una sola invitaciónAnd la otra dice que ya tiene una invitación pendiente, sin error del sistema.
    8. Iteración 14 · Nueva: US-135 Invitar colaboradores por correo

      GREENbackend a2c648a
    9. v4.6 — iteracion-14: alta de «Invitar colaboradores por correo»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Invitar colaboradoresGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-135Then el administrador puede invitar a otras personas a su empresa.

    Formulario

    • Obligatorios Correos
    • Mensaje Correos: «Escribe al menos un correo.»
    • Mensaje Correos: «Revisa: <correos>»
  2. US-136 Aceptar una invitación y crear mi cuenta

    Como persona invitada quiero aceptar la invitación desde el correo y crear mi cuenta ligada a la empresa que me invitó, para empezar a trabajar sin registrarme por mi cuenta.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Crear la cuentaGiven el enlace de una invitación vigenteWhen la persona elige su contraseña y acepta los términos y la privacidadThen se crea su cuenta con el correo invitado, ya confirmadoAnd entra a la empresa que la invitó.
    2. Caso alternativo - Ya tengo cuentaGiven una invitación para un correo que ya tiene cuentaWhen la persona escribe su contraseñaThen la empresa se suma a las suyasAnd entra a ella.
    3. Caso de borde - Vencida o canceladaGiven una invitación vencida o canceladaWhen se abre su enlaceThen se explica que ya no sirve y que pida otra al administrador.
    4. Caso de borde - Ya aceptadaGiven una invitación ya aceptadaWhen se abre otra vez su enlaceThen se invita a iniciar sesión.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 29 · Cambio: Mejora de cumplimiento

      GREENfrontend fbb4816
    3. Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

      GREENfrontend 4182563
    4. v5.7 — iteracion-29: aceptar una invitación con la foto del registro

      BacklogCambioIteración 29
      • Cambio iteracion-29 - Aceptar una invitación con la foto del registroGiven una persona invitada abre el enlace de su invitaciónWhen ve «Te invitaron a colaborar»Then la pantalla lleva la fotografía del registro, la maqueta blanca con tezontle y obsidiana, porque aceptar la invitación es crear su cuenta.
    5. v5.8 — iteracion-30: la fotografía, de fondo del panel al aceptar una invitación

      BacklogBugIteración 30
      • Bug iteracion-30 - La fotografía es el fondo del panel al aceptar una invitaciónGiven una persona invitada en «Te invitaron a colaborar»When la pantalla se abre en la computadoraThen la fotografía del registro, la maqueta blanca con tezontle y obsidiana, ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
    6. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend a4dd40a
    7. v5.3 — iteracion-25: los obligatorios se marcan con asterisco

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Obligatorios marcadosGiven la aceptación de una invitación con cuenta nuevaWhen el usuario lo abreThen ve un asterisco en Contraseña, Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Contraseña» sin cumplirlo ve «Escribe tu contraseña.» junto al campo.
    8. v5.3 — iteracion-25: el botón dice que está enviando

      BacklogCambioIteración 25
      • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear mi cuenta y entrar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
    9. Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

      GREENbackend 70d0483
    10. v4.8 — iteracion-16: aceptar sin sesiones falsas ni errores del sistema

      BacklogBugIteración 16
      • Bug iteracion-16 - El campo trampa lleno no deja una sesión falsaGiven el campo trampa del formulario llega lleno (por ejemplo, por el autocompletado)When se acepta la invitaciónThen no queda una sesión falsa en el dispositivoAnd se dice que no pudimos abrir la sesión y que lo intente de nuevo.
      • Bug iteracion-16 - Dos aceptaciones al mismo tiempoGiven dos invitaciones de empresas distintas al mismo correo nuevoWhen se aceptan a la vezThen una crea la cuentaAnd la otra pide entrar con la contraseña de esa cuenta, sin error del sistema.
    11. Iteración 14 · Nueva: US-136 Aceptar una invitación y crear mi cuenta

      GREENbackend 29caf3b
    12. v4.6 — iteracion-14: alta de «Aceptar una invitación y crear mi cuenta»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Aceptar la invitaciónGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-136Then quien recibe una invitación crea su cuenta ligada a esa empresa.

    Formulario

    • Obligatorios Contraseña, Aceptación de los términos y la política de privacidad
    • Mensaje Contraseña: «Escribe tu contraseña.»
    • Mensaje Contraseña: «La contraseña debe tener al menos 8 caracteres»
    • Mensaje Aceptación de los términos y la política de privacidad: «Acepta los términos y la política de privacidad para crear tu cuenta»
  3. US-137 Trabajar en las empresas que me invitan

    Como colaborador quiero trabajar en cada empresa que me invitó y cambiar de una a otra, para llevar sus cotizaciones, proyectos y cobros como lo hace el administrador.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - Los datos de la empresaGiven un colaborador activoWhen entraThen trabaja con los servicios, clientes, cotizaciones, proyectos, cobros, personal y planos de la empresaAnd los documentos salen con la marca de la empresa.
    2. Flujo principal - Cambiar de empresaGiven un colaborador de dos o más empresasWhen elige otra en el menú de la cuentaThen la aplicación muestra los datos de esa empresaAnd recuerda la elección en ese dispositivo.
    3. Caso de borde - Sin empresa propiaGiven una cuenta creada desde una invitaciónWhen entraThen sólo ve las empresas que la invitaron.
    4. Caso de borde - Sin empresas activasGiven un colaborador desactivado o eliminado de todas sus empresasWhen entraThen se le explica que no tiene una empresa activa.
    5. Caso de borde - AislamientoGiven un colaborador de la empresa AWhen pide un dato de la empresa B, donde no colaboraThen no lo encuentra.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend c394274
    2. Iteración 28 · Bug: Cambiar de empresa como colaborador ya no rompe la pantalla

      GREENfrontend f12aab4
    3. Iteración 16 · Bug: Gravedad alta — US-92 · US-137: los planos, modelos y texturas del dispositivo son de cada empresa

      GREENfrontend 87b9c56
    4. Iteración 16 · Bug: Gravedad media — US-135 · US-137: producción no sale sin correo, las tandas de invitaciones salen de una vez y la pantalla se limpia al cambiar de empresa

      GREENbackend 7488a47
    5. Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

      GREENbackend 70d0483
    6. v4.8 — iteracion-16: la pantalla siempre es de la empresa en la que se trabaja

      BacklogBugIteración 16
      • Bug iteracion-16 - Al cambiar de empresa por fuera del menú no queda nada de la otraGiven datos de la empresa A en pantallaWhen la empresa cambia sin usar el menú —se perdió el acceso a A, se aceptó una invitación de B u otra persona entró en este dispositivo—Then la aplicación vuelve a pedir todoAnd no queda en pantalla ningún dato ni membrete de A.
      • Bug iteracion-16 - La empresa elegida se recuerda al volver a entrarGiven un colaborador que eligió la empresa BWhen cierra la sesión y vuelve a entrar en el mismo dispositivoThen sigue en la empresa BAnd otra cuenta que entra en ese dispositivo no hereda esa elección.
    7. Iteración 14 · Nueva: US-137 Trabajar en las empresas que me invitan

      GREENbackend 71c80e4
    8. v4.6 — iteracion-14: alta de «Trabajar en las empresas que me invitan»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Trabajar en varias empresasGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-137Then un colaborador trabaja con los datos de cada empresa que lo invitó.
  4. US-138 Gestionar a mis colaboradores

    Como administrador quiero ver a mis colaboradores en una tabla con buscador y filtro, activarlos, desactivarlos y eliminarlos, para decidir quién trabaja en mi empresa.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - La tablaGiven colaboradores e invitacionesWhen el administrador abre ColaboradoresThen ve una tabla con el correo, el estado (activo, inactivo, invitación pendiente o vencida) y la fecha.
    2. Flujo principal - Buscar y filtrarGiven la tablaWhen escribe parte de un correo o elige un estadoThen sólo queda lo que coincideAnd si nada coincide se dice.
    3. Flujo principal - Desactivar y activarGiven un colaborador activoWhen el administrador lo desactivaThen deja de entrar a la empresa desde su siguiente acciónAnd al activarlo vuelve a entrar.
    4. Flujo principal - EliminarGiven un colaboradorWhen el administrador lo elimina y lo confirmaThen deja de estar en la empresaAnd lo que registró sigue siendo de la empresa.
    5. Caso de borde - Sin colaboradoresGiven una empresa sin colaboradores ni invitacionesWhen se abre ColaboradoresThen se invita a mandar la primera invitación.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend 7aea587
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven la tabla de colaboradoresWhen el administrador toca «Desactivar» o «Activar» en una fila y la respuesta tardaThen el botón de esa fila muestra el indicador de carga del sistemaAnd los de las otras filas esperan deshabilitados.
    4. Iteración 25 · Cambio: Mejora de cumplimiento

      GREENfrontend ed2cc55
    5. v5.3 — iteracion-25: la tabla se ordena desde el encabezado

      BacklogCambioIteración 25
      • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Correo» o «Fecha»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
      • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Correo» (de la A a la Z) ya se ve ordenada.
    6. v5.1

      BacklogCambioIteración 20
      • Revisada: «Reenviar invitación» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Reenviar invitación» queda una por una porque cada reenvío manda un correo a esa persona; se reenvía una por una; así ya funciona.
    7. Iteración 17 · Cambio: Mejora de cumplimiento

      GREENbackend cce7195
    8. v4.9 — iteracion-17: los colaboradores se piden por páginas y se gestionan en lote

      BacklogCambioIteración 17
      • Cambio iteracion-17 - El servidor entrega una páginaGiven 30 colaboradores e invitacionesWhen el administrador abre ColaboradoresThen recibe los primeros 20 y el contador dice «1–20 de 30».
      • Cambio iteracion-17 - Varios estados a la vezWhen el administrador filtra Estado por «Invitación pendiente» e «Invitación vencida»Then ve todas las invitaciones sin aceptar y el total combinado.
      • Cambio iteracion-17 - Desactivar variosGiven el administrador selecciona 3 colaboradores activosWhen elige «Desactivar»Then los 3 quedan inactivosAnd ve «3 colaboradores desactivados».
      • Cambio iteracion-17 - La acción solo aplica a lo que correspondeGiven el administrador selecciona 2 colaboradores y 1 invitación pendienteWhen elige «Desactivar»Then se desactivan los 2And ve «2 de 3 desactivados. 1 no se pudo: es una invitación, no un colaborador».
      • Cambio iteracion-17 - Eliminar variosGiven el administrador selecciona 2 colaboradoresWhen elige «Eliminar»Then ve «¿Eliminar 2 colaboradores?»And al confirmar dejan de tener acceso a la empresa.
      • Cambio iteracion-17 - Cancelar varias invitacionesGiven el administrador selecciona 4 invitaciones pendientesWhen elige «Cancelar invitación» y confirmaThen los 4 enlaces dejan de servirAnd ve «4 invitaciones canceladas».
    9. Iteración 14 · Nueva: US-138 Gestionar a mis colaboradores

      GREENbackend f9cc29f
    10. v4.6 — iteracion-14: alta de «Gestionar a mis colaboradores»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Gestionar colaboradoresGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-138Then el administrador ve y gestiona a sus colaboradores.

    Lista y formulario

    • Página 20 registros por página
    • Busca en Correo
    • Filtros Estado (varios valores: Activo, Inactivo, Invitación pendiente, Invitación vencida)
    • Orden Correo (A-Z) · también por Correo, Desde
    • Acciones de fila Activar, Desactivar, Eliminar, Reenviar invitación, Cancelar invitación
    • En lote Activar (por registro)
    • En lote Desactivar (por registro)
    • En lote Eliminar (por registro, pide confirmación)
    • En lote Cancelar invitación (por registro, pide confirmación)
    • Sin lote Reenviar invitación: cada reenvío manda un correo a esa persona; se reenvía una por una
  5. US-139 Reenviar o cancelar una invitación

    Como administrador quiero reenviar una invitación que no se ha aceptado o cancelarla, para que llegue de nuevo o deje de servir.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - ReenviarGiven una invitación pendiente o vencidaWhen el administrador la reenvíaThen llega un correo nuevo con un enlace que vence en 7 díasAnd el enlace anterior deja de servir.
    2. Flujo principal - CancelarGiven una invitación pendienteWhen el administrador la cancela y lo confirmaThen su enlace deja de servirAnd sale de la tabla.
    3. Caso de borde - Ya aceptadaGiven una invitación que ya se aceptóThen no se puede reenviar ni cancelar: la persona ya es colaborador.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 26 · Cambio: Mejora de cumplimiento

      GREENfrontend f1db040
    3. v5.4 — iteracion-26: el botón dice que está trabajando

      BacklogCambioIteración 26
      • Cambio iteracion-26 - EnviandoGiven una invitación pendiente o vencidaWhen el administrador toca «Reenviar» en su fila y la respuesta tardaThen el botón de esa fila muestra el indicador de carga del sistema y queda deshabilitadoAnd la invitación no se reenvía dos veces.
    4. Iteración 16 · Bug: Gravedad media-alta — US-139: reenviar una invitación sin dejar a la persona sin enlace, y decir si el correo salió

      GREENbackend 136227d
    5. v4.8 — iteracion-16: reenviar no deja a nadie sin enlace

      BacklogBugIteración 16
      • Bug iteracion-16 - Si el correo no sale, el enlace anterior sigue sirviendoGiven una invitación pendienteWhen el administrador la reenvía y el correo no saleThen el enlace que ya tenía la persona sigue sirviendoAnd la pantalla dice que no pudimos enviar el correo y que lo intente de nuevo.
      • Bug iteracion-16 - Se dice si el correo salióGiven una invitación pendienteWhen el administrador la reenvía y el correo saleThen la respuesta dice que salióAnd el enlace anterior deja de servir.
    6. Iteración 14 · Nueva: US-139 Reenviar o cancelar una invitación

      GREENbackend 0c9db99
    7. v4.6 — iteracion-14: alta de «Reenviar o cancelar una invitación»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Reenviar o cancelarGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-139Then el administrador puede reenviar o cancelar una invitación pendiente.
  6. US-140 Lo que sólo el administrador decide

    Como administrador quiero ser el único que cambia la configuración de la organización e invita o elimina colaboradores, para que la identidad y el equipo de mi empresa no cambien sin mí.

    GREEN2026-11-01backend · frontend

    Criterios de aceptación

    1. Flujo principal - La organizaciónGiven un colaboradorWhen abre la configuración de la organizaciónThen la ve pero no puede cambiar el nombre, el color, el logotipo ni el contacto.
    2. Flujo principal - Los colaboradoresGiven un colaboradorThen no ve el apartado de ColaboradoresAnd no puede invitar, desactivar ni eliminar a nadie.
    3. Flujo principal - Todo lo demásGiven un colaborador activoThen puede hacer todo lo demás que hace el administrador.
    4. Caso de borde - Administrador que colabora en otraGiven el administrador de una empresa que también colabora en otraWhen trabaja en la otraThen ahí es colaborador.

    Historial de cambios

    1. Iteración 28 · Cambio: Mejora de cumplimiento

      GREENfrontend fb42146
    2. Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

      GREENbackend 70d0483
    3. v4.8 — iteracion-16: nada de administrador mientras carga la cuenta

      BacklogBugIteración 16
      • Bug iteracion-16 - Mientras carga la cuenta no se ve lo del administradorGiven un colaboradorWhen abre la aplicación y su cuenta todavía cargaThen no ve, ni por un momento, Colaboradores ni la organización editable.
    4. Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

      GREENbackend 502e2e7
    5. v4.6 — iteracion-14: alta de «Lo que sólo el administrador decide»

      BacklogNuevaIteración 14
      • Nueva iteracion-14 - Permisos del administradorGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-140Then la organización y el equipo los decide sólo el administrador.

Últimos cambios

  1. US-135 Invitar colaboradores por correo

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  2. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  3. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 29 · Cambio: Mejora de cumplimiento

    GREENfrontend fbb4816
  4. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 30 · Bug: La imagen de acceso es el fondo del panel en escritorio

    GREENfrontend 4182563
  5. US-136 Aceptar una invitación y crear mi cuenta

    v5.7 — iteracion-29: aceptar una invitación con la foto del registro

    BacklogCambioIteración 29
    • Cambio iteracion-29 - Aceptar una invitación con la foto del registroGiven una persona invitada abre el enlace de su invitaciónWhen ve «Te invitaron a colaborar»Then la pantalla lleva la fotografía del registro, la maqueta blanca con tezontle y obsidiana, porque aceptar la invitación es crear su cuenta.
  6. US-136 Aceptar una invitación y crear mi cuenta

    v5.8 — iteracion-30: la fotografía, de fondo del panel al aceptar una invitación

    BacklogBugIteración 30
    • Bug iteracion-30 - La fotografía es el fondo del panel al aceptar una invitaciónGiven una persona invitada en «Te invitaron a colaborar»When la pantalla se abre en la computadoraThen la fotografía del registro, la maqueta blanca con tezontle y obsidiana, ocupa todo el panel de la marca como fondo, bajo un velo de obsidianaAnd el logotipo, el lema, las ventajas y la firma van encima del velo, sin una banda de obsidiana que deje la fotografía como un bloque aparteAnd todo el texto del panel se lee con contraste AA en claro y en oscuroAnd en el teléfono y la tableta la pantalla se ve como antes, con la fotografía velada detrás del formulario.
  7. US-137 Trabajar en las empresas que me invitan

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend c394274
  8. US-137 Trabajar en las empresas que me invitan

    Iteración 28 · Bug: Cambiar de empresa como colaborador ya no rompe la pantalla

    GREENfrontend f12aab4
  9. US-138 Gestionar a mis colaboradores

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend 7aea587
  10. US-139 Reenviar o cancelar una invitación

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  11. US-140 Lo que sólo el administrador decide

    Iteración 28 · Cambio: Mejora de cumplimiento

    GREENfrontend fb42146
  12. US-138 Gestionar a mis colaboradores

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  13. US-138 Gestionar a mis colaboradores

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven la tabla de colaboradoresWhen el administrador toca «Desactivar» o «Activar» en una fila y la respuesta tardaThen el botón de esa fila muestra el indicador de carga del sistemaAnd los de las otras filas esperan deshabilitados.
  14. US-139 Reenviar o cancelar una invitación

    Iteración 26 · Cambio: Mejora de cumplimiento

    GREENfrontend f1db040
  15. US-139 Reenviar o cancelar una invitación

    v5.4 — iteracion-26: el botón dice que está trabajando

    BacklogCambioIteración 26
    • Cambio iteracion-26 - EnviandoGiven una invitación pendiente o vencidaWhen el administrador toca «Reenviar» en su fila y la respuesta tardaThen el botón de esa fila muestra el indicador de carga del sistema y queda deshabilitadoAnd la invitación no se reenvía dos veces.
  16. US-135 Invitar colaboradores por correo

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  17. US-135 Invitar colaboradores por correo

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la invitación de colaboradoresWhen el usuario lo abreThen ve un asterisco en CorreosAnd la leyenda «Los campos con * son obligatorios»And si sale de «Correos» sin cumplirlo ve «Escribe al menos un correo.» junto al campo.
  18. US-135 Invitar colaboradores por correo

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Enviar invitaciones» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  19. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend a4dd40a
  20. US-136 Aceptar una invitación y crear mi cuenta

    v5.3 — iteracion-25: los obligatorios se marcan con asterisco

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Obligatorios marcadosGiven la aceptación de una invitación con cuenta nuevaWhen el usuario lo abreThen ve un asterisco en Contraseña, Aceptación de los términos y la política de privacidadAnd la leyenda «Los campos con * son obligatorios»And si sale de «Contraseña» sin cumplirlo ve «Escribe tu contraseña.» junto al campo.
  21. US-136 Aceptar una invitación y crear mi cuenta

    v5.3 — iteracion-25: el botón dice que está enviando

    BacklogCambioIteración 25
    • Cambio iteracion-25 - EnviandoGiven el formulario listoWhen el usuario toca «Crear mi cuenta y entrar» y la respuesta tardaThen el botón muestra el indicador de carga del sistema junto a su texto y queda deshabilitadoAnd no se manda dos veces.
  22. US-138 Gestionar a mis colaboradores

    Iteración 25 · Cambio: Mejora de cumplimiento

    GREENfrontend ed2cc55
  23. US-138 Gestionar a mis colaboradores

    v5.3 — iteracion-25: la tabla se ordena desde el encabezado

    BacklogCambioIteración 25
    • Cambio iteracion-25 - Ordenar desde el encabezadoGiven la lista en la tabla, desde 900 pxWhen el usuario toca el encabezado «Correo» o «Fecha»Then la lista se ordena en el servidor de forma ascendente, al tocarlo otra vez descendente y luego vuelve al orden de siempreAnd el encabezado muestra la flecha y anuncia el orden al lector de pantalla.
    • Cambio iteracion-25 - El orden de siempre se veGiven la lista recién abiertaWhen se mira la tablaThen la columna «Correo» (de la A a la Z) ya se ve ordenada.
  24. US-138 Gestionar a mis colaboradores

    v5.1

    BacklogCambioIteración 20
    • Revisada: «Reenviar invitación» no va en loteGiven la lista de esta historiaWhen se revisan sus acciones por filaThen «Reenviar invitación» queda una por una porque cada reenvío manda un correo a esa persona; se reenvía una por una; así ya funciona.
  25. US-138 Gestionar a mis colaboradores

    Iteración 17 · Cambio: Mejora de cumplimiento

    GREENbackend cce7195
  26. US-135 Invitar colaboradores por correo

    Iteración 16 · Bug: Gravedad media — US-135 · US-137: producción no sale sin correo, las tandas de invitaciones salen de una vez y la pantalla se limpia al cambiar de empresa

    GREENbackend 7488a47
  27. US-135 Invitar colaboradores por correo

    Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

    GREENbackend 70d0483
  28. US-135 Invitar colaboradores por correo

    v4.8 — iteracion-16: invitaciones que siempre llegan o se avisa

    BacklogBugIteración 16
    • Bug iteracion-16 - Producción no sale sin correoGiven una versión a publicar en producción sin la llave del servicio de correo o con su remitente de pruebaWhen se despliegaThen el despliegue se detiene diciendo qué faltaAnd la versión anterior sigue atendiendo.
    • Bug iteracion-16 - Una tanda sale de una vezGiven el administrador invita a 20 correosWhen toca «Enviar invitaciones»Then los 20 correos salen en un solo envío y la respuesta llega en segundosAnd si algo corta el envío a la mitad no queda ninguna invitación pendiente sin su correo.
    • Bug iteracion-16 - Dos envíos al mismo tiempoGiven el administrador toca dos veces «Enviar invitaciones» con el mismo correoWhen las dos peticiones llegan a la vezThen sale una sola invitaciónAnd la otra dice que ya tiene una invitación pendiente, sin error del sistema.
  29. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

    GREENbackend 70d0483
  30. US-136 Aceptar una invitación y crear mi cuenta

    v4.8 — iteracion-16: aceptar sin sesiones falsas ni errores del sistema

    BacklogBugIteración 16
    • Bug iteracion-16 - El campo trampa lleno no deja una sesión falsaGiven el campo trampa del formulario llega lleno (por ejemplo, por el autocompletado)When se acepta la invitaciónThen no queda una sesión falsa en el dispositivoAnd se dice que no pudimos abrir la sesión y que lo intente de nuevo.
    • Bug iteracion-16 - Dos aceptaciones al mismo tiempoGiven dos invitaciones de empresas distintas al mismo correo nuevoWhen se aceptan a la vezThen una crea la cuentaAnd la otra pide entrar con la contraseña de esa cuenta, sin error del sistema.
  31. US-137 Trabajar en las empresas que me invitan

    Iteración 16 · Bug: Gravedad alta — US-92 · US-137: los planos, modelos y texturas del dispositivo son de cada empresa

    GREENfrontend 87b9c56
  32. US-137 Trabajar en las empresas que me invitan

    Iteración 16 · Bug: Gravedad media — US-135 · US-137: producción no sale sin correo, las tandas de invitaciones salen de una vez y la pantalla se limpia al cambiar de empresa

    GREENbackend 7488a47
  33. US-137 Trabajar en las empresas que me invitan

    Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

    GREENbackend 70d0483
  34. US-137 Trabajar en las empresas que me invitan

    v4.8 — iteracion-16: la pantalla siempre es de la empresa en la que se trabaja

    BacklogBugIteración 16
    • Bug iteracion-16 - Al cambiar de empresa por fuera del menú no queda nada de la otraGiven datos de la empresa A en pantallaWhen la empresa cambia sin usar el menú —se perdió el acceso a A, se aceptó una invitación de B u otra persona entró en este dispositivo—Then la aplicación vuelve a pedir todoAnd no queda en pantalla ningún dato ni membrete de A.
    • Bug iteracion-16 - La empresa elegida se recuerda al volver a entrarGiven un colaborador que eligió la empresa BWhen cierra la sesión y vuelve a entrar en el mismo dispositivoThen sigue en la empresa BAnd otra cuenta que entra en ese dispositivo no hereda esa elección.
  35. US-138 Gestionar a mis colaboradores

    v4.9 — iteracion-17: los colaboradores se piden por páginas y se gestionan en lote

    BacklogCambioIteración 17
    • Cambio iteracion-17 - El servidor entrega una páginaGiven 30 colaboradores e invitacionesWhen el administrador abre ColaboradoresThen recibe los primeros 20 y el contador dice «1–20 de 30».
    • Cambio iteracion-17 - Varios estados a la vezWhen el administrador filtra Estado por «Invitación pendiente» e «Invitación vencida»Then ve todas las invitaciones sin aceptar y el total combinado.
    • Cambio iteracion-17 - Desactivar variosGiven el administrador selecciona 3 colaboradores activosWhen elige «Desactivar»Then los 3 quedan inactivosAnd ve «3 colaboradores desactivados».
    • Cambio iteracion-17 - La acción solo aplica a lo que correspondeGiven el administrador selecciona 2 colaboradores y 1 invitación pendienteWhen elige «Desactivar»Then se desactivan los 2And ve «2 de 3 desactivados. 1 no se pudo: es una invitación, no un colaborador».
    • Cambio iteracion-17 - Eliminar variosGiven el administrador selecciona 2 colaboradoresWhen elige «Eliminar»Then ve «¿Eliminar 2 colaboradores?»And al confirmar dejan de tener acceso a la empresa.
    • Cambio iteracion-17 - Cancelar varias invitacionesGiven el administrador selecciona 4 invitaciones pendientesWhen elige «Cancelar invitación» y confirmaThen los 4 enlaces dejan de servirAnd ve «4 invitaciones canceladas».
  36. US-139 Reenviar o cancelar una invitación

    Iteración 16 · Bug: Gravedad media-alta — US-139: reenviar una invitación sin dejar a la persona sin enlace, y decir si el correo salió

    GREENbackend 136227d
  37. US-139 Reenviar o cancelar una invitación

    v4.8 — iteracion-16: reenviar no deja a nadie sin enlace

    BacklogBugIteración 16
    • Bug iteracion-16 - Si el correo no sale, el enlace anterior sigue sirviendoGiven una invitación pendienteWhen el administrador la reenvía y el correo no saleThen el enlace que ya tenía la persona sigue sirviendoAnd la pantalla dice que no pudimos enviar el correo y que lo intente de nuevo.
    • Bug iteracion-16 - Se dice si el correo salióGiven una invitación pendienteWhen el administrador la reenvía y el correo saleThen la respuesta dice que salióAnd el enlace anterior deja de servir.
  38. US-140 Lo que sólo el administrador decide

    Iteración 16 · Bug: Gravedad baja — US-135 · US-136 · US-137 · US-140: campo trampa, peticiones simultáneas, empresa recordada por cuenta y vista de administrador al cargar

    GREENbackend 70d0483
  39. US-140 Lo que sólo el administrador decide

    v4.8 — iteracion-16: nada de administrador mientras carga la cuenta

    BacklogBugIteración 16
    • Bug iteracion-16 - Mientras carga la cuenta no se ve lo del administradorGiven un colaboradorWhen abre la aplicación y su cuenta todavía cargaThen no ve, ni por un momento, Colaboradores ni la organización editable.
  40. US-135 Invitar colaboradores por correo

    Iteración 14 · Nueva: US-135 Invitar colaboradores por correo

    GREENbackend a2c648a
  41. US-135 Invitar colaboradores por correo

    v4.6 — iteracion-14: alta de «Invitar colaboradores por correo»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Invitar colaboradoresGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-135Then el administrador puede invitar a otras personas a su empresa.
  42. US-136 Aceptar una invitación y crear mi cuenta

    Iteración 14 · Nueva: US-136 Aceptar una invitación y crear mi cuenta

    GREENbackend 29caf3b
  43. US-136 Aceptar una invitación y crear mi cuenta

    v4.6 — iteracion-14: alta de «Aceptar una invitación y crear mi cuenta»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Aceptar la invitaciónGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-136Then quien recibe una invitación crea su cuenta ligada a esa empresa.
  44. US-137 Trabajar en las empresas que me invitan

    Iteración 14 · Nueva: US-137 Trabajar en las empresas que me invitan

    GREENbackend 71c80e4
  45. US-137 Trabajar en las empresas que me invitan

    v4.6 — iteracion-14: alta de «Trabajar en las empresas que me invitan»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Trabajar en varias empresasGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-137Then un colaborador trabaja con los datos de cada empresa que lo invitó.
  46. US-138 Gestionar a mis colaboradores

    Iteración 14 · Nueva: US-138 Gestionar a mis colaboradores

    GREENbackend f9cc29f
  47. US-138 Gestionar a mis colaboradores

    v4.6 — iteracion-14: alta de «Gestionar a mis colaboradores»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Gestionar colaboradoresGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-138Then el administrador ve y gestiona a sus colaboradores.
  48. US-139 Reenviar o cancelar una invitación

    Iteración 14 · Nueva: US-139 Reenviar o cancelar una invitación

    GREENbackend 0c9db99
  49. US-139 Reenviar o cancelar una invitación

    v4.6 — iteracion-14: alta de «Reenviar o cancelar una invitación»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Reenviar o cancelarGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-139Then el administrador puede reenviar o cancelar una invitación pendiente.
  50. US-140 Lo que sólo el administrador decide

    Iteración 14 · Nueva: US-140 Lo que sólo el administrador decide

    GREENbackend 502e2e7
  51. US-140 Lo que sólo el administrador decide

    v4.6 — iteracion-14: alta de «Lo que sólo el administrador decide»

    BacklogNuevaIteración 14
    • Nueva iteracion-14 - Permisos del administradorGiven que hasta v4.5 cada cuenta era de una sola personaWhen se agrega US-140Then la organización y el equipo los decide sólo el administrador.

Decisiones 111

  1. En la computadora la fotografía de acceso es el fondo de todo el panel, bajo un velo uniforme de obsidiana al 78 % (sin degradado, manual §08) y los estratos: el más ligero con el que todo el texto del panel pasa AA sobre el peor pixel de las tres fotos, que tienen blanco puro, también sobre los estratos. Manda la firma, en blanco al 70 %: con la firma al 90 % bastaría 68 %. Antes de la iteracion-29 el velo era de 87 %. Corrige el panel apilado de la iteracion-29 que reportó la persona el 2026-11-01 (iteracion-30 #2; manual de marca 2.2.1).

  2. El dominio de la cookie CSRF ya no se configura por entorno ni tiene un valor fijo: sale el valor por omisión .itzaka.com y, sin CSRF_COOKIE_DOMAIN (o vacía) y sin DEBUG, el backend lo deduce de ALLOWED_HOSTS y CORS_ALLOWED_ORIGINS, como el sufijo común más largo entre un host de la SPA y uno de la API (itzaka.grupotorresmucino.com y api-itzaka.grupotorresmucino.com → .grupotorresmucino.com; itzaka.com y api.itzaka.com → .itzaka.com). Nunca es una sola etiqueta, un sufijo público de plataforma (vercel.app, netlify.app, pages.dev, herokuapp.com, onrender.com, github.io, web.app, firebaseapp.com, fly.dev, up.railway.app) ni un segundo nivel de país como com.mx; sin uno válido, la cookie queda en el host de la API. CSRF_COOKIE_DOMAIN solo lo fuerza y, puesta, gana siempre; CSRF_COOKIE_NAME no cambia. En un despliegue de Production, los chequeos common.E005 (el dominio no cubre a la SPA), common.E006 (no cubre a la API) y common.E007 (sin dominio, con la SPA en otro host) detienen el migrate del build. Aprobado por la persona el 2026-11-01 (iteracion-30 #1).

  3. Iteración 29 · Las pantallas de acceso usan las tres fotografías de estudio que mandó la persona, con su mapeo: la maqueta blanca con tezontle, obsidiana y planos enrollados al crear la cuenta, al verificar el código y al aceptar una invitación; el plano en papel con el cubo de concreto, los bloques de tezontle y cantera, el metro y el nivel al iniciar sesión (y en cualquier pantalla sin sesión que no tenga la suya); la maqueta con la llave y el llavero de piel tezontle en los dos pasos de recuperar la contraseña. En la computadora la fotografía va completa y sin velo, entre la banda de obsidiana del logotipo, el lema y las ventajas y la firma con el remate de tezontle, y el texto nunca va encima de ella; en el teléfono y la tableta va detrás del formulario bajo el velo del fondo al 90 %. Las fotos de obra anteriores salen de la app y el manual de marca pasa a la 2.2 sin cambiar tokens.

  4. Itzaka termina la migración a shadcn/ui (iteracion-28): MUI, Emotion y dayjs salen del frontend y el lint impide volver a importarlos. Los tokens viven solo en src/index.css, copia exacta de site/marca/tokens.css; ningún archivo de TypeScript los copia. El velo de las ventanas modales es el token --overlay al 50 % y el de las guías el mismo token al 60 %.

  5. Las variables públicas del frontend se llaman sin el prefijo VITE_ porque la política de Vercel no deja crear variables con un prefijo que lee como público (VITE_, PUBLIC_, NEXT_PUBLIC_). src/config/public-env.ts es la lista única, por nombre exacto: API_URL, SITE_URL, RECAPTCHA_SITE_KEY, GOOGLE_CLIENT_ID y CSRF_COOKIE_NAME (Itzaka no agrega otras). vite.config.ts expone al bundle solo esos nombres (envPrefix con la lista; Vite compara por prefijo, así que ningún nombre de .env.example puede empezar con uno de la lista sin serlo), y el quality gate y las pruebas base rechazan que el código lea otro nombre o que la lista traiga algo con SECRET, PASSWORD, TOKEN o PRIVATE o un prefijo de framework. Renombres: VITE_API_URL → API_URL, VITE_CSRF_COOKIE_NAME → CSRF_COOKIE_NAME, VITE_RECAPTCHA_SITE_KEY → RECAPTCHA_SITE_KEY, VITE_SITE_URL → SITE_URL.

  6. Las listas que viven en el dispositivo se buscan, se ordenan y se cortan ahí por diseño (local-first): la de planos (US-78) y el catálogo de mobiliario del editor sin conexión. El editor se usa en obra, donde falla la señal. La sincronización ya baja esos datos al dispositivo, y pedir cada página al servidor dejaría la lista vacía sin conexión. No son catálogos cerrados (pueden tener cientos de filas), así que la excepción vale solo para esas dos listas y cada una lo dice en su código. Las demás listas piden su página al servidor.

  7. Paleta de dibujo del editor de planos: el lienzo es papel y tinta y no cambia con el tema, así que sus colores son una paleta declarada en un solo módulo del editor, no tokens. Los materiales (#EDEAE4, #C9CFD8, #B09873, #8FA3C4, #9AB08F y #C62828) y la aguja del norte (#C62828) se quedan como estaban, como se decidió en el chat al pasar a la marca v2.0. También se quedan las tintas del plano (muros #2B3440, papel #F7F7F4, rejilla #D5D8D2 y #E4E6E1), los colores de la vista 3D y los del plano exportado. Los que copian un valor del manual llevan el nombre de su token, para que un cambio de marca los encuentre. La pista de la herramienta, el aviso del plano vacío y el velo de las guías dejan los valores escritos a mano y pasan a los tokens del tema. Los valores completos están en la sección del editor de la Visual Spec.

  8. Diferencias con el prototipo, decididas con el manual (2026-10-31). Toda la interfaz va en Inter, también los títulos y los montos: las cifras van en seminegrita de 22 px, y Space Grotesk queda solo para la página pública. «Por cobrar» va en ocre y «Pagado» en verde. La fila de Cotizaciones abre el detalle, sin botones «Ver» ni «Editar». «Registrar pago» va contorneado, porque hay un solo primario por pantalla. Los títulos de tarjeta van sin ícono al lado. En lo que el manual no dice, la app queda como está, y el prototipo se regeneró siguiéndola.

  9. Niveles de Tailwind (aprobados por la persona el 2026-10-31): compacto por debajo de 768 px, mediano de 768 a 1023 y expandido desde 1024. Dentro de expandido, 1280 y 1536 afinan las columnas. Se validan a 360, 768, 1024, 1280 y 1536. Hay riel de 80 px en mediano y barra lateral de 240 px desde 1024; las listas son tabla desde 768 y el editor de planos se ve como de escritorio desde 1024. Reemplazan los niveles en MUI del 2026-10-23. Fuente: producto/5.0_Visual_Spec_Pantallas.md y la tabla «Niveles» de la sección 11 del brand-site.

  10. Itzaka deja MUI y pasa a shadcn/ui con Tailwind CSS v4 (aprobado por la persona el 2026-10-31). Las pantallas se dibujan con las primitivas del CLI de shadcn (src/components/ui) y con los compuestos del producto hechos con ellas (src/components/shared); los íconos son de Lucide, y src/index.css copia tal cual los tokens de site/marca/tokens.css, en claro y en oscuro. Reemplaza la decisión de conservar MUI y, con ella, el selector de fecha de MUI X con dayjs del 2026-10-31, que sale con MUI y Emotion al cerrar la migración. Mientras dura la iteración conviven los dos kits con un solo tema.

  11. Formularios en el teléfono (iteracion-28): un formulario corto sube en el cajón inferior del kit; uno largo —el armador de la cotización, el registro de personal, «Pagar a…»— ocupa la pantalla entera, como antes (excepción POP-D01 de la Visual Spec).

  12. Coexistencia de MUI y shadcn/ui mientras dura la migración (iteracion-28): una ventana del kit que se dibuja dentro de un diálogo de MUI se monta dentro de él, y un menú de MUI dentro de un formulario del kit se monta dentro del formulario, para que la trampa de foco de cada kit no expulse a la otra; las barras de MUI quedan debajo de las ventanas del kit. Es temporal: sale con MUI al cierre de la migración.

  13. Carpetas del frontend con shadcn/ui (iteracion-28): src/components/ui/ queda solo para las primitivas que escribe el CLI de shadcn (fijado en shadcn@4.23.0, estilo new-york, íconos lucide) y el kit propio de la app —listas por páginas, diálogos de formulario y de confirmación, selector de catálogo, campo de fecha, cifras, fichas de estado, encabezados y tarjetas— vive en src/components/shared/, hecho con esas primitivas. Paginator y usePagination siguen en ui/ hasta que salgan con el lote 7. Las primitivas importan cn() de src/lib/utils (clsx + tailwind-merge): el paquete cn que pide el CLI no está en la lista aprobada.

  14. Motor del tema con shadcn/ui (iteracion-28): el modo claro, oscuro o del sistema lo sigue guardando el store de la app (itzaka-theme) y lo marca el atributo data-theme de <html>, que pone el script de arranque de index.html antes de pintar; Tailwind lo lee con @custom-variant dark y el bloque oscuro de src/index.css es :root[data-theme='dark'], con los valores del .dark de site/marca/tokens.css. No se usa next-themes: escribe su propia llave y su propio script en línea, y cambiar el script de arranque cambiaría el hash que permite la política de seguridad de contenido. Los toasts y las gráficas leen el mismo modo; mientras convivan los dos kits, MUI y shadcn muestran un solo modo.

  15. Zona horaria de negocio: TIME_ZONE sigue en UTC para guardar y comparar momentos; BUSINESS_TIME_ZONE (America/Mexico_City por omisión, del entorno) decide el día y el mes de negocio: el mes en curso de los ingresos de Inicio y el tope diario de fotos de plano. Una zona que no existe no deja arrancar el backend.

  16. Las llaves de caché de los límites (el cierre del login del admin por usuario, el límite por cuenta y la cuota de códigos) pasan de HMAC-SHA1 a HMAC-SHA256: al desplegar, los contadores vigentes se reinician una vez (sus ventanas duran a lo más una hora). Se acepta: una llave HMAC no se migra sin el valor original.

  17. CSRF del backend en Vercel: los hosts *.vercel.app que Vercel da al despliegue siguen siendo hosts permitidos, pero como orígenes de confianza solo en Preview, mientras develop viva en *.vercel.app sin el DNS de itzaka.com; producción, y un despliegue sin VERCEL_ENV, confía solo en los orígenes exactos configurados. Cuando develop esté en dev.itzaka.com y api-dev.itzaka.com se quita también de Preview.

  18. vite-plugin-pwa sube de 0.21.2 a 1.0.1, la primera versión estable que declara Vite 7; el service worker y el manifest salen idénticos byte a byte. Aprobada por la persona el 2026-10-31.

  19. Selector de fecha del kit en Itzaka, que conserva MUI: @mui/x-date-pickers 9.16.0 (MIT), la misma versión que @mui/x-charts para compartir @mui/x-internals, con el adaptador dayjs 1.11.23 (MIT), el más ligero de los que ofrece MUI X; el proveedor de localización va en la app con es-MX, la semana desde el lunes (como pide el estándar del kit, aunque el calendario de México empieza en domingo) y los textos en español. Aprobada por la persona el 2026-10-31.

  20. El acceso con el campo trampa lleno responde 401 como unas credenciales equivocadas, no un 2xx sin sesión; Referrer-Policy de la API queda en same-origin, más estricta que la de la skill. Decisión técnica de iteracion-26 #17 y #18.

  21. Con RLS (iteracion-26 #22) el panel de administración ve y edita solo la empresa de quien entra; leer todas las empresas exige el permiso auditado accounts.view_all_companies y es de solo lectura; is_staff nunca amplía el alcance. Decisión técnica de iteracion-26 #22.

  22. El registro abre una sesión sin verificar y verificar el correo entra a la aplicación (la opción que da la skill); la sesión sin verificar solo alcanza su cuenta, el código y salir. Recuperar la contraseña sigue sin abrir sesión. Decisión técnica de iteracion-26 #12 y #14.

  23. La huella de .gitleaksignore (src/common/tests/test_recaptcha.py, iteracion-12) es una contraseña de prueba inventada: se registra como exención «no es un secreto», sin rotación. Decisión de la persona, 2026-10-31 (iteracion-26 #28).

  24. vite sube de 6.4.3 a 7.3.7, el piso verificado de la skill, sin cambiar @vitejs/plugin-react ni vitest, que ya lo admiten. Decisión de la persona, 2026-10-31 (iteracion-26 #27).

  25. Itzaka se queda en django 6.1 (6.1.2 sin avisos publicados); el piso de la skill (5.2 LTS) no aplica mientras 6.1 tenga soporte. Decisión de la persona, 2026-10-31.

  26. FE-01 deja la excepción de mismo origen registrada en iteracion-25: la SPA llama a la API en su subdominio con VITE_API_URL, obligatorio en los builds de Vercel, y vercel.json ya no reenvía /api (iteracion-26 #9).

  27. Dominios de producción: la aplicación en https://itzaka.com y la API en https://api.itzaka.com; develop en https://dev.itzaka.com y https://api-dev.itzaka.com. La cookie CSRF lleva Domain=.itzaka.com (develop: csrftoken_dev) y las cookies de sesión quedan solo en el host de la API. Los valores salen de variables de entorno. Decisión de la persona, 2026-10-31.

  28. Los secretos de los backends viven en Infisical: el backend de Itzaka tiene el proyecto itzaka-backend con los entornos dev (servidor y manage.py en local), test (pruebas con la base de Neon, sin PostgreSQL local), preview (develop en Vercel) y prod (main en Vercel). Hay una sola DATABASE_URL por entorno y Vercel recibe preview y prod por la sincronización de Infisical. El repositorio guarda solo nombres (src/core/.env.example) y .infisical.yaml, sin ramas asignadas a entornos. Los agentes leen solo dev y test con una identidad de máquina y nunca crean ni cambian un secreto. El flujo deja de crear bases de datos y de capturar variables a mano para desarrollar o probar. (Pedido de la persona para la iteración 26, 2026-10-31.)

  29. El backend usa solo DATABASE_URL; se retiran DATABASE_URL_UNPOOLED y DATABASE_URL_MIGRATIONS (decisión de la persona, 2026-10-31): la función y el build de Vercel usan la misma conexión de cada entorno, y el buildCommand, que migra y crea la tabla de caché con ella, no pasa de 256 caracteres.

  30. La SPA llama a la API por el mismo origen /api (vercel.json y vite.config.ts la reenvían) en lugar de VITE_API_URL, para que las cookies HttpOnly de la sesión sean del sitio: excepción a react-frontend-conventions axios-api-layer.md registrada en tecnico/infraestructura.md (FE-01, iteración 25).

  31. Se conserva la suite de humo local en e2e/ del frontend (Playwright sobre el build con la API simulada por page.route, sin credenciales: el editor de planos, los niveles adaptativos y los flujos principales); la suite de staging vive en testing/playwright/ y se crea a demanda con la plantilla de qa-tdd-testing (QA-05; aprobado en el alcance «Todo + gate» de la persona, 2026-10-30).

  32. Sin .github/CODEOWNERS en los repos de código: excepción «una sola cuenta» registrada en tecnico/infraestructura.md (una sola cuenta abre y fusiona los PR; require_code_owner_reviews con enforce_admins bloquearía todo merge). La revisión de los archivos de gate queda en gate_guard.py y en la aprobación en el chat. Decisión de la persona en el chat (2026-10-30), iteración 25 (GIT-01).

  33. Excepción al contrato de errores (ERR-B01, django-backend-conventions api-lists-errors.md §5): la API conserva el code «phone_not_verified» de la cuenta sin verificar (apps/accounts/services.py) en lugar de «email_not_verified», y la SPA lo sigue leyendo con isPhoneNotVerified; cambiarlo rompería un contrato publicado sin beneficio para el usuario. Decisión de la persona en el chat (2026-10-30), iteración 25.

  34. La marca pasa de Cuotreka a Itzaka (de itztli, obsidiana en náhuatl), una solución de Grupo Torres Muciño: el nombre anterior se pronunciaba mal («cuo» se leía «cou»). Manual de marca v2.0: logo de talud-tablero sin texto, paleta de piedra con obsidiana como primario y tezontle como acento, y el nombre escrito «ITZAKA» en Inter 800 junto al símbolo. Cuotreka y presuplano quedan como nombres anteriores que no se usan en piezas nuevas.

  35. Del plan de diseño del 2026-10-22 entran a la iteración 19 ADP-F01 y PRO-05. El resto del plan, y la tabla de las listas en mediano, se revisa con la auditoría de diseño al cerrar la 19, y lo que siga pendiente se programa en una iteración con número.

  36. Niveles en MUI: compacto por debajo de 600 px, mediano de 600 a 899 y expandido desde 900 (1200 y 1536 afinan columnas y ancho). Riel de 80 px de 600 a 1199 px y barra lateral fija de 240 px desde 1200, en lugar de la barra superior. Contenedor de página de 1100 px (720 px para una sola tarea). Fuente: producto/5.0_Visual_Spec_Pantallas.md.

  37. La iteración 19 es la de diseño adaptativo (Visual Spec por nivel; ADP-F01 y PRO-05 de la auditoría de diseño del 2026-10-22), como pidió la persona responsable; la iteración de seguridad pasa a ser la 20.

  38. La iteración 18 es el arreglo de producción 3.8.1 (abrir una lista hace una sola petición): un arreglo sobre lo que ya está en producción es su propia iteración. La iteración de seguridad acordada pasa a ser la 19.

  39. GATE PROPUESTA de la iteracion-17 aprobada por el usuario («Sí: apruebo los 10 puntos del contrato de listas en la iteración 17 (3.7.2 → 3.8.0). La iteración de seguridad aprobada pasa a ser la 18.»). Iteración 17: contrato de listas y acciones en lote (10 items cambio). Iteración 18: los 10 puntos de seguridad aprobados el 2026-10-22, antes numerados 17. El resto de los planes de desarrollo, diseño y SEO del 2026-10-22 sigue sin iteración y se propone al cerrar la 18.

  40. iteracion-10 AUDITORÍA DE DESPLIEGUE de los tres proyectos: frontend y docs adoptan git.deploymentEnabled de sus assets (frontend: main y develop; docs: main, propuesta y adopcion; todos con "**": false). El backend ya cumplía (iteracion-9). El rewrite del frontend vuelve a /(.*) sin la excepción /develops/. Los ajustes del repo (borrar ramas al mergear, sólo merge commits), la retención y el borrado de previews quedan del usuario.

  41. iteracion-9 TEC Configuración de despliegue en Vercel: sólo main y develop despliegan; la clave de functions es wsgi.py (entrypoint de [tool.vercel]); el build es uv sync --frozen --no-dev + migrate, sin collectstatic. OpenCV y numpy (~210 MB, US-129) siguen en el bundle (~305 MB, bajo el límite de 500 MB); la alternativa queda en tecnico/decisiones/2026-10-14-opencv-en-el-bundle-del-backend.md

  42. iteracion-8 #3: en el teléfono el editor ofrece Foto a plano (cámara o galería, sin capture), Validar medidas, Asignar materiales, Cotizar, Deshacer y Guardar; el dibujo sigue en escritorio y el lienzo del teléfono no arrastra nada. Al abrir un recorrido el lienzo sube a la vista (con espacio abajo para la pregunta) y los avisos salen arriba. La conversión en cotización va a pantalla completa en pantallas angostas, con el precio bajo la cantidad.

  43. iteracion-8 #2: el fondo guarda realScale (lo marcan la lectura con escala, la ronda y «Escalar») y measures (grosor exterior, interior y altura que aplicó la ronda); «Validar medidas» repite la ronda sobre lo convertido sin las cotas leídas (la referencia es el muro más largo si aún no hay escala). En el paso de grosor y altura queda resaltado el último elemento preguntado.

  44. iteracion-7 #3: «Asignar materiales» vive en el panel (sección MATERIALES, siempre visible) porque la barra superior ya no tiene sitio a 1280 px; el recorrido es del nivel activo; elegir un servicio usa la medida por omisión de su unidad (US-94: una cara del muro, superficie de piso); lo elegido se aplica al terminar, en un solo «Deshacer».

  45. iteracion-7 (propuesta): las medidas se buscan con una lectura rápida de IA sólo de las cotas tras la limpieza; basta una cota horizontal y una vertical legibles; si falta alguna, el cuestionario pide sólo esa. Cerrar el cuestionario no gasta una foto del tope diario.

  46. iteracion-7 (propuesta): cuando la escala se conoce antes de la IA (cotas legibles o ancho y alto del cuestionario), la ronda se salta la pregunta de escala y empieza por el primer muro.

  47. iteracion-7 (propuesta): «Asignar materiales» asigna servicios del catálogo (los de US-94), no texturas; recorre muros y pisos, no puertas ni ventanas.

  48. iteracion-6 #4: corregir un muro en la ronda lo estira (todo lo convertido en o más allá de su extremo se desliza a lo largo del muro, tolerancia 5 cm); lo unido lo sigue a escuadra y las aberturas conservan su sitio. Una respuesta a menos de 5 mm de lo que mide no cambia nada; sólo se envían las respuestas tocadas. «Omitir el resto» aplica lo respondido antes de la pregunta en curso, con grosor y altura por omisión.

  49. iteracion-6: el usuario confirma que ANTHROPIC_API_KEY ya está configurada en Vercel y que OTP_UNIVERSAL_CODE de producción es propio, distinto del de por omisión del repo.

  50. iteracion-6: la habitación elegida se marca en ámbar (warning #B26A00 de la marca), con tinte en su superficie, para distinguirla del azul de un elemento elegido suelto.

  51. iteracion-6: la ronda pregunta por cada muro y cada puerta o ventana (no por cotas ni habitaciones); la primera respuesta (cota leída o muro más largo) da la escala y las demás corrigen ese elemento: el muro mueve su extremo final y los muros unidos lo siguen; la abertura cambia su ancho. Se puede «Omitir el resto».

  52. 3.0.0: GATE REGRESIÓN omitida por decisión del usuario («solo integra a dev y luego a main»); la integración la decidió el quality gate de CI. Merges a develop: backend 5941afc (#10), frontend 8297192 (#13, integrado por el usuario).

  53. iteracion-5: «Ajustar vista» y «Guardar vista» pasan a íconos junto a deshacer para que la barra superior quepa a 1280 px con «Foto a plano» y «Sin guardar».

  54. iteracion-5: la geometría de la conversión (unir esquinas, cerrar habitaciones sobre las puertas, escuadra, puertas y ventanas en su muro, cotas) vive en el backend (photo_geometry); el item #1 no necesitó cambios en el frontend.

  55. iteracion-5: el vínculo plano ↔ cotización lo lleva la cotización (Quote.plan, item #12); US-133 no necesitó más backend: las pantallas lo leen de las cotizaciones de la cuenta. El detalle de una cotización se abre por /quotes?cotizacion=<id>.

  56. iteracion-5: las puertas convertidas no guardan hacia dónde abren, porque el editor no modela el giro de una puerta; el arco dibujado sólo sirve para reconocerla.

  57. iteracion-5: 13 items (3 bugs, 6 cambios, 4 nuevas) superan 10, así que la versión proyectada es mayor: 2.36.0 → 3.0.0.

  58. iteracion-5: los muros convertidos a menos de 8° de 0°, 45° o 90° se enderezan a ese ángulo; los demás conservan el suyo.

  59. iteracion-5: el plano se arrastra con el clic derecho, el botón central o barra espaciadora + clic; un clic derecho sin arrastre (menos de 4 px) sigue cancelando.

  60. iteracion-5: la ronda de medidas tiene tres preguntas — longitud real del muro más largo (o confirmar la cota leída), grosor de muros exteriores e interiores, y altura de techo — y se aplica en un solo paso de deshacer.

  61. iteracion-5: recotizar un plano con cotización ligada en borrador la actualiza (las partidas del plano toman las cantidades nuevas, las manuales se conservan); si ya está «En proyecto» no se toca y se crea una nueva ligada al plano.

  62. iteracion-4 — US-129 suma un pulido de la foto con OpenCV en el servidor antes de la IA: corrección de perspectiva, recorte, escala, corrección de iluminación, reducción de ruido, contraste y binarización. La foto pulida (no la original) queda de fondo, para que los muros caigan exactos sobre ella; si no se encuentra el borde de la hoja, se sigue sin enderezar. Se decidió correrlo en el backend (opencv-python-headless) y comprobar en el preview de Vercel que la función cabe.

  63. iteracion-4 — GATE PROPUESTA aprobada: la foto de un plano en papel se convierte en muros y habitaciones con IA en el servidor (Claude con visión); el MVP no detecta puertas, ventanas, mobiliario ni cotas, y la escala la da el arquitecto con dos puntos. El tope es de 5 fotos por cuenta al día (se propusieron 20; el usuario lo bajó a 5 para contener el costo).

  64. v2.33.0 / 1.19.0 — La marca es CUOTREKA — El producto se llama CUOTREKA y su eslogan es «Del plano a la obra, todo conectado.». El nombre y el eslogan se escriben una sola vez en cada repositorio (src/brand.ts y common/brand.py) y de ahí los toman la interfaz, los documentos, los correos y la app instalada. El remitente de los correos toma el nombre de la marca y sólo la dirección de la variable del servidor. Se quedan a propósito el dominio, las llaves del navegador y el formato de los planos: cambiarlos cerraría todas las sesiones y dejaría huérfanos los planos guardados. Términos y privacidad pasan a la versión 2026-09-29, que dice que antes se llamaba presuplano; por eso cada cuenta los vuelve a aceptar.

  65. v2.34.0 — La página pública enseña la aplicación de verdad — La tarjeta del hero era una maqueta con un proyecto inventado y la sección de planos, un croquis hecho con cajas. Se reemplazan por capturas reales —las mismas de la auditoría, con datos de demostración y dicho así en la página—, recortadas y convertidas a WebP con scripts/landing-screens.mjs usando el Chromium de las pruebas. El encabezado ya no se parte en el teléfono: los botones ceden su texto a su ícono y conservan su nombre para lectores de pantalla. De paso se corrigen tres promesas que la aplicación no cumple: guardar y sincronizar sin señal, un «resumen de cierre» en PDF y la unidad «u».

  66. v2.32.0 / 1.18.0 — Términos, privacidad, cambios de cuenta y eliminarla de verdad — CUOTREKA no tenía términos ni aviso de privacidad. Se redactaron a partir del código —qué datos guarda cada modelo, qué proveedores lo sostienen (Vercel, Neon, Cloudflare R2, Resend), qué queda en el navegador— y del documento 20; lo que el código no dice, como la razón social y el domicilio del responsable, quedó marcado como pendiente en vez de inventarse. Viven en el repositorio con una versión: el registro exige aceptarla, y cambiarla se la vuelve a pedir a todas las cuentas con un aviso que no se salta. El perfil suma cambiar el correo —el nuevo espera su código y al viejo le llega un aviso—, cambiar la contraseña y eliminar la cuenta: se borra todo, filas y archivos del bucket, incluidos los que ninguna fila recordaba, sin anonimizar.

  67. v2.30.0 / 1.16.0 — Evidencia visible, historial de avances, borrado con reglas e instalar como app — La foto de obra se subía y no se volvía a ver: el proyecto no la devolvía y el botón sólo existía justo después de registrar. Ahora cada avance trae sus fotos, se adjuntan cuando lleguen y se reducen antes de subir —una foto de teléfono pasaba del límite de 4.5 MB por petición y se rechazaba sin aviso—. Los avances se revisan, corrigen y borran en pantalla. Clientes y servicios se borran sólo si no están en ninguna cotización, y la cotización sólo si no es proyecto: la regla vive en la API, que antes respondía 500 al tropezar con la protección de la base. Las partidas de la cotización se corrigen en su lugar, el alta de servicio desde la cotización pide la cantidad, y el menú ofrece instalar la app. De paso: los iconos de la app instalada estaban cortados a la mitad; se regeneran desde su fuente.

  68. v2.31.0 / 1.17.0 — La cuenta es su correo; observaciones, vigencia y documentos paginados — Se entraba con teléfono o con correo, pero al teléfono no había cómo mandarle un código: sólo el correo verifica, recupera y recibe los comprobantes. La cuenta pasa a ser su correo y el teléfono deja de ser suyo —no había cuentas en producción, así que la columna se quita en vez de arrastrarla—; el teléfono y el correo que salen en los documentos son ahora los de la organización, y sin ellos no sale nada. La cotización gana observaciones y sus propios días de vigencia (20 por omisión), y los documentos cambian de forma: el pie numera cada hoja en lugar de decir «Generado con CUOTREKA», nada escribe encima del pie —las tablas y las notas largas pasan de hoja— y la vigencia y el aviso informativo cierran la cotización al pie de su última hoja. La unidad «Unidad» se llama «Por lote (único)».

  69. v3.0 — Reconstrucción del backlog sobre el proyecto vivo — Se cruzaron el backlog existente, los CHANGELOG de los dos repositorios y un recorrido del código —modelos, endpoints, rutas y pantallas—. Ocho historias que vivían en los tests y nunca habían llegado al backlog quedan registradas con su id original; trece historias ya existentes reciben el escenario que dejó la incidencia que las tocó.

  70. v3.0 — Auditoría de cobertura real — 105 de 106 historias tienen prueba localizada. US-48 —barra de elementos y catálogo de mobiliario— sólo cubre uno de sus seis escenarios y queda como candidata a tests de caracterización. A nivel de escenario, 592 de 660 tienen caso atribuible.

  71. US-02 — El teléfono deja de ser una vía de entrada — El negocio retira el registro y el acceso por teléfono; la identidad pasa a ser el correo. El código todavía admite ambos, así que la historia queda por cambiar y no por probar.

  72. US-107 — El correo se confirma antes de entrar — Una cuenta con correo lo verifica antes de abrir sesión: el intento manda el código solo y la pantalla lleva a escribirlo, apuntando al canal por donde llegó y no al que se tecleó.

  73. US-105 — Resend por su API HTTP, no por el mailer — En serverless no hay conexión SMTP que sostener y una llamada HTTPS es lo único que la plataforma siempre permite. El cliente se presenta con nombre propio porque la protección del proveedor cortaba las peticiones sin identificar.

  74. US-106 y US-102 — Ningún documento sale sin marca — Con membrete configurado, el logotipo del despacho; sin él, el de CUOTREKA, dibujado en la tinta que se lee sobre la banda. El logotipo lo entrega la propia API en bytes: el navegador no puede bajarlo del almacenamiento, que es otro dominio y no autoriza la descarga.

  75. Incidencia transversal — Los formularios con archivo — Todas las peticiones salían declaradas como JSON, así que un formulario con archivo viajaba sin su delimitador. Rompía en silencio la subida del logotipo, de las texturas y de las evidencias de avance.

  76. US-88, US-99 y US-24 — Correcciones de uso en el teléfono — Las guías apuntaban a la barra de escritorio, apagada por CSS en el teléfono, y ahora abren «Más». Cada cifra del inicio pasa a su propia tarjeta, distinguible del fondo. En la barra del teléfono, Planos ocupa el lugar de Personal.

  77. v2.19.0 — La aplicación enseña a usarse — Registrar un cliente, registrar un servicio y crear una cotización son los tres pasos con los que arranca cualquier cuenta, y hasta ahora se aprendían a base de tocar. Ahora hay tres guías que se recorren sobre las pantallas de verdad: oscurecen todo menos el elemento del paso, explican qué hacer y esperan a que el arquitecto lo haga. No escriben nada por él y no terminan con un clic, sino con el alta real —si la validación detiene el envío, la guía se queda en el formulario—, de modo que lo que queda guardado al terminar es un cliente suyo, no un ejemplo. El motor es propio en vez de Driver.js: los tres flujos ocurren dentro de diálogos de MUI, que esconden de los lectores de pantalla todo lo que queda fuera y devuelven el foco hacia adentro, así que la guía se dibuja dentro del diálogo al que señala. El progreso vive por usuario en el navegador y cada guía tiene versión: cambiarla de fondo la vuelve a ofrecer a quien ya la había visto.

  78. v2.20.0 — El alta no se queda a medias — Crear la cuenta dejaba un aviso —«verifica tu teléfono»— con un botón que había que tocar para seguir: un paso de más en un camino que no tiene bifurcación. Ahora el registro lleva solo a la pantalla del código, y verificar lleva solo al acceso, que es donde se cuenta que la cuenta quedó activada. Lo segundo era peor: si el código no llegaba, no había nada que hacer —registrarse otra vez falla porque el teléfono ya existe—, así que se agregó el reenvío, con una espera de un minuto entre intentos para que una red callada no se convierta en diez mensajes; si el reenvío falla, no hay espera, porque insistir es justo lo que hay que poder hacer. El mismo botón sirve en la recuperación de contraseña, donde pedirla otra vez es exactamente reenviar el código.

  79. v2.21.0 — Entrar sin verificar lleva a verificar — Una cuenta registrada y no verificada chocaba con el mismo error rojo cada vez que intentaba entrar, y desde ahí no había nada que hacer. Ahora el acceso manda el código otra vez y la pantalla lleva a escribirlo, igual que al registrarse, con un aviso que explica por qué se acabó ahí quien esperaba entrar a la aplicación. Para distinguirlo de una contraseña equivocada, el servidor marca ese 403 con un código propio —phone_not_verified— en vez de dejar que la pantalla compare el texto del mensaje, que se rompería el día que cambie la redacción.

  80. v2.22.0 — La aplicación también se ve de noche — Los tokens oscuros existían desde el rediseño, pero no los usaba nadie: la paleta estaba escrita y la aplicación seguía siendo clara. Ahora los dos temas salen de la misma función, así que no hay una segunda hoja de estilos que se pueda separar de la primera, y se elige desde el menú de la cuenta; sin elegir nada se sigue al teléfono. Tres superficies no cambian, porque no son interfaz: el papel de los documentos —que se imprime y se comparte—, el lienzo del editor de planos y el blanco sobre el azul de la marca. Lo que costó trabajo no fue el tema sino encontrar lo que se quedaba claro: la landing se pintaba importando la paleta clara por su nombre, y la vista previa del membrete tomaba del tema un texto casi blanco que sobre el papel desaparecía. Dos pruebas guardan eso: ninguna pantalla escribe un blanco a mano ni importa la paleta clara.

  81. v2.23.0 — Los planos viven en la cuenta (etapa 1 de 4) — Primera etapa del programa que lleva del plano a la cotización (docs/19). Los planos vivían en el almacenamiento del navegador que los dibujó, así que el de la computadora no existía en el teléfono de la obra. Ahora viven en la cuenta. El editor sigue siendo local-first a propósito: la obra es donde se dibuja y donde falla la señal, así que guardar escribe primero en el dispositivo —siempre, al instante— y enseguida sube; si no puede, queda pendiente y sube al volver la señal. De un mismo plano en dos sitios gana la fecha que estampó el editor, no la del servidor, para no depender de dos relojes. Y un plano que el servidor no tiene se distingue de uno borrado en otro dispositivo por si este ya lo había subido: sin esa distinción, borrar en un teléfono lo resucitaba en todos. Quedan dos límites declarados: el documento tiene tope de 4 MB porque las texturas sueltas y el escaneo de fondo viajan dentro, y las mallas importadas siguen siendo del dispositivo que las importó.

  82. v2.24.0 — Trabes y columnas (etapa 2 de 4) — Segunda etapa del programa de docs/19. El editor sólo conocía muros, habitaciones y aberturas, y la cuantificación que viene necesita contar estructura: metros lineales de trabe, piezas de columna y metros cúbicos de concreto. Se dibujan con el patrón que ya existía —la trabe como un muro, con cadena y magnetismo; la columna de un clic— y se comportan como todo lo demás: capa propia que se apaga junta, nivel, deshacer, borrado y guardado. En planta se leen como en un plano de verdad: las trabes punteadas, porque pasan por encima del plano de corte, y las columnas macizas, porque el corte las atraviesa. Y al seleccionar gana la estructura sobre el muro de abajo: una trabe corre justo encima de uno y una columna cabe dentro de su grosor, así que con el orden contrario no habría forma de tocarlas. El formato del plano sube a la versión 3; los planos anteriores se migran solos con la estructura vacía.

  83. v2.18.1 — Un título por pantalla — Servicios, Clientes y Cotizaciones repetían el título de la pantalla dentro de la tarjeta de la lista —«Servicios» arriba y «Tu catálogo» cuatro renglones abajo—, algo que Proyectos y Planos no hacían desde que se rehicieron. Las tres se homologan con ellas: la tarjeta guarda la barra de búsqueda y la lista, y el título vive una sola vez, fuera. El armador de cotizaciones conserva el suyo porque no repite nada: nombra una sección distinta. De paso, el «Total» del armador y su importe dejaron de ser encabezados de verdad: se veían como titulares por tamaño, pero marcados como h3 y h2 hacían que un lector de pantalla los anunciara como secciones de la página.

  84. v2.18.2 — Crear algo se siente igual en toda la aplicación — Cotizaciones era la única pantalla donde dar de alta ocurría en una tarjeta al pie en lugar de un diálogo, y se notaba: el resto de la aplicación abre un modal y esa no. El armador pasa a diálogo —pantalla completa en el teléfono, porque un modal con scroll propio dentro de 412 píxeles deja al dedo dos áreas de desplazamiento y ninguna clara—, «Editar» abre ese mismo diálogo ya cargado, y cerrar deja el armador en limpio. Al moverlo salió a la luz un defecto que llevaba tiempo en el componente compartido: el `padding-top` del contenido de todos los diálogos nunca se aplicó, porque MUI lo fija con una regla de hermano que gana en especificidad a un `sx` suelto; la etiqueta flotante del primer campo quedaba cortada contra el título. Se arregla nombrando la clase, y con ello se corrigen también los diálogos que ya existían.

  85. v2.17 — Los filtros, detrás de un embudo — La barra de listas resolvía el problema de encontrar algo, pero se llevaba por delante el espacio: buscador, selector de orden, cinco chips de unidad y el conteo sumaban más de doscientos píxeles antes de la primera fila, en una pantalla de teléfono donde esa primera fila es lo que se venía a ver. Ahora solo el buscador está siempre a la vista, con un embudo al lado que despliega el orden y los filtros cuando se piden. Dos detalles que no son adorno: el embudo se marca —borde, fondo y punto— mientras haya un filtro puesto, porque un filtro activo que no se ve convierte una lista filtrada en una lista que parece haber perdido registros; y el conteo solo aparece cuando se ha buscado o filtrado, ya que con la lista entera a la vista repetía lo que el paginador dice mejor.

  86. v2.18 — Auditoría de conversión: lo construido, lo invisible y la puerta sin llave — Una auditoría de la página pública contra el sitio real —HTML servido, robots, rutas y formularios— dejó tres cosas encima de la mesa, y ninguna era de copy. La primera: el editor de planos 2D/3D llevaba meses construido y la página no lo nombraba ni una vez; es la única función que ningún «cotizador» de la competencia tiene, y comunicarla no costó más que una sección. La segunda: nadie podía recuperar su contraseña. No existía la pantalla ni el endpoint, así que quien la olvidaba quedaba fuera para siempre —y tampoco tenía a quién escribirle, porque la página no ofrecía ningún contacto—. Se recupera con el mismo código que verifica el teléfono; pedirlo responde igual exista o no la cuenta, para no convertir el endpoint en un detector de clientes. La tercera: el sitio era invisible. Sin Open Graph el enlace compartido por WhatsApp —que es como circula el software entre arquitectos— se veía como texto pelado; robots.txt devolvía el HTML de la aplicación; no había sitemap ni datos estructurados; y el cuerpo estaba vacío, de modo que un rastreador que no ejecuta JavaScript no leía una palabra. Se resolvió lo que se resuelve sin renderizado en servidor: etiquetas sociales con una imagen propia de 1200×630 generada para eso, canonical, robots y sitemap de verdad, JSON-LD y un bloque legible sin scripts. El renderizado en servidor queda pendiente y declarado como tal: publicar robots y sitemap le dice al buscador dónde mirar, no le da qué leer. Y la página ganó una salida para el 95 % que no se registra hoy: un formulario de contacto que pide lo mínimo con lo que se puede devolver la llamada.

  87. v2.12 — Un documento no es un estado — El PDF de una cotización se construye a partir de ella cada vez que se abre, así que existía desde el primer momento y se rehacía solo con cada edición: «documento generado» no describía la cotización, describía que alguien había pulsado un botón — y encima le prohibía corregirla. El estado pasa a decir en qué punto está el trato: borrador hasta que hay obra midiéndose contra ella. Con ello, iniciar un proyecto se hace donde se decide, en el detalle de la cotización, y la lista de proyectos deja de ser un taller con todos los formularios dentro para ser una tabla que lleva a la pantalla de cada uno.

  88. v2.13 — Cada cosa en su sitio — Tres reparaciones del mismo tipo: algo que estaba amontonado pasa a tener su lugar. El detalle del proyecto se reparte en secciones y el cierre sale de las tarjetas, porque no es una acción más sino el último paso. Salir deja de estar suelto en la barra —a un dedo de cualquier toque— y se guarda en un menú de cuenta junto al perfil, que necesitó un `GET /auth/me` porque la sesión solo llevaba el teléfono. Y las pantallas públicas ganan una fotografía de obra bajo el azul de la marca: fuerte como panel en el escritorio, casi blanca como fondo en el teléfono, que es donde los campos tienen que seguir siendo lo único que se lee.

  89. v2.14 — El papel es del despacho, no de la herramienta — Los documentos salían firmados por «CUOTREKA» y un teléfono, con el título pisando la banda de color: el sitio donde va el nombre de quien cotiza. Ahora la cuenta guarda su membrete —nombre y color— y ese color pinta la banda, los encabezados de las tablas y el total; CUOTREKA se firma debajo, en chico, con «Optimizado por CUOTREKA». El título baja a la parte blanca, donde se lee como título y no como parte del logotipo, y el encabezado se dibuja desde un solo lugar para los tres documentos, con folio, cliente y fecha de emisión en el mismo sitio. Todos llevan al pie la fecha y hora en que se generaron, porque una copia impresa hace un mes y otra de hoy no dicen lo mismo. Y el papel de una cotización deja de llamarse «nota de venta» —que es el nombre de una venta ya hecha— para titularse «COTIZACIÓN» y decir de frente que no representa un acuerdo ni un contrato, que no obliga a nadie y que los precios pueden cambiar. Si el arquitecto elige un color claro, el texto del encabezado se escribe en oscuro: la letra chica de este cambio es que un membrete propio no puede volver ilegible el documento.

  90. v2.15 — Listas que se recorren, y una pantalla que volvió a casa — Tres arreglos de uso. El primero es una fuga pequeña y molesta: al crear un servicio desde la cotización, el precio que se acababa de escribir no aparecía en la partida, porque se le buscaba el precio por su identificador a una lista que todavía no lo contenía —el servicio existía en el servidor, no aún en la pantalla—; ahora el servicio recién creado trae su precio consigo. El segundo es que ninguna lista se paginaba: se dibujaban enteras, por largas que fueran, y no había forma de saber cuántas filas había. Todas comparten ahora el mismo pie —cuántas se ven, de cuántas, y cómo llegar al resto—, construido sobre paginación numerada en lugar del pie de tabla de MUI, que no cabe en un teléfono; el selector de filas por página solo aparece de tableta en adelante, y si la página en la que estabas se queda sin filas, la lista retrocede sola en vez de quedarse en blanco. El tercero es que el listado de planos parecía de otra aplicación: una rejilla de tarjetas con su propio botón de «Volver», heredada de cuando el editor vivía aparte. Vuelve al armazón de la aplicación —barra arriba, navegación abajo, encabezado y tabla como proyectos— sin perder la frontera que importa: el listado es una pantalla ligera y el editor, con sus 1.4 MB de dibujo 2D y 3D, sigue cargándose solo al abrir un plano y sigue fuera del precaché del teléfono.

  91. v2.16 — Auditoría de UX: encontrar antes que crear — Una revisión pantalla por pantalla, con capturas a 412 y a 1280 píxeles, encontró tres problemas de fondo y ninguno era de estilo. El primero: el orden. Servicios, Clientes y Cotizaciones abrían con el formulario de alta —hasta novecientos píxeles de campos vacíos en un teléfono— y la lista empezaba debajo, cuando consultar es lo que se hace muchas más veces que dar de alta; ahora la lista va primero y el alta se abre desde el encabezado, en un diálogo. El segundo: no había forma de encontrar nada. Ninguna lista tenía buscador, filtro ni orden, así que con más de una página solo quedaba pasar páginas; ahora todas comparten una barra con búsqueda que ignora acentos, filtros como chips, orden con criterio propio de cada pantalla y el conteo de lo que quedó —y una búsqueda sin resultados lo dice, en lugar de fingir que la lista está vacía. El tercero: el escritorio. El design system describía desde el principio un patrón DataList —apilado en el teléfono, tabla a partir de md— que ninguna pantalla implementó, de modo que en 1280 píxeles se veía una columna estrecha con el nombre a un palmo del importe; ahora las cinco listas declaran sus columnas una sola vez y se dibujan en la forma que toca, solo una de las dos, porque tener las dos en la página hacía que un lector de pantalla leyera cada dato dos veces. De paso se fue el mosaico de icono repetido en cada fila del catálogo, que no distinguía un servicio de otro y se comía el ancho por el que los nombres salían truncados; las cotizaciones ganaron la fecha que les faltaba para saber cuál es la última; y en el detalle del proyecto los indicadores pasaron de tres a dos para que un importe de seis cifras quepa, con el porcentaje junto a su barra, y la fila de un cobro se lee ahora por su importe y no por su fecha.

  92. v2.9 — Servicios, y el precio que de verdad se negocia — El término cambia en el producto y en este backlog, pero no en la API: el recurso sigue siendo `tariffs` porque renombrarlo rompería a cualquier cliente instalado sin que nadie gane nada, y una ruta vieja (/tariffs) redirige a la nueva para no invalidar enlaces guardados. El precio ajustable se guarda en la partida, nunca en el catálogo: una negociación no cambia lo que se cobra al siguiente cliente. Y cuando se escribe el importe total, el precio por unidad se redondea a centavos y el importe se vuelve a cuadrar con él, porque mostrar 100 cuando se van a facturar 99,99 es mentir en el documento.

  93. v2.10 — Un 404 en toda la API, y lo que enseñó — La API respondió 404 a todo con 86 pruebas en verde: el fallo no estaba en el código sino en el enrutado del despliegue. Vercel pasó a entregar a la aplicación la ruta ya reescrita, así que el rewrite `/(.*)` → `/api/index` hacía que Django resolviera siempre esa ruta inexistente. Se quita el rewrite, se le declara a Vercel qué instancia WSGI servir, y la suite del backend importa ese entrypoint como lo hace Vercel y comprueba que rutas reales de la API y del admin resuelven: lo que ninguna prueba bajo src/ podía ver, ahora lo ve una. Del lado de la aplicación, el aviso de error dejó de mostrar el cuerpo de la respuesta cuando ese cuerpo es una página web — se enseñó HTML a un arquitecto en su teléfono — y se conserva el código del fallo en la frase, porque es lo que permite reportarlo.

  94. v2.11 — Seis decimales para que el total sea el total — Un precio por unidad con dos decimales no puede representar un total acordado que no se reparte en centavos: 32 000 entre 15 son 2 133,333333, y redondear ahí dejaba la partida cinco centavos por debajo de lo pactado. El precio pasa a seis decimales —los que admite el valor unitario de un CFDI, que nace del mismo problema— y el redondeo a centavos se hace una sola vez, sobre el importe de la línea, que es lo que de verdad se factura. En pantalla y en el PDF el precio se muestra con los decimales que tenga, porque si no la fila no cuadraría con su propio importe.

  95. v2.5 — Las bibliotecas reales, leídas como son — Un catálogo de Sweet Home 3D nombra sus archivos desde la raíz de la biblioteca, con barra inicial, mientras el ZIP los guarda sin ella: normalizar esa ruta es lo que hacía falta para que el mobiliario importado dejara de dibujarse como cajas. Las bibliotecas de prueba se construyen desde ahora como las reales, con esa barra. Se admiten además los .sh3t de texturas, cuyo catálogo declara el tamaño real de cada baldosa, y las imágenes de biblioteca —de mobiliario o de textura— viven en el almacén de la cuenta mientras el plano guarda solo la referencia.

  96. v2.6 — El plano se lee por la forma de las cosas — En planta el mobiliario deja de ser un rectángulo y pasa a dibujarse con el modelo visto desde arriba, renderizado en proyección ortográfica —que es exactamente lo que una vista en planta es— una sola vez por modelo y con un único renderizador compartido, porque un navegador admite un puñado de contextos WebGL. Una abertura pasa a ganarle al muro que la aloja al hacer clic, sin lo cual no había forma de corregir una puerta ya colocada, y el objeto gana giro, elevación y medidas.

  97. v2.7 — El plano se recorre, no solo se mira — El visitante virtual se guarda con el documento porque forma parte de cómo se presenta el diseño, no del estado pasajero de la vista, y mientras nadie lo coloca se supone uno de pie en medio de lo dibujado. Su ángulo se lee como el norte: 0° hacia arriba del plano y creciendo con las agujas del reloj. Andar con las flechas no se apunta al historial —mover una cámara no es dibujar—, mientras que colocarlo desde el plano sí.

  98. v2.8 — El imán ayuda, no decide — Pegar el mobiliario a lo que tiene al lado solo ocurre en los gestos gruesos —colocar con el ratón y arrastrar—, nunca al mover con las flechas: si el imán actuara también ahí no quedaría ninguna forma de poner algo exactamente donde se quiere. El muro gana sobre la pieza vecina porque apoyarse en él además cuadra la pieza con su dirección. Y la herramienta de contorno se parte en dos en vez de levantar siempre los muros, porque una superficie suelta —una terraza, un desnivel— es un dibujo legítimo; la habitación se salta el lado que ya tiene muro para que dos habitaciones contiguas compartan la pared en lugar de solaparla.

  99. v2.2 — Correcciones nacidas del uso del editor — El muro deja de dibujarse como línea gruesa y pasa a dibujarse como forma, con las esquinas cortadas en inglete. Las dos caras del muro se mantienen separadas hasta la malla, y el color en planta y el del coronamiento pasan a ser propios del muro y no préstamos de una cara. Solo se edita el nivel activo: los inferiores se tienden tenues como guía y los superiores no se dibujan. El editor gana importación de mobiliario y salida con aviso. La etapa 2, el vínculo plano→cotización, sigue en pausa.

  100. v2.3 — Texturas y modelos llegan en paquete — Las texturas y los modelos se importan en lote: un .zip de imágenes entra entero con un único tamaño real de baldosa, y un .zip de mallas sueltas deja de exigir el catálogo de Sweet Home 3D. Un muro inclinado pasa a construirse en dos mitades para que cada cara conserve su acabado, y la vista 3D conserva su búfer de dibujo, que es lo que la exportación a PNG necesitará.

  101. v2.4 — El editor enseña lo que tiene y entrega imágenes — Una biblioteca importada pasa a guardarse entera —mallas, materiales y miniaturas— en un almacén propio, porque el almacenamiento web no admite ni ese volumen ni esos bytes; el modelo se dibuja entonces con su forma real y se encaja en el hueco que su ficha declara. US-37 y US-38 quedan terminadas de verdad: constaban en verde desde v2.0 con solo su dominio escrito, y ahora tienen el rasterizador y los controles que las disparan. La etapa 2, el vínculo plano→cotización, sigue en pausa.

  102. v2.0 — Editor de planos: alcance y licencias — Etapa 1 solo el editor; el vínculo plano→cotización queda para una etapa posterior. Sin catálogo de modelos propio: cada cuenta importa los suyos y se recomiendan los catálogos gratuitos de Sweet Home 3D, cuya atribución (Free Art License / CC BY) es responsabilidad del usuario. Exportación solo de imágenes PNG, con calidad realista en tiempo real y sin trazado de rayos. Prohibido portar código de Sweet Home 3D (GPL v2+): reimplementación limpia. Editor desktop-first como módulo independiente, con consulta en móvil.

  103. v1.3 · US-26: la ruta "/" muestra una página de inicio pública (landing) con hero, propuesta de valor y CTAs a registro/login (interpretación A, aprobada en GATE 1); el usuario autenticado entra directo a su app. Diseño fiel al mockup de Claude Design sobre el design system (docs/16).

  104. v1.2 · US-25: la app es instalable como PWA (vite-plugin-pwa) con shell offline básico; los datos siguen requiriendo conexión (SW no cachea /api/).

  105. v1.2 · Refactor: auditoría de convenciones — se agrega ESLint 9 flat config al frontend y se mueve una query de vista a selector en el backend; comportamiento preservado.

  106. Modelo multi-tenant: registro con teléfono + contraseña verificado por OTP (código universal en el MVP) y suscripción por cuenta.

  107. US-04/05: cada partida de cotización congela el precio de la tarifa (histórico de precio).

  108. v1.1 · US-15: el avance se registra solo por cantidad (se elimina el porcentaje); el selector solo muestra partidas con cantidad pendiente y su máximo.

  109. v1.1 · US-18/20: pagos con método (efectivo por defecto/transferencia) y sin tope; saldo por cobrar = máx(cotizado − pagado, 0) y saldo a favor si se sobrepaga.

  110. v1.1 · US-22: al crear una tarifa desde la cotización, un check decide si se guarda en el catálogo o es única de esa cotización.

  111. v1.1 · Documentos PDF: cotización (nota de venta, validez 20 días), comprobante por pago y estado del proyecto, todos con visualizar/compartir.

Versiones 30

  1. v7.2.0 · Iteración 30 · backend, frontend · 1 bug, 1 cambio

    En develop
  2. v7.1.0 · Iteración 29 · frontend · 3 cambio

    En develop
  3. v7.0.0 · Iteración 28 · backend, frontend · 3 bug, 26 cambio

    En develop
  4. v6.0.0 · Iteración 27 · backend, frontend · 7 bug, 4 cambio

    En develop
  5. v5.0.0 · Iteración 26 · backend, frontend · 23 bug, 8 cambio

    En develop
  6. v4.0.0 · Iteración 25 · backend, frontend · 1 bug, 12 cambio, 2 nueva

    En develop
  7. v3.13.0 · Iteración 24 · backend, frontend · 9 bug, 1 cambio

    En develop
  8. v3.12.0 · Iteración 23 · frontend · 7 cambio

    En producción
  9. v3.11.1 · Iteración 22 · frontend · 1 bug

    Superada por 3.12.0
  10. v3.11.0 · Iteración 21 · backend, frontend · 1 cambio

    En producción
  11. v3.10.0 · Iteración 20 · backend, frontend · 8 cambio

    Superada por 3.12.0
  12. v3.9.0 · Iteración 19 · frontend · 2 bug, 4 cambio

    Superada por 3.12.0
  13. v3.8.1 · Iteración 18 · frontend · 1 bug

    Superada por 3.12.0
  14. v3.8.0 · Iteración 17 · backend, frontend · 10 cambio

    En producción
  15. v3.7.2 · Iteración 16 · backend, frontend · 6 bug

    En producción
  16. v3.7.1 · Iteración 15 · backend · 1 bug

    En producciónsin regresión
  17. v3.7.0 · Iteración 14 · backend, frontend · 6 nueva

    En producción
  18. v3.6.0 · Iteración 13 · backend, frontend · 5 cambio

    En producciónsin regresión
  19. v3.5.0 · Iteración 12 · backend, frontend · 6 bug, 2 cambio

    En producciónsin regresión
  20. v3.4.0 · Iteración 11 · frontend · 3 cambio

    En producciónsin regresión
  21. v3.3.2 · Iteración 10 · frontend · 1 bug

    En producción
  22. v3.3.1 · Iteración 9 · backend · 1 bug

    En producción
  23. v3.3.0 · Iteración 8 · frontend · 3 cambio

    En producción
  24. v3.2.0 · Iteración 7 · backend, frontend · 2 cambio, 1 nueva

    En producción
  25. v3.1.0 · Iteración 6 · frontend · 1 bug, 3 cambio

    En producción
  26. v3.0.0 · Iteración 5 · backend, frontend · 3 bug, 6 cambio, 4 nueva

    En producciónsin regresión
  27. v2.36.0 · Iteración 4 · backend, frontend · 1 bug, 1 cambio, 1 nueva

    En producción
  28. v2.35.2 · Iteración 3 · frontend · 3 bug

    En producción
  29. v2.35.1 · Iteración 2 · backend, frontend · 1 bug

    En producción
  30. v2.35.0 · Iteración 1 · backend, frontend · 3 bug, 1 cambio

    En producción