quantumcode-ai-architect / learning-engine.html
muboboev's picture
Подэтап 5.3 — GameQuest
be3690e verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Learning Engine API | QuantumCode</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Space Grotesk', sans-serif;
background-color: #0f172a;
color: #e2e8f0;
}
.gradient-text {
background: linear-gradient(90deg, #7c3aed 0%, #2563eb 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.glass-card {
background: rgba(15, 23, 42, 0.7);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 1rem;
}
.endpoint-card {
border-left: 4px solid #7c3aed;
}
code {
background: rgba(124, 58, 237, 0.2);
padding: 0.2rem 0.4rem;
border-radius: 0.25rem;
font-family: monospace;
}
</style>
</head>
<body class="min-h-screen">
<nav class="px-6 py-4 flex justify-between items-center">
<div class="flex items-center space-x-2">
<i data-feather="cpu" class="text-indigo-500"></i>
<span class="text-xl font-bold gradient-text">QuantumCode</span>
</div>
<div class="flex items-center space-x-2">
<a href="i18n-setup.html" class="flex items-center text-sm hover:text-indigo-400 transition-colors">
<i data-feather="globe" class="w-4 h-4 mr-1"></i>
<span id="currentLang">EN</span>
</a>
</div>
<div class="hidden md:flex space-x-8">
<a href="index.html" class="hover:text-indigo-400 transition-colors">Home</a>
<a href="index.html#features" class="hover:text-indigo-400 transition-colors">Features</a>
<a href="index.html#roadmap" class="hover:text-indigo-400 transition-colors">Roadmap</a>
<a href="data-architecture.html" class="hover:text-indigo-400 transition-colors">Data Architecture</a>
<a href="learning-engine.html" class="text-indigo-400">Learning Engine</a>
<a href="auth.html" class="hover:text-indigo-400 transition-colors">Login</a>
<a href="select-role.html" class="hover:text-indigo-400 transition-colors">Roles</a>
<a href="progress-report.html" class="hover:text-indigo-400 transition-colors">Progress</a>
<a href="self-talk-journal.html" class="hover:text-indigo-400 transition-colors">Self-Talk</a>
<a href="gamequest.html" class="hover:text-indigo-400 transition-colors">GameQuest</a>
</div>
</nav>
<main class="container mx-auto px-4 py-16">
<section class="max-w-6xl mx-auto mb-20">
<h1 class="text-4xl md:text-5xl font-bold mb-6">
<span class="gradient-text">Learning Engine</span> API Documentation
</h1>
<p class="text-xl text-slate-300 mb-10">
RESTful API for managing courses, modules, lessons and tracking learning metrics.
</p>
<div class="glass-card endpoint-card p-8 mb-12">
<h2 class="text-2xl font-bold mb-6">Course Structure</h2>
<div class="mb-8">
<h3 class="text-xl font-bold mb-4">Courses → Modules → Lessons Hierarchy</h3>
<div class="bg-slate-800/50 p-6 rounded-lg mb-6">
<pre><code>
{
"course": {
"id": "string",
"title": "string",
"description": "string",
"modules": [
{
"id": "string",
"title": "string",
"lessons": [
{
"id": "string",
"title": "string",
"exercises": [
{
"id": "string",
"type": "speaking|listening|vocabulary|grammar|speak-brave"
}
]
}
]
}
]
}
}
</code></pre>
</div>
</div>
</div>
<div class="glass-card endpoint-card p-8 mb-12">
<h2 class="text-2xl font-bold mb-6">API Endpoints</h2>
<div class="mb-8">
<h3 class="text-xl font-bold mb-4 flex items-center">
<span class="px-3 py-1 bg-indigo-900/30 text-indigo-400 rounded mr-3">GET</span>
<code>/api/courses</code>
</h3>
<p class="text-slate-300 mb-4">Retrieve all available courses</p>
<div class="bg-slate-800/50 p-6 rounded-lg">
<pre><code>// Response
[
{
"id": "course-123",
"title": "Beginner English",
"description": "Basic English for beginners",
"language": "en",
"difficulty": "beginner"
}
]</code></pre>
</div>
</div>
<div class="mb-8">
<h3 class="text-xl font-bold mb-4 flex items-center">
<span class="px-3 py-1 bg-green-900/30 text-green-400 rounded mr-3">POST</span>
<code>/api/courses</code>
</h3>
<p class="text-slate-300 mb-4">Create a new course (Admin only)</p>
<div class="bg-slate-800/50 p-6 rounded-lg">
<pre><code>// Request Body
{
"title": "Advanced English",
"description": "Advanced English course",
"language": "en",
"difficulty": "advanced"
}
// Response
{
"id": "course-456",
"status": "created"
}</code></pre>
</div>
</div>
</div>
<div class="glass-card endpoint-card p-8 mb-12">
<h2 class="text-2xl font-bold mb-6">Progress Tracking</h2>
<div class="mb-4">
<h3 class="text-xl font-bold mb-4 flex items-center">
<span class="px-3 py-1 bg-purple-900/30 text-purple-400 rounded mr-3">PATCH</span>
<code>/api/lessons/{lessonId}/progress</code>
</h3>
<p class="text-slate-300 mb-4">Update lesson progress metrics</p>
<div class="bg-slate-800/50 p-6 rounded-lg">
<pre><code>// Request Body
{
"speaking": {
"score": 75,
"timeSpent": 120,
"attempts": 3
},
"listening": {
"score": 80,
"timeSpent": 90,
"attempts": 2
},
"vocabulary": {
"score": 90,
"timeSpent": 60,
"attempts": 1
},
"grammar": {
"score": 70,
"timeSpent": 150,
"attempts": 4
},
"speakBraveScore": {
"confidence": 85,
"clarity": 80,
"fluency": 75,
"emotionalImpact": 90,
"transcript": "I believe in my ability to speak English confidently...",
"emotions": [
{"emotion": "happy", "score": 0.85},
{"emotion": "neutral", "score": 0.12},
{"emotion": "sad", "score": 0.03}
],
"facialExpressions": [
{"expression": "smile", "intensity": 0.8},
{"expression": "eyeContact", "intensity": 0.7}
]
},
"confidence": 85,
"completionStatus": "completed",
"masteryPercentage": 78.75
}
// Response
{
"lessonId": "lesson-789",
"updated": true,
"report": {
"totalTime": 420,
"totalAttempts": 10,
"weakestArea": "grammar",
"nextSteps": [
"Review past tense exercises",
"Practice with audio drills",
"Complete bonus vocabulary quiz"
]
}
}</code></pre>
</div>
</div>
</div>
<div class="glass-card p-8 mb-12">
<h2 class="text-2xl font-bold mb-6">VoiceTrack Module</h2>
<p class="text-slate-300 mb-6">Test the voice analysis API with real-time recording and feedback.</p>
<div class="grid md:grid-cols-2 gap-8 mb-12">
<voice-track></voice-track>
<ai-dialog></ai-dialog>
</div>
<div class="mt-6">
<h3 class="text-xl font-bold mb-4 flex items-center">
<span class="px-3 py-1 bg-purple-900/30 text-purple-400 rounded mr-3">POST</span>
<code>/voice/analyze</code>
</h3>
<p class="text-slate-300 mb-4">Analyze voice recordings for pronunciation and confidence</p>
<div class="bg-slate-800/50 p-6 rounded-lg">
<pre><code>// Request: Multipart form with audio file
// Response
{
"pronunciation": 85,
"confidence": 78,
"fluency": 82,
"clarity": 80,
"feedback": [
"Work on vowel sounds",
"Good pacing overall",
"Slightly nervous tone detected"
]
}</code></pre>
</div>
</div>
</div>
</section>
</main>
<script src="components/voice-track.js"></script>
<script src="components/ai-dialog.js"></script>
<footer class="py-12 border-t border-slate-800">
<div class="container mx-auto px-4 text-center">
<p class="text-slate-500 text-sm">
© 2023 QuantumCode AI Architect. All rights reserved.
</p>
</div>
</footer>
<script>
// Set initial language
document.getElementById('currentLang').textContent =
document.cookie.match('(^|;)\\s*NEXT_LOCALE\\s*=\\s*([^;]+)')?.pop() || 'EN';
feather.replace();
</script>
</body>
</html>