Saltar a contenido

Mobile App

Cliente React Native (Expo) para compradores y vendedores: la misma cuenta habilita ambos roles sin fricción. Se distribuye como app nativa (Android/iOS) y como PWA (deploy web en Vercel).

Stack

Lenguaje TypeScript
Framework React Native + Expo (Expo Router)
Estado Zustand (sesión, carrito, tema, notificaciones, datos de usuario)
API Cliente al API Gateway (users, products, checkout, notification) vía helpers en constants/api y services/
Pagos MercadoPago (checkout hosteado)
Push Expo Push Notifications (nativo) + Web Push (PWA)

Toda la comunicación pasa exclusivamente por el API Gateway; la app no llama directo a los servicios backend.

Barra inferior flotante con cinco pestañas:

  • Inicio — descubrimiento: banner promocional activo, accesos rápidos por categoría, sección "Lo nuevo" y recomendaciones.
  • Explorar — búsqueda en vivo (debounced), filtros (categoría, rango de precio), orden y chips de filtros activos.
  • Carrito — gestión del carrito y paso al checkout.
  • Notificaciones — cambios de estado de las órdenes.
  • Perfil — cuenta, compras, ventas, publicaciones y preferencias.

Más rutas stack: detalle de producto, reviews, perfil público de vendedor, checkout, órdenes y publicación.

Responsabilidades

  • Autenticación: registro, login email/contraseña, recupero y nueva contraseña (deep link de Supabase hacia reset-password), login con Google (OAuth in-app + intercambio de tokens), PIN ligado al dispositivo (opcional, con vinculación sugerida), refresh token sin re-login y manejo de cuenta suspendida / rate limit.
  • Catálogo: home de descubrimiento + recomendaciones basadas en historial (product-service con JWT); búsqueda en vivo y filtros (categoría, texto, rango de precio) con orden; detalle de producto con descripción y especificaciones colapsables; compartir link directo (deep link); registro de vistas recientes.
  • Carrito: persistente entre sesiones (SecureStore), sincronización con backend y verificación de stock antes del checkout; manejo de items no disponibles.
  • Checkout y órdenes: pago con MercadoPago, cupones de descuento (validación + cupón activo), dirección de envío y pantallas de éxito / pendiente / fallo; historial de compras y ventas, detalle de orden y transiciones de estado (en preparación, enviada con código de seguimiento).
  • Reviews / reputación: calificar producto y vendedor (UI de medias estrellas), sólo sobre órdenes entregadas (validado en checkout-service); reputación agregada del producto en su detalle y perfil público de reputación del vendedor.
  • Vendedor: publicación de producto con imágenes (multipart), gestión de publicaciones (con estado de moderación) y órdenes de venta.
  • Notificaciones: notificaciones in-app de cambio de estado de orden (abren el detalle) y push (Expo nativo + Web Push en PWA) con banner de opt-in y registro de dispositivo.
  • Perfil: visualización y edición, avatar, estadísticas, configuración de PIN y tema.
  • Tema: claro / oscuro / sistema, coherente con la identidad visual del proyecto.

Resiliencia

Cliente HTTP con reintentos, manejo explícito de loading/error, timeouts y expiración de sesión (redirección a login conservando contexto cuando es posible).

Repositorio

github.com/ids2-grupo8/mobileApp

Setup local: ver el README del repositorio.