← Proyectos

🚀 Uoppi - Plataforma de Cupones y Promociones 1

Estado del Proyecto Stack

📝 Descripción del Proyecto

Uoppit es una aplicación móvil diseñada para centralizar, gestionar y redimir cupones de descuento y promociones de comida en tiempo real. La aplicación permite a los usuarios descubrir ofertas cercanas basadas en su ubicación, guardar sus cupones favoritos y canjearlos directamente en los establecimientos aliados mediante códigos QR dinámicos.


🛠️ Arquitectura y Tecnologías

El núcleo del proyecto está construido utilizando un ecosistema moderno enfocado en el rendimiento y la escalabilidad:

  • Frontend Móvil: React Native con Expo (Managed Workflow) para un desarrollo ágil y multiplataforma (iOS y Android).
  • Backend & Base de Datos: Supabase (PostgreSQL) para el manejo de autenticación, almacenamiento de imágenes de cupones y sincronización en tiempo real.
  • Estilos y UI: Tailwind CSS (NativeWind) para interfaces limpias, fluidas y consistentes.

🎯 Características Principales

  1. Autenticación Segura: Inicio de sesión con correo/contraseña y proveedores sociales (Google y Apple) gestionado por Supabase Auth.
  2. Geolocalización: Filtro avanzado de promociones según el rango de distancia del usuario.
  3. Sistema de Canje Seguro: Generación de códigos QR únicos con tiempo de expiración para evitar fraudes en los comercios.
  4. Modo Offline: Caché local de cupones guardados para permitir su visualización sin conexión a internet.

💻 Fragmento de Código Destacado

A continuación se muestra un ejemplo de cómo se maneja la consulta reactiva de cupones activos utilizando la integración con Supabase:

import { supabase } from '../lib/supabase';

export const fetchActiveCoupons = async (latitude: number, longitude: number) => {
  const { data, error } = await supabase
    .from('coupons')
    .select('*, stores(*)')
    .eq('is_active', true)
    .order('created_at', { ascending: false });

  if (error) throw new Error(error.message);
  return data;
};