{"repo": "brunocastillo/eduia", "files": {"README.md": {"e00a08aa3fb7ff1a3abbc995114e13679d03d2fe": {"t": 1785747266.0654778, "n": 7380, "h": "e480288560c31a53", "c": "# 🎓 EDUIA - Sistema Educativo con Inteligencia Artificial\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Node.js](https://img.shields.io/badge/Node.js-18.x-green.svg)](https://nodejs.org/)\r\n[![React](https://img.shields.io/badge/React-18.x-blue.svg)](https://reactjs.org/)\r\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.x-blue.svg)](https://postgresql.org/)\r\n[![Supabase](https://img.shields.io/badge/Supabase-Latest-green.svg)](https://supabase.com/)\r\n\r\n## Descripción\r\n\r\n**EDUIA** es un sistema educativo inteligente desarrollado como Trabajo Final de Máster (TFE) que integra tecnologías de Inteligencia Artificial para mejorar la experiencia de aprendizaje. El sistema utiliza técnicas de RAG (Retrieval Augmented Generation) para proporcionar respuestas contextualizadas basadas en material educativo.\r\n\r\n### Características Principales\r\n\r\n- Chat Inteligente: Interacción con IA basada en contenido educativo específico\r\n- Gestión de Contenido: Subida y procesamiento de PDFs y sílabos\r\n- Panel de Profesores: Herramientas para gestión de asignaturas y contenido\r\n- Portal de Estudiantes: Acceso a evaluaciones y material de estudio\r\n- Búsqueda Semántica: Utilizando embeddings y pgvector para búsquedas inteligentes\r\n- Sistema de Evaluaciones: Generación automática de preguntas y evaluaciones\r\n\r\n## Tecnologías Utilizadas\r\n\r\n### Frontend\r\n- **React.js** - Interfaz de usuario\r\n- **CSS3** - Estilos y diseño responsivo\r\n- **JavaScript ES6+** - Lógica del cliente\r\n\r\n### Backend\r\n- **Node.js** - Servidor backend\r\n- **Express.js** - Framework web\r\n- **Supabase** - Backend-as-a-Service\r\n- **PostgreSQL** - Base de datos principal\r\n- **pgvector** - Extensión para búsqueda vectorial\r\n\r\n### Inteligencia Artificial\r\n- **DeepSeek API** - Modelo de lenguaje para generación de respuestas\r\n- **Embeddings** - Procesamiento de texto para búsqueda semántica\r\n- **RAG (Retrieval Augmented Generation)** - Arquitectura de IA contextual\r\n\r\n## Instalación\r\n\r\n### Prerrequisitos\r\n- Node.js 18.x o superior\r\n- PostgreSQL 15.x\r\n- Cuenta en Supabase\r\n- API Key de DeepSeek\r\n\r\n### 1. Clonar el Repositorio\r\n```bash\r\ngit clone --recursive https://github.com/BrunoCastillo/EDUIA.git\r\ncd EDUIA\r\n```\r\n\r\n### 2. Instalar Dependencias\r\n```bash\r\n# Instalar dependencias del proyecto principal\r\nnpm install\r\n\r\n# Instalar dependencias del submódulo\r\ncd EDUIA\r\nnpm install\r\ncd ..\r\n```\r\n\r\n### 3. Configuración de Variables de Entorno\r\nCrear un archivo `.env` en la raíz del proyecto:\r\n\r\n```env\r\n# Supabase Configuration\r\nREACT_APP_SUPABASE_URL=tu_supabase_url\r\nREACT_APP_SUPABASE_ANON_KEY=tu_supabase_anon_key\r\nSUPABASE_SERVICE_KEY=tu_supabase_service_key\r\n\r\n# DeepSeek API\r\nDEEPSEEK_API_KEY=tu_deepseek_api_key\r\n\r\n# Database Configuration\r\nDATABASE_URL=tu_database_url\r\n\r\n# Server Configuration\r\nPORT=3001\r\n```\r\n\r\n### 4. Configuración de Base de Datos\r\n```bash\r\n# Ejecutar migraciones\r\ncd EDUIA/database\r\npsql -d tu_database -f schema.sql\r\npsql -d tu_database -f migrations/001_initial_schema.sql\r\n# ... ejecutar todas las migraciones en orden\r\n```\r\n\r\n### 5. Inicializar pgvector\r\n```sql\r\n-- En tu base de datos PostgreSQL\r\nCREATE EXTENSION IF NOT EXISTS vector;\r\n```\r\n\r\n## 🔧 Uso\r\n\r\n### Desarrollo\r\n```bash\r\n# Iniciar el servidor de desarrollo\r\nnpm run dev\r\n\r\n# Iniciar solo el frontend\r\nnpm start\r\n\r\n# Iniciar solo el backend\r\nnpm run server\r\n```\r\n\r\n### Producción\r\n```bash\r\n# Construir para producción\r\nnpm run build\r\n\r\n# Iniciar servidor de producción\r\nnpm run start:prod\r\n```\r\n\r\n## 📁 Estructura del Proyecto\r\n\r\n```\r\nEDUIA-TFE/\r\n├── EDUIA/ # Submódulo principal\r\n│ ├── src/\r\n│ │ ├── components/\r\n│ │ │ ├── auth/ # Componentes de autenticación\r\n│ │ │ ├── professor/ # Panel de profesores\r\n│ │ │ ├── student/ # Portal de estudiantes\r\n│ │ │ └── common/ # Componentes compartidos\r\n│ │ ├── services/ # Servicios de API\r\n│ │ │ ├── auth.service.js\r\n│ │ │ ├── deepseek.service.js\r\n│ │ │ ├── rag.service.js\r\n│ │ │ └── syllabus.service.js\r\n│ │ ├── contexts/ # Contextos de React\r\n│ │ └── utils/ # Utilidades\r\n│ ├── database/\r\n│ │ ├── migrations/ # Migraciones de BD\r\n│ │ ├── functions.sql # Funciones personalizadas\r\n│ │ └── schema.sql # Esquema de base de datos\r\n│ ├── public/ # Archivos públicos\r\n│ └── uploads/ # Archivos subidos\r\n├── .gitignore\r\n├── package.json\r\n└── README.md\r\n```\r\n\r\n## Funcionalidades Principales\r\n\r\n### Para Profesores\r\n- ✅ Gestión de asignaturas\r\n- ✅ Subida de sílabos y material educativo\r\n- ✅ Configuración de temas y subtemas\r\n- ✅ Generación automática de evaluaciones\r\n- ✅ Chat inteligente contextualizado\r\n\r\n### Para Estudiantes\r\n- ✅ Acceso a material de estudio\r\n- ✅ Realización de evaluaciones\r\n- ✅ Chat educativo con IA\r\n- ✅ Seguimiento de progreso\r\n\r\n### Sistema de IA\r\n- ✅ Procesamiento de documentos PDF\r\n- ✅ Generación de embeddings\r\n- ✅ Búsqueda semántica en contenido\r\n- ✅ Respuestas contextualizadas\r\n- ✅ Eliminación inteligente de stopwords\r\n\r\n## 🗄️ Base de Datos\r\n\r\n### Tablas Principales\r\n- `users` - Gestión de usuarios\r\n- `subjects` - Asignaturas\r\n- `syllabus` - Sílabos y material\r\n- `syllabus_topics` - Temas del sílabo\r\n- `syllabus_subtopics` - Subtemas\r\n- `embeddings` - Vectores para búsqueda semántica\r\n- `files` - Gestión de archivos\r\n\r\n### Funciones Personalizadas\r\n- `match_fragments()` - Búsqueda de fragmentos similares\r\n- `generate_embeddings()` - Generación de embeddings\r\n- Políticas RLS (Row Level Security)\r\n\r\n## Seguridad\r\n\r\n- **Autenticación**: Supabase Auth\r\n- **Autorización**: Row Level Security (RLS)\r\n- **Validación**: Sanitización de inputs\r\n- **Encriptación**: HTTPS en producción\r\n- **Gestión de Archivos**: Validación de tipos y tamaños\r\n\r\n## Testing\r\n\r\n```bash\r\n# Ejecutar tests\r\nnpm test\r\n\r\n# Tests con cobertura\r\nnpm run test:coverage\r\n\r\n# Tests de integración\r\nnpm run test:integration\r\n```\r\n\r\n## 📈 Rendimiento\r\n\r\n- **Búsqueda Vectorial**: Optimizada con índices ivfflat\r\n- **Caché**: Implementado para consultas frecuentes\r\n- **Compresión**: Gzip habilitado\r\n- **CDN**: Para archivos estáticos\r\n\r\n## Contribución\r\n\r\n1. Fork el proyecto\r\n2. Crear una rama para tu feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push a la rama (`git push origin feature/AmazingFeature`)\r\n5. Abrir un Pull Request\r\n\r\n## Changelog\r\n\r\n### v1.0.0 \r\n- ✅ Implementación inicial del sistema\r\n- ✅ Integración con DeepSeek API\r\n- ✅ Sistema de RAG funcional\r\n- ✅ Gestión de usuarios y roles\r\n- ✅ Subida y procesamiento de PDFs\r\n- ✅ Chat inteligente contextualizado\r\n\r\n## Issues Conocidos\r\n\r\n- Limitación de tamaño de archivos PDF (100MB)\r\n- Tiempo de procesamiento para documentos grandes\r\n- Compatibilidad limitada con algunos formatos PDF\r\n\r\n## Licencia\r\n\r\nEste proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.\r\n\r\n## Estadísticas del Proyecto\r\n\r\n- **Lenguajes**: JavaScript (75.4%), CSS (23.0%), PLpgSQL (1.3%), HTML (0.3%)\r\n- **Commits**: 50+ commits\r\n- **Archivos**: 100+ archivos\r\n- **Dependencias**: 50+ paquetes npm\r\n\r\n---\r\n\r\n*Desarrollado como Trabajo Final de Máster - 2025* \r\n"}, "ca2e6e01c976fb6e9b4410805b23a7e66f7445e3": {"t": 1785772028.1717737, "n": 7410, "h": "3182d1e1256430b5", "c": "# 🎓 EDUIA - Sistema Educativo con Inteligencia Artificial\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Node.js](https://img.shields.io/badge/Node.js-18.x-green.svg)](https://nodejs.org/)\r\n[![React](https://img.shields.io/badge/React-18.x-blue.svg)](https://reactjs.org/)\r\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.x-blue.svg)](https://postgresql.org/)\r\n[![Supabase](https://img.shields.io/badge/Supabase-Latest-green.svg)](https://supabase.com/)\r\n\r\n## Descripción\r\n\r\n**EDUIA** es un sistema educativo inteligente desarrollado como Trabajo Final de Máster (TFE) que integra tecnologías de Inteligencia Artificial para mejorar la experiencia de aprendizaje. El sistema utiliza técnicas de RAG (Retrieval Augmented Generation) para proporcionar respuestas contextualizadas basadas en material educativo.\r\n\r\n### Características Principales\r\n\r\n- ** Chat Inteligente**: Interacción con IA basada en contenido educativo específico\r\n- ** Gestión de Contenido**: Subida y procesamiento de PDFs y sílabos\r\n- ** Panel de Profesores**: Herramientas para gestión de asignaturas y contenido\r\n- ** Portal de Estudiantes**: Acceso a evaluaciones y material de estudio\r\n- ** Búsqueda Semántica**: Utilizando embeddings y pgvector para búsquedas inteligentes\r\n- ** Sistema de Evaluaciones**: Generación automática de preguntas y evaluaciones\r\n\r\n## Tecnologías Utilizadas\r\n\r\n### Frontend\r\n- **React.js** - Interfaz de usuario\r\n- **CSS3** - Estilos y diseño responsivo\r\n- **JavaScript ES6+** - Lógica del cliente\r\n\r\n### Backend\r\n- **Node.js** - Servidor backend\r\n- **Express.js** - Framework web\r\n- **Supabase** - Backend-as-a-Service\r\n- **PostgreSQL** - Base de datos principal\r\n- **pgvector** - Extensión para búsqueda vectorial\r\n\r\n### Inteligencia Artificial\r\n- **DeepSeek API** - Modelo de lenguaje para generación de respuestas\r\n- **Embeddings** - Procesamiento de texto para búsqueda semántica\r\n- **RAG (Retrieval Augmented Generation)** - Arquitectura de IA contextual\r\n\r\n## Instalación\r\n\r\n### Prerrequisitos\r\n- Node.js 18.x o superior\r\n- PostgreSQL 15.x\r\n- Cuenta en Supabase\r\n- API Key de DeepSeek\r\n\r\n### 1. Clonar el Repositorio\r\n```bash\r\ngit clone --recursive https://github.com/BrunoCastillo/EDUIA.git\r\ncd EDUIA\r\n```\r\n\r\n### 2. Instalar Dependencias\r\n```bash\r\n# Instalar dependencias del proyecto principal\r\nnpm install\r\n\r\n# Instalar dependencias del submódulo\r\ncd EDUIA\r\nnpm install\r\ncd ..\r\n```\r\n\r\n### 3. Configuración de Variables de Entorno\r\nCrear un archivo `.env` en la raíz del proyecto:\r\n\r\n```env\r\n# Supabase Configuration\r\nREACT_APP_SUPABASE_URL=tu_supabase_url\r\nREACT_APP_SUPABASE_ANON_KEY=tu_supabase_anon_key\r\nSUPABASE_SERVICE_KEY=tu_supabase_service_key\r\n\r\n# DeepSeek API\r\nDEEPSEEK_API_KEY=tu_deepseek_api_key\r\n\r\n# Database Configuration\r\nDATABASE_URL=tu_database_url\r\n\r\n# Server Configuration\r\nPORT=3001\r\n```\r\n\r\n### 4. Configuración de Base de Datos\r\n```bash\r\n# Ejecutar migraciones\r\ncd EDUIA/database\r\npsql -d tu_database -f schema.sql\r\npsql -d tu_database -f migrations/001_initial_schema.sql\r\n# ... ejecutar todas las migraciones en orden\r\n```\r\n\r\n### 5. Inicializar pgvector\r\n```sql\r\n-- En tu base de datos PostgreSQL\r\nCREATE EXTENSION IF NOT EXISTS vector;\r\n```\r\n\r\n## 🔧 Uso\r\n\r\n### Desarrollo\r\n```bash\r\n# Iniciar el servidor de desarrollo\r\nnpm run dev\r\n\r\n# Iniciar solo el frontend\r\nnpm start\r\n\r\n# Iniciar solo el backend\r\nnpm run server\r\n```\r\n\r\n### Producción\r\n```bash\r\n# Construir para producción\r\nnpm run build\r\n\r\n# Iniciar servidor de producción\r\nnpm run start:prod\r\n```\r\n\r\n## 📁 Estructura del Proyecto\r\n\r\n```\r\nEDUIA-TFE/\r\n├── EDUIA/ # Submódulo principal\r\n│ ├── src/\r\n│ │ ├── components/\r\n│ │ │ ├── auth/ # Componentes de autenticación\r\n│ │ │ ├── professor/ # Panel de profesores\r\n│ │ │ ├── student/ # Portal de estudiantes\r\n│ │ │ └── common/ # Componentes compartidos\r\n│ │ ├── services/ # Servicios de API\r\n│ │ │ ├── auth.service.js\r\n│ │ │ ├── deepseek.service.js\r\n│ │ │ ├── rag.service.js\r\n│ │ │ └── syllabus.service.js\r\n│ │ ├── contexts/ # Contextos de React\r\n│ │ └── utils/ # Utilidades\r\n│ ├── database/\r\n│ │ ├── migrations/ # Migraciones de BD\r\n│ │ ├── functions.sql # Funciones personalizadas\r\n│ │ └── schema.sql # Esquema de base de datos\r\n│ ├── public/ # Archivos públicos\r\n│ └── uploads/ # Archivos subidos\r\n├── .gitignore\r\n├── package.json\r\n└── README.md\r\n```\r\n\r\n## Funcionalidades Principales\r\n\r\n### Para Profesores\r\n- ✅ Gestión de asignaturas\r\n- ✅ Subida de sílabos y material educativo\r\n- ✅ Configuración de temas y subtemas\r\n- ✅ Generación automática de evaluaciones\r\n- ✅ Chat inteligente contextualizado\r\n\r\n### Para Estudiantes\r\n- ✅ Acceso a material de estudio\r\n- ✅ Realización de evaluaciones\r\n- ✅ Chat educativo con IA\r\n- ✅ Seguimiento de progreso\r\n\r\n### Sistema de IA\r\n- ✅ Procesamiento de documentos PDF\r\n- ✅ Generación de embeddings\r\n- ✅ Búsqueda semántica en contenido\r\n- ✅ Respuestas contextualizadas\r\n- ✅ Eliminación inteligente de stopwords\r\n\r\n## 🗄️ Base de Datos\r\n\r\n### Tablas Principales\r\n- `users` - Gestión de usuarios\r\n- `subjects` - Asignaturas\r\n- `syllabus` - Sílabos y material\r\n- `syllabus_topics` - Temas del sílabo\r\n- `syllabus_subtopics` - Subtemas\r\n- `embeddings` - Vectores para búsqueda semántica\r\n- `files` - Gestión de archivos\r\n\r\n### Funciones Personalizadas\r\n- `match_fragments()` - Búsqueda de fragmentos similares\r\n- `generate_embeddings()` - Generación de embeddings\r\n- Políticas RLS (Row Level Security)\r\n\r\n## Seguridad\r\n\r\n- **Autenticación**: Supabase Auth\r\n- **Autorización**: Row Level Security (RLS)\r\n- **Validación**: Sanitización de inputs\r\n- **Encriptación**: HTTPS en producción\r\n- **Gestión de Archivos**: Validación de tipos y tamaños\r\n\r\n## Testing\r\n\r\n```bash\r\n# Ejecutar tests\r\nnpm test\r\n\r\n# Tests con cobertura\r\nnpm run test:coverage\r\n\r\n# Tests de integración\r\nnpm run test:integration\r\n```\r\n\r\n## 📈 Rendimiento\r\n\r\n- **Búsqueda Vectorial**: Optimizada con índices ivfflat\r\n- **Caché**: Implementado para consultas frecuentes\r\n- **Compresión**: Gzip habilitado\r\n- **CDN**: Para archivos estáticos\r\n\r\n## Contribución\r\n\r\n1. Fork el proyecto\r\n2. Crear una rama para tu feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push a la rama (`git push origin feature/AmazingFeature`)\r\n5. Abrir un Pull Request\r\n\r\n## Changelog\r\n\r\n### v1.0.0 \r\n- ✅ Implementación inicial del sistema\r\n- ✅ Integración con DeepSeek API\r\n- ✅ Sistema de RAG funcional\r\n- ✅ Gestión de usuarios y roles\r\n- ✅ Subida y procesamiento de PDFs\r\n- ✅ Chat inteligente contextualizado\r\n\r\n## Issues Conocidos\r\n\r\n- Limitación de tamaño de archivos PDF (100MB)\r\n- Tiempo de procesamiento para documentos grandes\r\n- Compatibilidad limitada con algunos formatos PDF\r\n\r\n## Licencia\r\n\r\nEste proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.\r\n\r\n## Estadísticas del Proyecto\r\n\r\n- **Lenguajes**: JavaScript (75.4%), CSS (23.0%), PLpgSQL (1.3%), HTML (0.3%)\r\n- **Commits**: 50+ commits\r\n- **Archivos**: 100+ archivos\r\n- **Dependencias**: 50+ paquetes npm\r\n\r\n---\r\n\r\n*Desarrollado como Trabajo Final de Máster - 2025* \r\n"}, "edcf64b1b3f1a82dd6357ff112204a0b381efebd": {"t": 1785772029.654062, "n": 7842, "h": "e21ad1c6efcbbb71", "c": "# 🎓 EDUIA - Sistema Educativo con Inteligencia Artificial\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Node.js](https://img.shields.io/badge/Node.js-18.x-green.svg)](https://nodejs.org/)\r\n[![React](https://img.shields.io/badge/React-18.x-blue.svg)](https://reactjs.org/)\r\n[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.x-blue.svg)](https://postgresql.org/)\r\n[![Supabase](https://img.shields.io/badge/Supabase-Latest-green.svg)](https://supabase.com/)\r\n\r\n## 📋 Descripción\r\n\r\n**EDUIA** es un sistema educativo inteligente desarrollado como Trabajo Final de Máster (TFE) que integra tecnologías de Inteligencia Artificial para mejorar la experiencia de aprendizaje. El sistema utiliza técnicas de RAG (Retrieval Augmented Generation) para proporcionar respuestas contextualizadas basadas en material educativo.\r\n\r\n### 🎯 Características Principales\r\n\r\n- **🤖 Chat Inteligente**: Interacción con IA basada en contenido educativo específico\r\n- **📚 Gestión de Contenido**: Subida y procesamiento de PDFs y sílabos\r\n- **👨‍🏫 Panel de Profesores**: Herramientas para gestión de asignaturas y contenido\r\n- **👨‍🎓 Portal de Estudiantes**: Acceso a evaluaciones y material de estudio\r\n- **🔍 Búsqueda Semántica**: Utilizando embeddings y pgvector para búsquedas inteligentes\r\n- **📊 Sistema de Evaluaciones**: Generación automática de preguntas y evaluaciones\r\n\r\n## 🛠️ Tecnologías Utilizadas\r\n\r\n### Frontend\r\n- **React.js** - Interfaz de usuario\r\n- **CSS3** - Estilos y diseño responsivo\r\n- **JavaScript ES6+** - Lógica del cliente\r\n\r\n### Backend\r\n- **Node.js** - Servidor backend\r\n- **Express.js** - Framework web\r\n- **Supabase** - Backend-as-a-Service\r\n- **PostgreSQL** - Base de datos principal\r\n- **pgvector** - Extensión para búsqueda vectorial\r\n\r\n### Inteligencia Artificial\r\n- **DeepSeek API** - Modelo de lenguaje para generación de respuestas\r\n- **Embeddings** - Procesamiento de texto para búsqueda semántica\r\n- **RAG (Retrieval Augmented Generation)** - Arquitectura de IA contextual\r\n\r\n## 🚀 Instalación\r\n\r\n### Prerrequisitos\r\n- Node.js 18.x o superior\r\n- PostgreSQL 15.x\r\n- Cuenta en Supabase\r\n- API Key de DeepSeek\r\n\r\n### 1. Clonar el Repositorio\r\n```bash\r\ngit clone --recursive https://github.com/BrunoCastillo/EDUIA-TFE.git\r\ncd EDUIA-TFE\r\n```\r\n\r\n### 2. Instalar Dependencias\r\n```bash\r\n# Instalar dependencias del proyecto principal\r\nnpm install\r\n\r\n# Instalar dependencias del submódulo\r\ncd EDUIA\r\nnpm install\r\ncd ..\r\n```\r\n\r\n### 3. Configuración de Variables de Entorno\r\nCrear un archivo `.env` en la raíz del proyecto:\r\n\r\n```env\r\n# Supabase Configuration\r\nREACT_APP_SUPABASE_URL=tu_supabase_url\r\nREACT_APP_SUPABASE_ANON_KEY=tu_supabase_anon_key\r\nSUPABASE_SERVICE_KEY=tu_supabase_service_key\r\n\r\n# DeepSeek API\r\nDEEPSEEK_API_KEY=tu_deepseek_api_key\r\n\r\n# Database Configuration\r\nDATABASE_URL=tu_database_url\r\n\r\n# Server Configuration\r\nPORT=3001\r\n```\r\n\r\n### 4. Configuración de Base de Datos\r\n```bash\r\n# Ejecutar migraciones\r\ncd EDUIA/database\r\npsql -d tu_database -f schema.sql\r\npsql -d tu_database -f migrations/001_initial_schema.sql\r\n# ... ejecutar todas las migraciones en orden\r\n```\r\n\r\n### 5. Inicializar pgvector\r\n```sql\r\n-- En tu base de datos PostgreSQL\r\nCREATE EXTENSION IF NOT EXISTS vector;\r\n```\r\n\r\n## 🔧 Uso\r\n\r\n### Desarrollo\r\n```bash\r\n# Iniciar el servidor de desarrollo\r\nnpm run dev\r\n\r\n# Iniciar solo el frontend\r\nnpm start\r\n\r\n# Iniciar solo el backend\r\nnpm run server\r\n```\r\n\r\n### Producción\r\n```bash\r\n# Construir para producción\r\nnpm run build\r\n\r\n# Iniciar servidor de producción\r\nnpm run start:prod\r\n```\r\n\r\n## 📁 Estructura del Proyecto\r\n\r\n```\r\nEDUIA-TFE/\r\n├── EDUIA/ # Submódulo principal\r\n│ ├── src/\r\n│ │ ├── components/\r\n│ │ │ ├── auth/ # Componentes de autenticación\r\n│ │ │ ├── professor/ # Panel de profesores\r\n│ │ │ ├── student/ # Portal de estudiantes\r\n│ │ │ └── common/ # Componentes compartidos\r\n│ │ ├── services/ # Servicios de API\r\n│ │ │ ├── auth.service.js\r\n│ │ │ ├── deepseek.service.js\r\n│ │ │ ├── rag.service.js\r\n│ │ │ └── syllabus.service.js\r\n│ │ ├── contexts/ # Contextos de React\r\n│ │ └── utils/ # Utilidades\r\n│ ├── database/\r\n│ │ ├── migrations/ # Migraciones de BD\r\n│ │ ├── functions.sql # Funciones personalizadas\r\n│ │ └── schema.sql # Esquema de base de datos\r\n│ ├── public/ # Archivos públicos\r\n│ └── uploads/ # Archivos subidos\r\n├── .gitignore\r\n├── package.json\r\n└── README.md\r\n```\r\n\r\n## 🎯 Funcionalidades Principales\r\n\r\n### Para Profesores\r\n- ✅ Gestión de asignaturas\r\n- ✅ Subida de sílabos y material educativo\r\n- ✅ Configuración de temas y subtemas\r\n- ✅ Generación automática de evaluaciones\r\n- ✅ Chat inteligente contextualizado\r\n\r\n### Para Estudiantes\r\n- ✅ Acceso a material de estudio\r\n- ✅ Realización de evaluaciones\r\n- ✅ Chat educativo con IA\r\n- ✅ Seguimiento de progreso\r\n\r\n### Sistema de IA\r\n- ✅ Procesamiento de documentos PDF\r\n- ✅ Generación de embeddings\r\n- ✅ Búsqueda semántica en contenido\r\n- ✅ Respuestas contextualizadas\r\n- ✅ Eliminación inteligente de stopwords\r\n\r\n## 🗄️ Base de Datos\r\n\r\n### Tablas Principales\r\n- `users` - Gestión de usuarios\r\n- `subjects` - Asignaturas\r\n- `syllabus` - Sílabos y material\r\n- `syllabus_topics` - Temas del sílabo\r\n- `syllabus_subtopics` - Subtemas\r\n- `embeddings` - Vectores para búsqueda semántica\r\n- `files` - Gestión de archivos\r\n\r\n### Funciones Personalizadas\r\n- `match_fragments()` - Búsqueda de fragmentos similares\r\n- `generate_embeddings()` - Generación de embeddings\r\n- Políticas RLS (Row Level Security)\r\n\r\n## 🔐 Seguridad\r\n\r\n- **Autenticación**: Supabase Auth\r\n- **Autorización**: Row Level Security (RLS)\r\n- **Validación**: Sanitización de inputs\r\n- **Encriptación**: HTTPS en producción\r\n- **Gestión de Archivos**: Validación de tipos y tamaños\r\n\r\n## 🧪 Testing\r\n\r\n```bash\r\n# Ejecutar tests\r\nnpm test\r\n\r\n# Tests con cobertura\r\nnpm run test:coverage\r\n\r\n# Tests de integración\r\nnpm run test:integration\r\n```\r\n\r\n## 📈 Rendimiento\r\n\r\n- **Búsqueda Vectorial**: Optimizada con índices ivfflat\r\n- **Caché**: Implementado para consultas frecuentes\r\n- **Compresión**: Gzip habilitado\r\n- **CDN**: Para archivos estáticos\r\n\r\n## 🤝 Contribución\r\n\r\n1. Fork el proyecto\r\n2. Crear una rama para tu feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit tus cambios (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push a la rama (`git push origin feature/AmazingFeature`)\r\n5. Abrir un Pull Request\r\n\r\n## 📝 Changelog\r\n\r\n### v1.0.0 (2024-01-XX)\r\n- ✅ Implementación inicial del sistema\r\n- ✅ Integración con DeepSeek API\r\n- ✅ Sistema de RAG funcional\r\n- ✅ Gestión de usuarios y roles\r\n- ✅ Subida y procesamiento de PDFs\r\n- ✅ Chat inteligente contextualizado\r\n\r\n## 🐛 Issues Conocidos\r\n\r\n- Limitación de tamaño de archivos PDF (100MB)\r\n- Tiempo de procesamiento para documentos grandes\r\n- Compatibilidad limitada con algunos formatos PDF\r\n\r\n## 📄 Licencia\r\n\r\nEste proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.\r\n\r\n## 👨‍💻 Autor\r\n\r\n**Bruno Castillo**\r\n- GitHub: [@BrunoCastillo](https://github.com/BrunoCastillo)\r\n- Email: [tu-email@ejemplo.com](mailto:tu-email@ejemplo.com)\r\n\r\n## 🙏 Agradecimientos\r\n\r\n- Universidad por el apoyo en el desarrollo del TFE\r\n- Comunidad de Open Source por las herramientas utilizadas\r\n- Supabase por la infraestructura backend\r\n- OpenAI y DeepSeek por las APIs de IA\r\n\r\n## 📊 Estadísticas del Proyecto\r\n\r\n- **Lenguajes**: JavaScript (75.4%), CSS (23.0%), PLpgSQL (1.3%), HTML (0.3%)\r\n- **Commits**: 50+ commits\r\n- **Archivos**: 100+ archivos\r\n- **Dependencias**: 50+ paquetes npm\r\n\r\n---\r\n\r\n*Desarrollado como Trabajo Final de Máster - 2024* "}}}}