A1 · Функционал

Что уже умеет Грейдум — в деталях

✅Что уже работает

Грейдум · Платформа обучения — публичная инсталляция движка Грейдум. Это живая платформа с реальными учениками, курсами и викториной. Не «прототип» — рабочий продукт.

Три роли — три набора функций 🎓 Ученик Курсы, билеты, викторина, прогресс 🛠 Админ Курсы, билеты, вопросы, журнал, дашборд 💻 Разработчик REST API, документация, интеграции
Платформа покрывает три роли: ученик, админ, разработчик
Публичная инсталляция. Это первая площадка, где обкатывается движок. Демо — грейдум-платформа.рф.

🎓Для ученика

Витрина курсов

Стиль Steam-style: карточки с обложками, тегами и числом вопросов. Фильтр по классу. Бейджи «ОСНОВНОЙ» и «НОВЫЙ».

Витрина курсов
Витрина курсов: карточки с обложками, тегами и числом вопросов

Оглавление курса

Темы и билеты с прогрессом. Сквозная нумерация. Поиск по билетам. Метка «прочитано». Сворачивание курсов. Счётчик «X из Y прочитано».

Список курсов и билетов
Список курсов: темы, билеты, прогресс прочитанного

Билет с теорией

Каждый билет содержит несколько блоков:

  • Определения — синий стиль.
  • Теоремы с доказательствами — фиолетовый стиль.
  • Примеры — жёлтый стиль.
  • SVG-рисунки — с подписями.
Билет с теорией
Билет с теорией: определения, теоремы с доказательствами, рисунки

Викторина — три режима

  • Спринт — быстро, с таймером (25 секунд), автопереход.
  • Разбор — с пояснениями после ответа, без спешки.
  • Размышление — варианты скрыты до кнопки «Показать варианты». После ответа — пояснение, как в «Разборе».
Викторина в режиме Разбор
Викторина в режиме «Разбор»: пояснение после ответа, клавиатурные подсказки

Улучшенный финал викторины

В блоке «Стоит повторить» — теперь понятная обратная связь:

  • Названия билетов — а не технические идентификаторы.
  • Счёт ошибок по билету — «2 из 3 мимо».
  • Сортировка по числу ошибок — сверху самые проблемные билеты.
  • Кликабельная ссылка — можно сразу перейти к билету и повторить.
Финал викторины
Финал викторины: «Стоит повторить» с названиями билетов и счётом ошибок

Безопасный HTML в вопросах

В текстах вопросов, вариантах ответа и пояснениях можно использовать безопасный HTML — это открывает новые форматы заданий.

  • Форматирование: жирный, курсив, перенос строки.
  • Таблицы: для заданий на сопоставление.
  • SVG-графики: с осями, стрелками, подписями.
  • Нижние индексы и степени: v₀, x².
Что это открывает. Задания с рисунками (графики движения, схемы), с таблицами (сопоставление понятий и значений), с многострочным текстом — всё это теперь работает.
Подробнее о безопасности — в приложении A5. Безопасность.

Что ещё есть для ученика

  • Метки сложности — базовый / средний / сложный.
  • Выбор числа вопросов — 5 / 10 / 15 / 20.
  • Звания — зависят от курса («Профессор математики», «Академик словесности»).
  • Клавиатурные сокращения — 1–4, Esc, Enter.
  • Две темы оформления — тёмная и светлая.
  • Авторизация через Яндекс — в один клик.
  • Синхронизация прогресса — между устройствами.
  • Журнал изменений — видно, что нового.
  • Telegram-канал — свежие анонсы в мессенджере.

🛠Для админа

Дашборд с метриками

Ключевые показатели проекта: контент, вопросы, пользователи, игры. График «Игры за 7 дней». Автообновление раз в 5 минут.

Дашборд админа
Дашборд: метрики проекта — контент, вопросы, пользователи, игры

Редактор курсов и тем

Новое в v0.22. Раньше курсы и темы создавались только через SQL. Теперь — прямо в админке. Во вкладке «Контент» появился под-таб «📚 Курсы» — первым, перед «Билетами» и «Вопросами».

