🚀 Uoppi - Plataforma de Cupones y Promociones 1
📝 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
- Autenticación Segura: Inicio de sesión con correo/contraseña y proveedores sociales (Google y Apple) gestionado por Supabase Auth.
- Geolocalización: Filtro avanzado de promociones según el rango de distancia del usuario.
- Sistema de Canje Seguro: Generación de códigos QR únicos con tiempo de expiración para evitar fraudes en los comercios.
- 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;
};