feat(exam-prep F9): пробный экзамен — setup/active/result + таймер + балл по сетке + серверный чекер

This commit is contained in:
Maxim Dolgolyov
2026-05-29 11:06:57 +03:00
parent b07da5ee6d
commit cfcb233b6c
5 changed files with 825 additions and 39 deletions
+11 -6
View File
@@ -8,6 +8,9 @@
<link href="https://fonts.googleapis.com/css2?family=Unbounded:wght@400;700;800&family=Manrope:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/css/ls.css" />
<link rel="stylesheet" href="/css/exam-prep.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" />
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" onload="onKatexLoad()"></script>
</head>
<body>
<div class="app-layout">
@@ -24,9 +27,9 @@
<path d="m9 14 2 2 4-4"/>
</svg>
</div>
<div>
<div style="flex:1">
<div class="ep-title" id="ep-title"><span class="ep-skel" style="width:280px;height:1.2em">&nbsp;</span></div>
<div class="ep-sub" id="ep-sub"><span class="ep-skel" style="width:200px;height:.8em">&nbsp;</span></div>
<div class="ep-sub" id="ep-sub"><span class="ep-skel" style="width:200px;height:.8em">&nbsp;</span></div>
</div>
</header>
@@ -34,9 +37,8 @@
<main id="ep-main">
<div class="ep-empty">
<i data-lucide="timer"></i>
<h4>Пробный экзамен</h4>
<p>В F9 здесь стартует таймер на 180 минут, 10 задач в реальных условиях (без проверки и решений), а в конце — балл по сетке и разбор каждого задания.</p>
<i data-lucide="loader-circle"></i>
<h4>Загрузка…</h4>
</div>
</main>
@@ -52,6 +54,9 @@
<script src="/js/mobile.js"></script>
<script src="/js/exam-prep/common.js"></script>
<script src="/js/exam-prep/api.js"></script>
<script>(async () => { await EP.boot(); if (window.lucide) lucide.createIcons(); })();</script>
<script src="/js/exam-prep/katex.js"></script>
<script src="/js/exam-prep/answer-check.js"></script>
<script src="/js/exam-prep/task-card.js"></script>
<script src="/js/exam-prep/mock.js"></script>
</body>
</html>