Como usuario nuevo, quiero crear una cuenta con mi email y contraseña para acceder a la app.
- Email único validado en servidor
- Contraseña con requisitos mínimos de seguridad
- Redirige al dashboard al completar
37 user stories en 6 fases. Cada fase incluye los módulos de arquitectura que deben estar listos antes de empezar.
| Módulo de arquitectura | P0 | P1 | P2 | P3 | P4 | P5 | P6 |
|---|---|---|---|---|---|---|---|
| Expo project + Expo Router | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| EAS account + eas.json | ✦ | ✓ | ✓ | ||||
| Variables de entorno (.env) | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| API Client (Axios + JWT interceptors) | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| SecureStore (token storage) | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Zustand auth store | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| TanStack Query (QueryClient) | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| AuthGuard + Navigation shell | ✦ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| React Hook Form + Zod | ✦ | ✓ | ✓ | ✓ | ✓ | ||
| Query hooks: budgets / categories / prefs | ✦ | ✓ | ✓ | ✓ | ✓ | ||
| BottomSheet / Modal component | ✦ | ✓ | ✓ | ✓ | ✓ | ||
| Query hooks: transactions | ✦ | ✓ | ✓ | ✓ | |||
| FlatList infinita + FAB | ✦ | ✓ | ✓ | ✓ | |||
| Swipe-to-delete (Reanimated) | ✦ | ✓ | |||||
| expo-auth-session + Deep links | ✦ | ✓ | ✓ | ||||
| Query hooks: gmail accounts | ✦ | ✓ | ✓ | ||||
| Development Build (EAS) | ✦ | ✓ | |||||
| expo-notifications + push token flow | ✦ | ✓ | |||||
| expo-local-authentication | ✦ | ✓ | |||||
| Backend: 4 endpoints push + Prisma migration | ✦ | ✓ | |||||
| FCM credentials + APNs (EAS Secrets) | ✦ | ✓ | |||||
| MMKV + Offline queue (Zustand) | ✦ | ||||||
| NetInfo listener | ✦ | ||||||
| Draggable FlatList (Reanimated) | ✦ |
No hay user stories aquí. Es el andamiaje necesario antes de escribir la primera pantalla.
0 user stories · prerequisito de todoEl usuario puede crear cuenta, iniciar sesión y ver el dashboard con sus datos.
7 user storiesComo usuario nuevo, quiero crear una cuenta con mi email y contraseña para acceder a la app.
Como usuario registrado, quiero iniciar sesión con mis credenciales.
Como usuario, quiero iniciar sesión con mi cuenta de Google.
Como usuario, quiero recibir un link por email para restablecer mi contraseña.
Como usuario, quiero cerrar sesión para proteger mi cuenta.
Como usuario, quiero ver cuánto he gastado vs mi presupuesto en el período actual.
Como usuario, quiero poder ver los datos de meses anteriores o futuros.
El usuario puede crear, editar y configurar sus presupuestos. El wizard guía el primer uso.
8 user storiesComo usuario nuevo, quiero que la app me guíe para crear mis primeros presupuestos.
Como usuario, quiero agregar un presupuesto para una categoría específica.
Como usuario, quiero editar el monto de un presupuesto existente.
Como usuario, quiero renombrar una categoría de presupuesto.
Como usuario, quiero eliminar un presupuesto cuando ya no aplica.
Como usuario, quiero definir si mi período es por mes calendario o inicia un día específico del mes.
Como usuario, quiero ver las fechas exactas de inicio y fin de mi período actual.
Como usuario, quiero definir la moneda en la que veo mis presupuestos y transacciones.
El usuario puede registrar, buscar, editar y categorizar transacciones — incluyendo las capturadas por Penny.
8 user storiesComo usuario, quiero registrar un gasto manualmente cuando no llega por email.
Como usuario, quiero ver mis transacciones con paginación.
Como usuario, quiero buscar entre mis transacciones por descripción.
Como usuario, quiero editar el monto, descripción, categoría, fecha o tipo de una transacción.
Como usuario, quiero asignar una categoría a una transacción para que impacte en el presupuesto correcto.
Como usuario, quiero eliminar una transacción incorrecta o duplicada.
Como usuario, quiero ver las transacciones auto-detectadas por Penny que aún no clasifiqué.
Como usuario, quiero ver un banner cuando haya transacciones pendientes de categorizar.
El usuario conecta su Gmail para que Penny detecte transacciones automáticamente. El diferenciador del producto.
6 user storiesComo usuario, quiero conectar mi Gmail para que Penny monitoree mis correos bancarios automáticamente.
Como usuario, quiero ver si mi Gmail está conectado y activo.
Como usuario, quiero pausar temporalmente el monitoreo sin desconectar la cuenta.
Como usuario, quiero reanudar el monitoreo después de haberlo pausado.
Como usuario, quiero desconectar mi cuenta Gmail.
Como usuario, quiero ver y gestionar todas mis cuentas Gmail desde un lugar dedicado.
Lo que justifica hacer la app nativa: notificaciones de límites de gasto, biometría y preferencias.
9 user stories · 7 nuevas 🆕Como usuario, quiero recibir una push cuando lleve 80% del presupuesto de una categoría gastado.
Como usuario, quiero recibir una notificación urgente cuando supere el 100% del presupuesto.
Como usuario, quiero controlar si recibo o no notificaciones push.
Como usuario, quiero personalizar el porcentaje a partir del cual recibo alertas por categoría.
Como usuario, quiero usar Face ID / Touch ID para entrar rápido a la app.
Como usuario, quiero configurar un PIN de 4-6 dígitos si no tengo biometría disponible.
Como usuario, quiero recibir una push cada vez que Penny detecta una nueva transacción.
Como usuario, quiero que mi preferencia de idioma se guarde y persista entre sesiones.
Como usuario, quiero poder eliminar mi cuenta y todos mis datos.
Funcionalidades avanzadas de organización, gestión masiva y capacidades nativas adicionales.
7 user stories · 1 nueva 🆕Como usuario, quiero ordenar las categorías de presupuesto según mis prioridades.
Como usuario, quiero replicar los presupuestos del mes pasado al mes actual con un toque.
Como usuario, quiero limpiar todos los presupuestos del período para empezar de cero.
Como usuario, quiero limpiar todas las transacciones para reiniciar el período.
Como usuario, quiero alternar entre tema claro y oscuro.
Como usuario, quiero exportar todos mis datos en JSON para tener un respaldo.
Como usuario, quiero poder agregar gastos aunque no tenga internet, y que se sincronicen al reconectar.