Formation Hub es una aplicación full-stack para gestionar consagraciones de formación espiritual: programas secuenciales de formación mensual (cartas), con acceso diferenciado por rol y un chatbot de preguntas y respuestas basado en el contenido de las cartas (RAG).
https://whimsical-salamander-0c7593.netlify.app/
La aplicación está construida alrededor de un sistema de roles seguro: los usuarios se autentican vía Supabase, gestionan su perfil, y los administradores gestionan programas y cartas de formación. Los miembros consultan las cartas publicadas de su programa y pueden interactuar con un chatbot que responde basándose únicamente en el contenido de esas cartas.
- El frontend maneja la UI, el ruteo y el estado del cliente.
- Supabase gestiona autenticación, base de datos, RLS y Edge Functions.
- pgvector habilita búsqueda semántica sobre el contenido de las cartas.
- Las Edge Functions manejan de forma segura la generación de embeddings y la orquestación del RAG.
- Autenticación por email/contraseña vía Supabase Auth
- Sesión persistente
- Rutas diferenciadas por rol (
adminymember) - Row Level Security para aislar datos por usuario y programa
- Ver y actualizar información de perfil
- Acceso únicamente a los propios datos bajo políticas RLS
Tablas principales:
programs— consagraciones (programas de formación secuenciales)profiles— perfil de usuario, rol, programa asignadoletters— cartas de formación mensuales, con preguntas de comprensiónletter_chunks— fragmentos vectorizados de las cartas (pgvector)
Características:
- Relaciones por foreign key
- Políticas de Row Level Security en todas las tablas
- Extensión pgvector habilitada
- Reglas de propiedad de datos seguras
- El contenido de las cartas se fragmenta (chunking).
- Se generan embeddings vía Edge Function.
- Los vectores se almacenan con pgvector.
- La pregunta del usuario activa una búsqueda por similitud (top-k).
- Los fragmentos relevantes se inyectan en el prompt del LLM.
- El LLM genera una respuesta contextual, citando las cartas como fuente.
ingest-letters— fragmenta el contenido y genera embeddings.rag-chat— realiza la búsqueda por similitud y genera la respuesta contextual.
Los secretos se almacenan de forma segura en las variables de entorno de Supabase y nunca se exponen al frontend.
Frontend
- React 19 (Vite + TypeScript)
- React Router
- CSS custom (variables CSS, sin librería de UI externa)
Backend
- Supabase (Auth + PostgreSQL + Edge Functions)
IA y búsqueda
- pgvector
- Embeddings vía Edge Function (OpenAI)
- Respuestas contextuales con GPT-4o-mini
Deployment
- Netlify (CI/CD vía GitHub)
VITE_SUPABASE_URL
VITE_SUPABASE_ANON_KEY
Los secretos de las Edge Functions se configuran en Supabase, no aquí.
git clone https://github.com/DataMnk/nlp-formation-hub.git
cd nlp-formation-hub
npm install
npm run devLa aplicación se despliega vía Netlify con CI/CD habilitado desde la rama main. Cada push a main dispara un build de producción automático.
- El estado de autenticación persiste tras refrescar la página.
- RLS asegura que los usuarios no puedan acceder a registros de otros usuarios o programas.
- La búsqueda por similitud vectorial usa distancia coseno.
- Los embeddings se generan del lado del servidor vía Edge Functions.
MIT License — ver LICENSE.MD.