Что можно делать

  • Создать курс — название, описание, класс, бейдж, видимость.
  • Редактировать курс — все поля + обложка + список тем.
  • Список тем — прямо в модалке курса. Создание, редактирование, скрытие.
  • Настроить уровень доступа — публичный, только для авторизованных, по ссылке, только для админов, скрытый.
  • Дипломы — задел: базовый / полный, с порогом срабатывания.
  • Порядок курсов — для гибкой сортировки на витрине.
Вкладка «Курсы» в админке
Вкладка «📚 Курсы»: список курсов с уровнем доступа, темами, вопросами
Модалка редактирования курса
Модалка курса: SVG-обложка, генератор, список тем, настройки доступа
Привязка к гибкости. Новый курс — за минуты, без участия программиста. Раньше это занимало недели (через SQL). Подробнее о скорости — в приложении A7. Скорость создания контента.

Генератор SVG-обложек

Обложка курса генерируется одной кнопкой:

  • «🎨 Сгенерировать» — детерминированно, по названию курса. Один и тот же курс — одна и та же обложка.
  • «🎲 Случайно» — новый узор по клику. Если не нравится — жми ещё.
  • Своя SVG — можно вставить свою разметку вручную.
  • Автопредпросмотр — сразу видно, как обложка будет выглядеть.
Курс собирается за час — включая обложку. Не нужен дизайнер: обложка генерируется одним нажатием. Или — вставить готовую SVG.

Доступ по уникальной ссылке

Новое в v0.22. Курс можно сделать приватным — видимым только по ссылке с токеном. Не в общем каталоге, посторонние не увидят.

Как это работает

  • Уровень доступа «По ссылке». В модалке курса выбирается нужный вариант.
  • Токен генерируется — кнопка «🎲 Сгенерировать». Можно скопировать или пересоздать.
  • Ссылка формируется автоматически — вида ?course=slug&token=xxx. Копируется в буфер одной кнопкой.
  • Открывается только для залогиненных — дополнительный уровень защиты.
  • При пересоздании токена — старые ссылки перестают работать.
Блок «Поделиться курсом»
Блок «Поделиться»: токен, ссылка с токеном, кнопки «Копировать» и «Сгенерировать»
Привязка к компаниям. Обучение для отдельных групп инженеров без публикации в общем каталоге. Пилот — для одного подразделения. Партнёрская программа — для конкретного заказчика.

Управление контентом

  • Список билетов с фильтрами (курс, тема, наличие теории, поиск).
  • Создание билета с авто-slug и авто-номером.
  • Редактирование билета — заголовок, тема, сложность, активность.
  • Редактор блоков контента — добавление, редактирование, удаление, перестановка блоков.
  • Массовая вставка блоков — вставить текст билета целиком по маркерам [Определение], [Теорема], [Доказательство], [Пример], [Рисунок].
  • Предпросмотр блоков — увидеть, как блок будет выглядеть для ученика.
Редактор блоков — ключевая фича. Позволяет наполнять билеты теорией через интерфейс, без SQL. Это делает создание курса быстрым и удобным. Подробнее — в приложении A7. Скорость создания контента.

Управление вопросами викторины

  • Список вопросов с фильтрами: курс, сложность, статус, активность, поиск.
  • Создание и редактирование через модалку.
  • Удаление с защитой: если вопрос использовался в игре — удаление запрещено, предлагается «скрытие».
  • Массовая вставка по маркеру [Вопрос] — пачка вопросов за раз.
  • Безопасный HTML в текстах вопросов, вариантах и пояснениях.
  • Справка по разрешённым тегам — ссылка «❓ какие теги разрешены» прямо в форме.
  • Сокращение длинных вопросов в таблице админки — если есть SVG, показывается только текстовая часть + иконка 🖼.

Административные курсы

Курсы с уровнем доступа «Только для админов» скрыты от обычных пользователей. Видят только администраторы. Для тестовых и методических материалов.

Авторство контента

У курсов, тем, билетов, блоков и вопросов есть поля «кто создал» и «кто последний правил». В админке видно авторство. Помогает при командной работе и разборе правок.

Журнал изменений и Telegram

  • Создание записей — заголовок, версия, категория, пункты.
  • Публикация — черновик или сразу на сайте.
  • Авто-отправка в Telegram-канал — с эмодзи, версией и ссылкой.
  • Закрепление важных анонсов.
  • Повторная отправка редактирует существующее сообщение, а не создаёт новое.
  • Авторство записей — кто создал, кто правил.
