Files
dev 70b0c7ae9b feat: env-driven upload limits + request timeout, inline video playback, range requests
- Add UPLOAD_FILE_LIMIT_MB/UPLOAD_TOTAL_LIMIT_MB env (defaults 50/200), compute request timeout from total limit or UPLOAD_REQUEST_TIMEOUT_MS
- Expose upload limits via /api/public-settings and sync in frontend (remove hardcoded 50MB assumption)
- Add byte-range support in storage (getRange/streamRangeTo) and serve Content-Range/Accept-Ranges for S3/local
- Implement inline playable video delivery for browser formats (mp4/m4v/webm/ogv) with ?play=1, range requests, proper 206/416
- Add video modal in journal UI with player and download fallback
- Update docs (AGENTS.md/PRD.md/README.md), styles for video modal, add instructions/TODO.md and screenshots
- Extend MIME types for media
2026-10-03 12:00:48 +03:00

7.8 KiB
Raw Permalink Blame History

TODO — Инструкция по системе WhatIDo (со скриншотами)

Статус: ☐ todo · ☑ готово · ◐ в работе

Цель: папка instructions/ с полной русскоязычной инструкцией для администратора/преподавателя, каждый раздел проиллюстрирован реальными скриншотами живого стенда (стенд поднят, в БД 358 записей, 151 ученик, 22 группы, 72 модуля, 35 ссылок — данные реальные, не моки).

Часть 0. Подготовка

  • 0.1 Поднять стенд: docker compose ps — app на http://localhost:3003
  • 0.2 Проверить доступность GET / → 200, GET /api/public-settings → system_name=KIBERone
  • 0.3 Получить учётку админа (admin / ADMIN_PASSWORD), POST /api/auth/login → токен
  • 0.4 Инвентаризация всех страниц public/*.html (меню, ID, русские подписи, роли)
  • 0.5 Снять инвентарь данных в БД, чтобы скриншоты были непустыми
  • 0.6 Создать папку instructions/ и этот TODO

Часть 1. Публичная часть — то, что видит ученик

  • 1.1 index.html — форма «Что мы узнали на занятии»: общий вид, шапка, футер
  • 1.2 Блок «Фото»: превью, кнопка «Камера», модалка камеры (снять/отмена)
  • 1.3 Блок «Файлы проекта»: выбор, вставка из буфера, список с размерами, очистка
  • 1.4 Блок полей: ФИО, Группа, Тема модуля, «Что сделал» (+ автодополнение)
  • 1.5 Кнопка «Отправить» + панель успеха #sentPanel с таймером антиспама
  • 1.6 Ошибки/повторная отправка, тосты

Часть 2. Вход и оболочка админки

  • 2.1 login.html — форма входа (логин, пароль, honeypot, ошибки)
  • 2.2 admin.js — сайдбар: логотип, user-box, две группы меню, версия
  • 2.3 Выпадающий список уведомлений в сайдбаре + бейдж

Часть 3. Разделы по порядку (основное → администрирование)

  • 3.1 Дашборд — плитки статистики, динамика за 14 дней, последние записи, активные группы, топ учеников, быстрые действия
  • 3.2 Журнал — фильтры, список/карточки, пагинация, карточка записи
  • 3.3 Журнал — модалка «Редактирование записи» (+ ✨ ИИ-исправление, ИИ предлагает вариант)
  • 3.4 Журнал — «Улучшение фото»: сравнение до/после, слайдеры, режимы ИИ, история версий
  • 3.5 Журнал — модалка «Создать ссылку»
  • 3.6 Ученики — список, фильтры, пагинация, кнопки действий
  • 3.7 Ученики — пакетное добавление, прикрепление к группе
  • 3.8 Ученики — «Данные профиля» (все поля отчёта)
  • 3.9 Ученики — «Экспорт отчёта» (ZIP)
  • 3.10 Группы — карточки, расписание, филиал/тутор
  • 3.11 Группы — галерея фото группы (загрузка, обложка, порядок, правка)
  • 3.12 Группы — «Архив файлов группы» (ZIP-выгрузка)
  • 3.13 Фото — все фото, фильтры по источнику, карточки
  • 3.14 Файлы — прикреплённые / откреплённые
  • 3.15 Ссылки — список share-ссылок, бейджи, создание
  • 3.16 Корзина — восстановление, «помеченные на удаление»
  • 3.17 Темы модулей — список, модалка модуля, пакетное добавление
  • 3.18 Филиалы — CRUD
  • 3.19 Пользователи — таблица, модалка, мультивыбор филиалов
  • 3.20 Воркер ИИ — статус, очередь, последние проверки, фото-задания, ошибки
  • 3.21 Аудит — таблица действий, модалка «Детали действия» с диффом
  • 3.22 Блокировки — таблица IP, модалка ручного бана
  • 3.23 Уведомления — полная история, фильтр, «прочитать все», «очистить всё»
  • 3.24 Настройки — 13 секций (система, стек, брендинг, антиспам, ссылки, футер, фото, фото-ИИ, уведомления, ИИ, бэкапы, корзина, блокировки)

Часть 4. Публичные страницы по ссылкам

  • 4.1 share.html (/s/<token>) — карточки записей, фото группы, cookie-баннер, лайтбокс
  • 4.2 share.html — защита паролем #passwordModal
  • 4.3 report.html (/r/<token>) — публичный отчёт: hero, «Обо мне», хроника, работы, файлы, фото, контакты
  • 4.4 error.html — страница ошибки 404

Часть 5. Сборка инструкции

  • 5.1 Скриншоты → instructions/img/ с нумерацией
  • 5.2 instructions/README.md — оглавление, роли, вход, быстрый старт
  • 5.3 Постраничные файлы инструкции 01-… … 05-… с вставленными картинками
  • 5.4 instructions/CHEATSHEET.md — краткая шпаргалка + горячие клавиши/API
  • 5.5 Проверка: все ссылки на изображения существуют, нет битых .md

Итог

Артефакт Описание
instructions/README.md Оглавление + обзор системы + порядок работы
instructions/01-public-form.md Публичная форма ученика (пошагово)
instructions/02-login-shell.md Вход, сайдбар, уведомления
instructions/03-dashboard.md Дашборд
instructions/04-journal.md Журнал: фильтры, редактирование, фото-ИИ, ссылки
instructions/05-students.md Ученики: профили, группы, экспорт
instructions/06-groups-photos-files.md Группы, Фото, Файлы
instructions/07-links-trash.md Ссылки, Корзина
instructions/08-admin-sections.md Модули, Филиалы, Пользователи, Блокировки
instructions/09-worker-audit-notifications.md Воркер ИИ, Аудит, Уведомления
instructions/10-settings.md Настройки: все 13 секций
instructions/11-share-report-pages.md Публичные /s/ и /r/ страницы
instructions/CHEATSHEET.md Шпаргалка
instructions/img/*.png Скриншоты