A1 · Функционал
Что уже работает
Грейдум · Платформа обучения — публичная инсталляция движка Грейдум. Это живая платформа с реальными учениками, курсами и викториной. Не «прототип» — рабочий продукт.
Для ученика
Витрина курсов
Стиль Steam-style: карточки с обложками, тегами и числом вопросов. Фильтр по классу. Бейджи «ОСНОВНОЙ» и «НОВЫЙ».
Оглавление курса
Темы и билеты с прогрессом. Сквозная нумерация. Поиск по билетам. Метка «прочитано». Сворачивание курсов. Счётчик «X из Y прочитано».
Билет с теорией
Каждый билет содержит несколько блоков:
- Определения — синий стиль.
- Теоремы с доказательствами — фиолетовый стиль.
- Примеры — жёлтый стиль.
- SVG-рисунки — с подписями.
Викторина — три режима
- Спринт — быстро, с таймером (25 секунд), автопереход.
- Разбор — с пояснениями после ответа, без спешки.
- Размышление — варианты скрыты до кнопки «Показать варианты». После ответа — пояснение, как в «Разборе».
Улучшенный финал викторины
В блоке «Стоит повторить» — теперь понятная обратная связь:
- Названия билетов — а не технические идентификаторы.
- Счёт ошибок по билету — «2 из 3 мимо».
- Сортировка по числу ошибок — сверху самые проблемные билеты.
- Кликабельная ссылка — можно сразу перейти к билету и повторить.
Безопасный HTML в вопросах
В текстах вопросов, вариантах ответа и пояснениях можно использовать безопасный HTML — это открывает новые форматы заданий.
- Форматирование: жирный, курсив, перенос строки.
- Таблицы: для заданий на сопоставление.
- SVG-графики: с осями, стрелками, подписями.
- Нижние индексы и степени:
v₀,x².
Что ещё есть для ученика
- Метки сложности — базовый / средний / сложный.
- Выбор числа вопросов — 5 / 10 / 15 / 20.
- Звания — зависят от курса («Профессор математики», «Академик словесности»).
- Клавиатурные сокращения — 1–4, Esc, Enter.
- Две темы оформления — тёмная и светлая.
- Авторизация через Яндекс — в один клик.
- Синхронизация прогресса — между устройствами.
- Журнал изменений — видно, что нового.
- Telegram-канал — свежие анонсы в мессенджере.
Для админа
Дашборд с метриками
Ключевые показатели проекта: контент, вопросы, пользователи, игры. График «Игры за 7 дней». Автообновление раз в 5 минут.
Редактор курсов и тем
Новое в v0.22. Раньше курсы и темы создавались только через SQL. Теперь — прямо в админке. Во вкладке «Контент» появился под-таб «📚 Курсы» — первым, перед «Билетами» и «Вопросами».
Что можно делать
- Создать курс — название, описание, класс, бейдж, видимость.
- Редактировать курс — все поля + обложка + список тем.
- Список тем — прямо в модалке курса. Создание, редактирование, скрытие.
- Настроить уровень доступа — публичный, только для авторизованных, по ссылке, только для админов, скрытый.
- Дипломы — задел: базовый / полный, с порогом срабатывания.
- Порядок курсов — для гибкой сортировки на витрине.
Генератор SVG-обложек
Обложка курса генерируется одной кнопкой:
- «🎨 Сгенерировать» — детерминированно, по названию курса. Один и тот же курс — одна и та же обложка.
- «🎲 Случайно» — новый узор по клику. Если не нравится — жми ещё.
- Своя SVG — можно вставить свою разметку вручную.
- Автопредпросмотр — сразу видно, как обложка будет выглядеть.
Доступ по уникальной ссылке
Новое в v0.22. Курс можно сделать приватным — видимым только по ссылке с токеном. Не в общем каталоге, посторонние не увидят.
Как это работает
- Уровень доступа «По ссылке». В модалке курса выбирается нужный вариант.
- Токен генерируется — кнопка «🎲 Сгенерировать». Можно скопировать или пересоздать.
- Ссылка формируется автоматически — вида
?course=slug&token=xxx. Копируется в буфер одной кнопкой. - Открывается только для залогиненных — дополнительный уровень защиты.
- При пересоздании токена — старые ссылки перестают работать.
Управление контентом
- Список билетов с фильтрами (курс, тема, наличие теории, поиск).
- Создание билета с авто-slug и авто-номером.
- Редактирование билета — заголовок, тема, сложность, активность.
- Редактор блоков контента — добавление, редактирование, удаление, перестановка блоков.
- Массовая вставка блоков — вставить текст билета целиком по маркерам
[Определение],[Теорема],[Доказательство],[Пример],[Рисунок]. - Предпросмотр блоков — увидеть, как блок будет выглядеть для ученика.
Управление вопросами викторины
- Список вопросов с фильтрами: курс, сложность, статус, активность, поиск.
- Создание и редактирование через модалку.
- Удаление с защитой: если вопрос использовался в игре — удаление запрещено, предлагается «скрытие».
- Массовая вставка по маркеру
[Вопрос]— пачка вопросов за раз. - Безопасный HTML в текстах вопросов, вариантах и пояснениях.
- Справка по разрешённым тегам — ссылка «❓ какие теги разрешены» прямо в форме.
- Сокращение длинных вопросов в таблице админки — если есть SVG, показывается только текстовая часть + иконка 🖼.
Административные курсы
Курсы с уровнем доступа «Только для админов» скрыты от обычных пользователей. Видят только администраторы. Для тестовых и методических материалов.
Авторство контента
У курсов, тем, билетов, блоков и вопросов есть поля «кто создал» и «кто последний правил». В админке видно авторство. Помогает при командной работе и разборе правок.
Журнал изменений и Telegram
- Создание записей — заголовок, версия, категория, пункты.
- Публикация — черновик или сразу на сайте.
- Авто-отправка в Telegram-канал — с эмодзи, версией и ссылкой.
- Закрепление важных анонсов.
- Повторная отправка редактирует существующее сообщение, а не создаёт новое.
- Авторство записей — кто создал, кто правил.
Для разработчика
REST API
Все данные доступны через REST API — от курсов до авторизации. Это основа интеграций.
- Публичные эндпоинты — курсы, билеты, вопросы, журнал. Поддержка
?token=xxxдля приватных курсов. - Авторизация и прогресс — OAuth, сессии, синхронизация.
- Викторина — старт, ответ, финиш. Правильные ответы — только на сервере.
- Админка — защищена проверкой роли.
Документация
Проект полностью задокументирован — документы в папке docs/.
- Правила работы — как ведётся проект.
- Архитектура — как всё устроено.
- Схема БД — 40 таблиц с описанием.
- Спецификация — что сделано и что в работе.
- Идеи и техдолг — что в планах.
- История релизов — все версии.
- Стандарт кода —
CODE-STYLE.md.
О технологиях — в приложении A6. Технологии.
Безопасность
- Санитайзер HTML — белый список тегов, двойная защита (при сохранении и при выдаче).
- Санитизация публичного API — теперь и
/api/questionsпроходит через санитайзер. - Правильные ответы — только на сервере. Клиент их не видит.
- Параметризованные SQL-запросы — защита от инъекций.
- Разграничение доступа — админские эндпоинты защищены, приватные курсы — по токену.
- Секреты в
.env— не в коде, не в бэкапах.
Темы и адаптив
Две темы оформления
Тёмная и светлая. Переключение — мгновенное, в шапке сайта. Выбор сохраняется в браузере.
- Синий акцент —
#66c0f4. Основной цвет интерфейса. - Зелёный акцент —
#a4d007. Позитив, успех. - Фиолетовый акцент —
#8b5cf6. Дополнительный. - Оранжевый акцент —
#e0a458. Предупреждения. - Тёмный фон —
#1b2838/#16202d. Основа тёмной темы. - Светлый текст —
#c7d5e0. Основной текст.
Адаптивность
Платформа работает на любых экранах. При сужении — второстепенные элементы скрываются, компоновка перестраивается.
- ≤900px — шапка компактнее, часть элементов скрывается.
- ≤600px — интерфейс викторины адаптируется под телефон.
- ≤400px — минимальная ширина экрана, всё читаемо.
Индикатор загрузки
При загрузке данных — спиннер в шапке. Место зарезервировано, интерфейс не сдвигается.
Что в работе
Прямо сейчас — ничего в работе. Релиз v0.22 закрыт полностью. Следующий релиз — v0.23.
Что скоро (v0.23)
- 📅 Генератор диплома — по итогам курса, в HTML и PDF. Подтверждение квалификации для компаний.
- 📅 Профиль игрока — свои игры и статистика за последнее время.
- 📅 Профиль игрока в админке — админ видит статистику любого игрока.
- 📅 Модалки с деталями метрик на дашборде.
- 📅 Блоки контента на белый список санитайзера — единый уровень безопасности по всему контенту.
- 📅 Осмысленные значения порядка курсов — для гибкой сортировки на витрине.
Что потом
- 🔮 Геймификация — достижения, медали, ежедневные задачи.
- 🔮 Отчёты для родителей — как учится ребёнок.
- 🔮 Друзья — социальные связи.
- 🔮 ИИ-функции — генерация вопросов, дуэли, объяснения.
- 🔮 Интеграции — с сервис-десками, HR-системами, LMS.
Подробнее о базе данных — в приложении A3. База данных.