Журнал изменений
Журнал изменений: записи с датами, версиями, категориями

💻Для разработчика

REST API

Все данные доступны через REST API — от курсов до авторизации. Это основа интеграций.

  • Публичные эндпоинты — курсы, билеты, вопросы, журнал. Поддержка ?token=xxx для приватных курсов.
  • Авторизация и прогресс — OAuth, сессии, синхронизация.
  • Викторина — старт, ответ, финиш. Правильные ответы — только на сервере.
  • Админка — защищена проверкой роли.
Полный справочник API — в приложении A4. API.

Документация

Проект полностью задокументирован — документы в папке docs/.

  • Правила работы — как ведётся проект.
  • Архитектура — как всё устроено.
  • Схема БД — 40 таблиц с описанием.
  • Спецификация — что сделано и что в работе.
  • Идеи и техдолг — что в планах.
  • История релизов — все версии.
  • Стандарт кода — CODE-STYLE.md.
Подробнее о документации — в приложении A10. Документация.
О технологиях — в приложении A6. Технологии.

Безопасность

  • Санитайзер HTML — белый список тегов, двойная защита (при сохранении и при выдаче).
  • Санитизация публичного API — теперь и /api/questions проходит через санитайзер.
  • Правильные ответы — только на сервере. Клиент их не видит.
  • Параметризованные SQL-запросы — защита от инъекций.
  • Разграничение доступа — админские эндпоинты защищены, приватные курсы — по токену.
  • Секреты в .env — не в коде, не в бэкапах.
Подробнее о безопасности — в приложении A5. Безопасность.

🎨Темы и адаптив

Две темы оформления

Тёмная и светлая. Переключение — мгновенное, в шапке сайта. Выбор сохраняется в браузере.

Палитра проекта:
  • Синий акцент — #66c0f4. Основной цвет интерфейса.
  • Зелёный акцент — #a4d007. Позитив, успех.
  • Фиолетовый акцент — #8b5cf6. Дополнительный.
  • Оранжевый акцент — #e0a458. Предупреждения.
  • Тёмный фон — #1b2838 / #16202d. Основа тёмной темы.
  • Светлый текст — #c7d5e0. Основной текст.

Адаптивность

Платформа работает на любых экранах. При сужении — второстепенные элементы скрываются, компоновка перестраивается.

  • ≤900px — шапка компактнее, часть элементов скрывается.
  • ≤600px — интерфейс викторины адаптируется под телефон.
  • ≤400px — минимальная ширина экрана, всё читаемо.
Можно заниматься с телефона. Не только читать теорию, но и проходить викторину — в метро, в дороге, где угодно.

Индикатор загрузки

При загрузке данных — спиннер в шапке. Место зарезервировано, интерфейс не сдвигается.

🔄Что в работе

Прямо сейчас — ничего в работе. Релиз v0.22 закрыт полностью. Следующий релиз — v0.23.

Что скоро (v0.23)

  • 📅 Генератор диплома — по итогам курса, в HTML и PDF. Подтверждение квалификации для компаний.
  • 📅 Профиль игрока — свои игры и статистика за последнее время.
  • 📅 Профиль игрока в админке — админ видит статистику любого игрока.
  • 📅 Модалки с деталями метрик на дашборде.
  • 📅 Блоки контента на белый список санитайзера — единый уровень безопасности по всему контенту.
  • 📅 Осмысленные значения порядка курсов — для гибкой сортировки на витрине.

Что потом

  • 🔮 Геймификация — достижения, медали, ежедневные задачи.
  • 🔮 Отчёты для родителей — как учится ребёнок.
  • 🔮 Друзья — социальные связи.
  • 🔮 ИИ-функции — генерация вопросов, дуэли, объяснения.
  • 🔮 Интеграции — с сервис-десками, HR-системами, LMS.
Подробнее о планах — в приложении A9. Планы развития.
Что сделано — в приложении A10. Документация.
Подробнее об архитектуре — в приложении A2. Архитектура.
Подробнее о базе данных — в приложении A3. База данных.