Skip to content

DweskZ/ExposiaClean

Repository files navigation

Exposia - Asistente de Exposición Oral 🎤

Exposia es un asistente inteligente que ayuda a estudiantes a mejorar sus presentaciones orales mediante análisis de contenido, detección de muletillas, y recomendaciones de mejora.

🚀 Características

  • Análisis de PDF: Extrae y analiza el contenido de presentaciones
  • Transcripción de Audio: Convierte presentaciones orales a texto
  • Análisis Inteligente: Compara lo dicho vs. el contenido del PDF
  • Detección de Muletillas: Identifica palabras refugio y repeticiones
  • Recomendaciones: Sugiere conectores y mejoras en la presentación
  • Futuro: Análisis de gestos mediante cámara

🏗️ Arquitectura

Este proyecto sigue Clean Architecture con una clara separación de capas:

📦 Exposia
├── 🔧 Backend (Python + FastAPI)
│   ├── Domain (Entidades y lógica de negocio)
│   ├── Application (Casos de uso)
│   ├── Infrastructure (Supabase, Groq, APIs)
│   └── Presentation (API REST)
│
└── 🎨 Frontend (React + TypeScript)
    ├── Domain (Modelos)
    ├── Application (Lógica de negocio)
    ├── Infrastructure (HTTP, Supabase client)
    └── Presentation (Componentes UI)

🛠️ Stack Tecnológico

Backend

  • NestJS - Framework Node.js con TypeScript y Clean Architecture
  • Supabase - Base de datos PostgreSQL y Storage
  • Groq API - LLM para análisis de contenido
  • Deepgram API - Transcripción de audio de alta precisión
  • pdf-parse - Procesamiento de PDFs

Frontend

  • React 18 con TypeScript
  • Vite - Build tool
  • TailwindCSS - Estilos
  • Supabase Client - Conexión con backend
  • React Query - Manejo de estado asíncrono

📋 Prerequisitos

  • Node.js 18+
  • Cuenta en Supabase (gratis)
  • API Key de Groq (gratis)
  • API Key de Deepgram (gratis)

⚙️ Instalación

1. Clonar el repositorio

git clone <repo-url>
cd ExposiaClean

2. Configurar Backend

cd backend
npm install

Crear archivo .env basado en .env.example:

SUPABASE_URL=tu_supabase_url
SUPABASE_KEY=tu_supabase_anon_key
GROQ_API_KEY=tu_groq_api_key
DEEPGRAM_API_KEY=tu_deepgram_api_key

3. Configurar Frontend

cd frontend
npm install

Crear archivo .env basado en .env.example:

VITE_SUPABASE_URL=tu_supabase_url
VITE_SUPABASE_ANON_KEY=tu_supabase_anon_key
VITE_API_URL=http://localhost:3000

🚀 Ejecución

Backend

cd backend
npm run start:dev

El backend estará disponible en http://localhost:3000

Frontend

cd frontend
npm run dev

El frontend estará disponible en http://localhost:5173

📁 Estructura del Proyecto

ExposiaClean/
├── backend/
│   ├── src/
│   │   ├── domain/              # Entidades y reglas de negocio
│   │   │   ├── entities/        # Modelos de dominio
│   │   │   ├── repositories/    # Interfaces de repositorios
│   │   │   └── value_objects/   # Objetos de valor
│   │   ├── application/         # Casos de uso
│   │   │   ├── use_cases/       # Lógica de aplicación
│   │   │   ├── dtos/            # Data Transfer Objects
│   │   │   └── interfaces/      # Interfaces de servicios
│   │   ├── infrastructure/      # Implementaciones concretas
│   │   │   ├── database/        # Supabase DB
│   │   │   ├── storage/         # Supabase Storage
│   │   │   ├── ai/              # Groq API
│   │   │   └── audio/           # Transcripción
│   │   └── presentation/        # API REST
│   │       ├── api/             # Endpoints
│   │       └── middleware/      # Middleware
│   └── tests/
├── frontend/
│   └── src/
│       ├── domain/              # Modelos
│       ├── application/         # Lógica de negocio
│       ├── infrastructure/      # APIs y servicios
│       └── presentation/        # Componentes React
└── README.md

🔄 Flujo de Trabajo

  1. Usuario sube PDF de su presentación
  2. Sistema extrae y almacena el contenido
  3. Usuario graba su presentación oral
  4. Sistema transcribe el audio a texto
  5. IA analiza y compara PDF vs. transcripción
  6. Sistema genera reporte con:
    • Muletillas detectadas
    • Desviaciones del contenido
    • Conectores sugeridos
    • Puntuación general

🧪 Testing

# Backend
cd backend
pytest

# Frontend
cd frontend
npm test

📝 Licencia

MIT

👥 Contribución

¡Las contribuciones son bienvenidas! Por favor, abre un issue o PR.

About

AI assistant for oral presentations — PDF analysis, speech transcription and filler-word detection

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors