Skip to content

Eva02Daruma/projectmaquillai

Repository files navigation

🎨 MaquillAI - Aplicación de Maquillaje Inteligente

Demo de Tesis - Aplicación completa de maquillaje y belleza con IA, tutoriales interactivos, gestión de productos y análisis de perfil facial.

✨ Características Principales

  • 🎯 Tutoriales Interactivos: Sistema completo de gestión de tutoriales de maquillaje
  • 🛍️ Gestión de Productos: Catálogo de productos con categorización avanzada
  • 👤 Análisis de Perfil: Análisis facial para recomendaciones personalizadas
  • 🔐 Sistema de Administración: Panel completo para administradores
  • Optimizado O(n): Rendimiento optimizado para grandes volúmenes de datos
  • 🌐 CORS Configurado: Conectividad completa frontend-backend

Estructura del Proyecto

  • Front/ - Aplicación frontend React Native con Expo
  • backend/ - Servidor backend FastAPI
    • backend/fastapi/ - Código principal de la API
    • backend/iniciar_bd.py - Script para inicializar la base de datos SQLite
    • backend/run_migration.py - Script para ejecutar migraciones en PostgreSQL

Requisitos

  • Node.js y npm
  • Python 3.8+
  • Docker y Docker Compose (opcional, para containerización)

🚀 Arranque Local Rápido (Demo de Tesis)

⚡ Inicio Rápido - 3 Pasos

  1. Backend FastAPI (Terminal 1):

    cd backend/fastapi
    python3 -m uvicorn main:app --host 127.0.0.1 --port 8001 --reload
  2. Frontend React Native (Terminal 2):

    cd Front
    npx expo start
  3. Acceder a la aplicación:

👤 Usuario Administrador de Demo

  • Email: dlaurenap@gmail.com
  • Contraseña: Sendai2011
  • Permisos: Acceso completo al panel de administración

📋 Configuración Detallada

Backend (FastAPI)

  1. Crear y activar un entorno virtual:

    cd backend
    python -m venv venv
    source venv/bin/activate  # En Windows: venv\Scripts\activate
  2. Instalar dependencias:

    pip install -r requirements.txt
  3. Crear la base de datos SQLite:

    python iniciar_bd.py
  4. Iniciar el servidor FastAPI:

    cd fastapi
    python3 -m uvicorn main:app --host 127.0.0.1 --port 8001 --reload

    El servidor estará disponible en: http://127.0.0.1:8001

    📚 Documentación API: http://127.0.0.1:8001/docs

Frontend (React Native Expo)

  1. Instalar dependencias:

    cd Front
    npm install
  2. Iniciar la aplicación:

    npx expo start

    La aplicación estará disponible en:

    • 🌐 Web: http://localhost:8081 (o puerto mostrado)
    • 📱 Móvil: Escanear QR con Expo Go
    • 💻 Simulador: Presionar 'i' (iOS) o 'a' (Android)

Containerización con Docker

Para facilitar el despliegue, se incluyen archivos Docker:

  1. Construir y levantar los contenedores:

    docker-compose up -d --build
  2. Acceder a los servicios:

  3. Detener los contenedores:

    docker-compose down

Pruebas de API

Las pruebas de API están disponibles a través del panel de administración:

  1. Inicia sesión con una cuenta de administrador
  2. Navega a la pestaña "Admin"
  3. Selecciona "Pruebas API"
  4. Ejecuta pruebas individuales o todas las pruebas juntas

📊 Optimizaciones Implementadas

⚡ Rendimiento O(n)

  • Componentes Admin Optimizados: gestion_products.tsx y GestionTutoriales.tsx
  • Map Lookups O(1): Eliminación de búsquedas O(n²) en renderizado
  • useMemo/useCallback: Optimización de re-renderizados innecesarios
  • Tipos Unificados: Uso consistente de apiTypes.ts

🧹 Código Limpio

  • Archivos Duplicados Eliminados: Estructura de directorios optimizada
  • Tests Organizados: Ubicación correcta en __tests__/
  • CORS Configurado: Conectividad completa backend-frontend
  • Autenticación JWT: Sistema seguro con tokens

🔧 Estado del Sistema

  • Backend FastAPI: Operativo en puerto 8001
  • Frontend React Native: Conectado y funcional
  • Base de Datos: SQLite en backend/maquillai.db
  • Autenticación: JWT con usuario admin configurado
  • CORS: Configurado para desarrollo local

📚 Documentación de la API

La documentación interactiva de la API está disponible en:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published