diff --git a/.env.example b/.env.example index 1355dee..18167e2 100644 --- a/.env.example +++ b/.env.example @@ -18,8 +18,8 @@ AI_PROVIDER=local OPENAI_API_KEY= # Local AI (Ollama & Whisper) -LOCAL_WHISPER_URL=http://t-800:9000 -LOCAL_OLLAMA_URL=http://t-800:11434 +LOCAL_WHISPER_URL=http://localhost:9000 +LOCAL_OLLAMA_URL=http://localhost:11434 LOCAL_LLM_MODEL=llama3.2:3b # Mercado Pago Configuration diff --git a/web/experience/src/app/auth/login/page.tsx b/web/experience/src/app/auth/login/page.tsx index eafc467..6474250 100644 --- a/web/experience/src/app/auth/login/page.tsx +++ b/web/experience/src/app/auth/login/page.tsx @@ -70,49 +70,49 @@ export default function ExperienceLoginPage() { }; return ( -
+
{/* Header */}
-

Experiencia OpenCCB

-

Portal de Aprendizaje para Estudiantes

+

Experiencia OpenCCB

+

Portal de Aprendizaje para Estudiantes

{/* Main Content Card */} -
+
{/* View: SELECTION */} {viewMode === 'selection' && (
-

¿Cómo deseas ingresar?

+

¿Cómo deseas ingresar?

@@ -122,20 +122,20 @@ export default function ExperienceLoginPage() { {/* View: PERSONAL (Email/Pass) */} {viewMode === 'personal' && (
- -
+
@@ -145,34 +145,34 @@ export default function ExperienceLoginPage() { {!isLogin && ( <>
- +
- - setFullName(e.target.value)} className="w-full bg-slate-900/50 border border-white/10 rounded-xl py-3 pl-10 pr-4 text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="Juan Pérez" /> + + setFullName(e.target.value)} className="w-full bg-slate-50 dark:bg-slate-900/50 border border-slate-200 dark:border-white/10 rounded-xl py-3 pl-10 pr-4 text-slate-900 dark:text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="Juan Pérez" />
)}
- +
- - setEmail(e.target.value)} className="w-full bg-slate-900/50 border border-white/10 rounded-xl py-3 pl-10 pr-4 text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="nombre@correo.com" /> + + setEmail(e.target.value)} className="w-full bg-slate-50 dark:bg-slate-900/50 border border-slate-200 dark:border-white/10 rounded-xl py-3 pl-10 pr-4 text-slate-900 dark:text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="nombre@correo.com" />
- +
- - setPassword(e.target.value)} className="w-full bg-slate-900/50 border border-white/10 rounded-xl py-3 pl-10 pr-4 text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="••••••••" /> + + setPassword(e.target.value)} className="w-full bg-slate-50 dark:bg-slate-900/50 border border-slate-200 dark:border-white/10 rounded-xl py-3 pl-10 pr-4 text-slate-900 dark:text-white text-sm focus:border-indigo-500 focus:outline-none transition-colors" placeholder="••••••••" />
- {error &&
{error}
} + {error &&
{error}
} - @@ -182,37 +182,39 @@ export default function ExperienceLoginPage() { {/* View: ENTERPRISE (Domain Login) */} {viewMode === 'enterprise' && (
-
-
+
-

Acceso Corporativo

-

Ingresa las credenciales de tu empresa

+

Acceso Corporativo

+

Ingresa las credenciales de tu empresa

- - { - const res = await lmsApi.searchOrganizations(q); - return res.map(o => ({ id: o.id, name: o.name })); - }} - placeholder="Busca tu empresa..." - leftIcon={} - /> + +
+ { + const res = await lmsApi.searchOrganizations(q); + return res.map(o => ({ id: o.id, name: o.name })); + }} + placeholder="Busca tu empresa..." + leftIcon={} + /> +
- {error &&
{error}
} + {error &&
{error}
} -
@@ -221,9 +223,9 @@ export default function ExperienceLoginPage() {
{/* Footer */} -
-

- ¿Eres instructor? Ir al Portal de Instructores +

+

+ ¿Eres instructor? Ir al Portal de Instructores

diff --git a/web/experience/src/app/profile/page.tsx b/web/experience/src/app/profile/page.tsx index c060221..dd8dec5 100644 --- a/web/experience/src/app/profile/page.tsx +++ b/web/experience/src/app/profile/page.tsx @@ -113,17 +113,17 @@ export default function ProfilePage() { return (
-

Mi Perfil

-

Personaliza tu identidad y sigue tu progreso de aprendizaje.

+

Mi Perfil

+

Personaliza tu identidad y sigue tu progreso de aprendizaje.

{/* Left Column: Stats & Profile */}
-
+
{/* Avatar Section */}
-
+
{avatarUrl ? ( ) : ( - + {fullName.charAt(0)} )} @@ -147,7 +147,7 @@ export default function ProfilePage() { @@ -160,28 +160,28 @@ export default function ProfilePage() { />
-

{fullName}

- Estudiante +

{fullName}

+ Estudiante -
+
{/* Gamification Stats */}
-
+
-

Nivel

-

{user.level || 1}

+

Nivel

+

{user.level || 1}

-
+
-

XP Total

-

{user.xp || 0}

+

XP Total

+

{user.xp || 0}

{/* Badges Section */} -
-

+
+

Logros Obtenidos

{gamification?.badges && gamification.badges.length > 0 ? (
{gamification.badges.map((badge: any) => (
-
+
{badge.icon_url ? ( {badge.name} ) : ( - + )}
-
+
{badge.name}
))}
) : ( -
- -

¡Completa lecciones para ganar insignias!

+
+ +

¡Completa lecciones para ganar insignias!

)}
@@ -221,49 +221,49 @@ export default function ProfilePage() { {/* Right Column: Settings Form */}
-
+
-
-
-
-