feat: implement password reset functionality and global search feature

- Added forgot password and reset password APIs in the LMS service.
- Created database migrations for password reset tokens and xAPI statements.
- Implemented global search functionality with indexing for courses, lessons, discussions, and announcements.
- Developed frontend pages for forgot password and reset password.
- Introduced SCORM player component to handle xAPI statements tracking.
This commit is contained in:
2026-04-22 16:44:03 -04:00
parent 77eceee2f3
commit 0d6f1c9f9c
19 changed files with 1353 additions and 19 deletions
@@ -0,0 +1,26 @@
-- Índices para búsqueda global eficiente en cursos, lecciones, hilos y anuncios
-- Cursos: full-text search sobre título y descripción
CREATE INDEX IF NOT EXISTS idx_courses_search_title
ON courses USING gin(to_tsvector('spanish', COALESCE(title, '')));
CREATE INDEX IF NOT EXISTS idx_courses_search_desc
ON courses USING gin(to_tsvector('spanish', COALESCE(description, '')));
-- Lecciones: índice sobre título y summary
CREATE INDEX IF NOT EXISTS idx_lessons_search_title
ON lessons USING gin(to_tsvector('spanish', COALESCE(title, '')));
CREATE INDEX IF NOT EXISTS idx_lessons_search_summary
ON lessons USING gin(to_tsvector('spanish', COALESCE(summary, '')));
-- Hilos de discusión: índice sobre título
CREATE INDEX IF NOT EXISTS idx_discussion_threads_search_title
ON discussion_threads USING gin(to_tsvector('spanish', COALESCE(title, '')));
-- Anuncios: índice sobre título y content
CREATE INDEX IF NOT EXISTS idx_course_announcements_search_title
ON course_announcements USING gin(to_tsvector('spanish', COALESCE(title, '')));
CREATE INDEX IF NOT EXISTS idx_course_announcements_search_body
ON course_announcements USING gin(to_tsvector('spanish', COALESCE(content, '')));