diff --git a/TZ_GALIKON.html b/TZ_GALIKON.html
new file mode 100644
index 0000000..fe92a9f
--- /dev/null
+++ b/TZ_GALIKON.html
@@ -0,0 +1,426 @@
+
+
+
+
+ТЗ Галикон
+
+
+
+Техническое задание: Галикон
+
+1. Общее описание
+
+**Название:** Галикон — мобильное веб-приложение для спортсменов, тренеров и родителей.
+
+**Цель:** Единая платформа для юных спортсменов (дети от 10 лет): дневник тренировок, контроль здоровья, рейтинги, чаты, игры, нормативы, сравнение с чемпионами. Аналогов в мире нет.
+
+Пользователи:
+- Спортсмен (основной пользователь)
+- Тренер (видит своих учеников)
+- Родитель (видит профиль ребёнка)
+- Администратор (управление пользователями)
+
+
+2. Технический стек
+
+
+
+
+
+3. Функциональные требования
+
+3.1. Регистрация и вход
+
+Регистрация — 8 шагов:
+ФИО (string, обязательно)
+Логин (латиница, уникальный) + пароль (хеширование bcrypt, минимум 6 символов)
+Вид спорта (select из 39 олимпийских видов)
+Роль: спортсмен / тренер / родитель (если родитель — поле «Имя ребёнка»)
+Дата рождения → возраст вычисляется автоматически. Аватарка (эмодзи на выбор) или загрузка фото (JPEG/PNG, макс 5 МБ)
+Страна (select) → город (datalist с подсказками по стране)
+Клуб, тренер (ФИО), разряд/звание, цель (произвольный текст)
+Телефон (обязательно, валидация формата) + Email (обязательно)
+
+Вход:
+- Логин + пароль
+- JWT access token (15 мин) + refresh token (30 дней)
+- Rate limiting: 5 попыток → блокировка на 1 минуту
+- Автовыход через 30 минут бездействия
+
+Безопасность:
+- Пароли: bcrypt с солью
+- CSP-заголовки
+- Санитизация всех пользовательских вводов (XSS-защита)
+- HTTPS обязательно
+- CORS только для доверенных доменов
+
+
+3.2. Профиль спортсмена
+
+Отображение:
+- Аватар, ФИО, вид спорта, роль
+- Дата рождения, возраст, страна, город
+- Клуб, тренер, разряд, цель
+- Телефон, email
+
+Значки (геймификация):
+Автоматический подсчёт по данным пользователя:
+- 🏊 Первая тренировка (1+ запись в дневнике)
+- 📖 10 тренировок
+- 🔥 30 тренировок
+- 🏆 Рекордсмен (есть достижения)
+- 🎯 Снайпер (победа в игре «Угадай число»)
+- ⚡ Молния (реакция < 300 мс)
+- 🧠 Знаток (викторина 5+/8)
+- 💪 100 км (суммарный километраж > 100)
+
+Достижения:
+Пользователь добавляет: название, дата, описание. Отображаются списком.
+
+Отчёт для тренера (PDF):
+- Генерация PDF на сервере (Puppeteer / wkhtmltopdf)
+- Содержит: ФИО, спорт, клуб, тренер, разряд, цель, значки, достижения, последние 10 записей дневника
+
+
+3.3. Дневник тренировок
+
+Поля записи:
+- Дата (date, обязательно)
+- Тип тренировки (select: Скорость / Техника / Выносливость / ОФП / Соревнование)
+- Километраж (число, км)
+- Лучшее время (строка)
+- Самочувствие (1-5)
+- Заметка (текст)
+
+История:
+- Список записей, сортировка по дате (новые сверху)
+- Удаление записи
+
+Агрегация (для тренера):
+- Всего тренировок
+- Суммарный километраж
+- Среднее самочувствие
+- График прогресса по времени (библиотека Chart.js)
+
+
+3.4. Календарь соревнований
+
+Добавление события:
+- Название (string)
+- Дата (date)
+- Место (string)
+
+Отображение:
+- Предстоящие (сортировка по дате)
+- Прошедшие (сортировка по дате, обратная)
+
+Дополнительно (желательно):
+- Push-уведомление за день до события
+- Цветовое кодирование по типу (соревнование / сборы / тренировка)
+
+
+3.5. Чаты
+
+Архитектура:
+- WebSocket-соединение (Socket.io)
+- Комнаты: личные (1-на-1), групповые
+- Сообщения хранятся в PostgreSQL
+- Индикатор «прочитано/не прочитано»
+
+Функции:
+- Список чатов с другими пользователями
+- Фильтр по роли: Все / Спортсмены / Тренеры / Родители
+- Отправка текстовых сообщений
+- Счётчик непрочитанных
+- Групповые чаты (создание, добавление участников)
+
+Встроенные игры (в чате):
+**Крестики-нолики** — пошаговая игра, синхронизация через WebSocket
+**Угадай число (1-100)** — 7 попыток, победа < 5 попыток = +2 звезды
+**Реакция** — измерение времени реакции, рекорд < 300 мс = +1 звезда
+**Спорт-викторина** — 8 вопросов, результат 5+/8 = +1-5 звёзд
+
+
+3.6. Рейтинговая система
+
+Звёзды начисляются за:
+- Победы в играх
+- Высокие результаты викторины
+- Голоса других пользователей
+
+Рейтинг:
+- Топ-5 спортсменов по звёздам
+- Отображение: место, ФИО, звёзды, результаты викторины, победы в играх
+- Топ-3 выделены золотом/серебром/бронзой
+
+
+3.7. Инструменты
+
+Нормативы:
+- Статическая таблица разрядов по плаванию (50 м бассейн): МСМК → 2 юношеский
+- Дистанции: 50 м, 100 м, 400 м вольный стиль
+
+Сравнение с чемпионами:
+- Данные Калеба Дрессела по возрастам (14-18 лет)
+- Пользователь вводит своё время и возраст → сравнение
+- Показывает: текущий результат → КМС → результат Дрессела в этом возрасте
+
+Анализ видео:
+- Загрузка видео (MP4, макс 200 МБ)
+- Плеер с покадровой перемоткой (шаг 0.033 сек, 0.1 сек, 1 сек)
+- Счётчик текущего кадра
+- Play/Pause
+
+Витамины:
+- Чек-лист на сегодня: D3, Омега-3, Магний, Цинк, BCAA
+- Сохранение истории по дням
+
+Сон и пульс:
+- Запись часов сна и утреннего пульса
+- Средние значения за 7 дней
+
+Анализы:
+- Гемоглобин, Ферритин, Витамин D, Витамин B12
+- История значений с датами
+
+Видеоуроки:
+- Список поисковых запросов для YouTube (12 тем по технике плавания)
+
+
+3.8. Кабинет тренера
+
+Поиск учеников:
+- Автоматически: все пользователи, у которых поле «Тренер» совпадает с ФИО тренера
+
+Отображение по каждому ученику:
+- Аватар, ФИО, вид спорта, разряд, цель
+- Суммарный километраж
+- Последние 5 тренировок (дата, тип, км, время)
+
+
+3.9. Кабинет родителя
+
+Привязка ребёнка:
+- Родитель вводит логин ребёнка → привязка (сохраняется в профиле родителя)
+
+Отображение:
+- Профиль ребёнка (как у спортсмена)
+- Статистика: всего тренировок, км, среднее самочувствие
+- Значки ребёнка
+- Дневник тренировок (последние 15 записей)
+- Цель и тренер ребёнка
+- Кнопка «Отвязать»
+
+
+3.10. Админ-панель
+
+Доступ:
+- Отдельный мастер-пароль администратора
+
+Функции:
+- Просмотр всех пользователей (ФИО, роль, логин, спорт, клуб, звёзды)
+- Удаление пользователя
+- Сброс пароля пользователя
+
+
+3.11. PWA (Progressive Web App)
+
+Требования:
+- manifest.json с иконками (192x192, 512x512)
+- Service Worker для офлайн-доступа
+- Установка на домашний экран (iOS/Android)
+- Режим standalone (без адресной строки браузера)
+- Splash screen на iOS
+
+
+4. Нефункциональные требования
+
+| Фронтенд | React / Vue 3 + TypeScript, PWA |
+| Бэкенд | Node.js (Express/Fastify) или Go |
+| База данных | PostgreSQL |
+| Кэш | Redis |
+| Файлы | S3-совместимое хранилище (MinIO) |
+| Чат | WebSocket (Socket.io) |
+| Push-уведомления | Firebase Cloud Messaging / Web Push API |
+| Авторизация | JWT + refresh tokens |
+| Хостинг | Docker + Kubernetes или VPS |
+| Параметр | Значение |
+
+
+
+
+5. API (основные эндпоинты)
+
+POST /api/auth/register — регистрация
+POST /api/auth/login — вход
+POST /api/auth/refresh — обновление токена
+GET /api/profile — профиль текущего пользователя
+PUT /api/profile — обновление профиля
+GET /api/profile/:id — профиль другого пользователя
+POST /api/achievements — добавить достижение
+GET /api/diary — дневник (список)
+POST /api/diary — новая запись
+DELETE /api/diary/:id — удалить запись
+GET /api/events — календарь
+POST /api/events — добавить событие
+DELETE /api/events/:id — удалить событие
+GET /api/chats — список чатов
+GET /api/chats/:id/messages — сообщения чата
+POST /api/chats/:id/messages — отправить сообщение
+WS /ws/chat — WebSocket для чата
+POST /api/vote/:userId — проголосовать за пользователя
+GET /api/ranking — рейтинг (топ)
+GET /api/coach/students — ученики тренера
+POST /api/parent/link — привязать ребёнка
+GET /api/admin/users — список пользователей (админ)
+DELETE /api/admin/users/:id — удалить пользователя (админ)
+POST /api/admin/users/:id/reset-password — сброс пароля (админ)
+GET /api/report/pdf — PDF-отчёт для тренера
+POST /api/upload/avatar — загрузка аватара
+POST /api/upload/video — загрузка видео
+POST /api/upload/photo — загрузка фото
+
+
+
+3.12. Аналитика и дашборды
+
+Дашборд спортсмена — главный экран аналитики:
+
+График прогресса (50 м в/с):
+- Линейный график: дата по оси X, время по оси Y
+- Целевая линия (23″) и текущая линия тренда
+- Автоматический расчёт скорости прогресса (секунд в месяц)
+- Прогноз: когда будет достигнута цель при текущем темпе
+
+Радарная диаграмма навыков:
+- 6 осей: старт, поворот, подводная фаза, гребок, выносливость, финиш
+- Оценки 1-10 выставляет тренер или сам спортсмен
+- Сравнение с предыдущим месяцем
+
+Круговые диаграммы тренировок:
+- Распределение по типам: скорость / техника / выносливость / ОФП
+- За текущий месяц и за всё время
+
+Тепловая карта активности:
+- Календарь GitHub-style: каждый день — квадратик
+- Цвет зависит от километража (0 — серый, 5+ км — ярко-голубой)
+- Видно пропуски тренировок и интенсивные периоды
+
+Счётчики (KPI):
+- Всего тренировок, общий километраж, лучший результат
+- Среднее самочувствие, динамика пульса, средний сон
+- Недельная/месячная нагрузка
+
+Сравнительная аналитика:
+- Сравнение своего прогресса со средним по возрастной группе
+- Сравнение с товарищами по клубу (анонимно)
+- Процентиль: «Ты быстрее 78% пловцов твоего возраста»
+
+Экспорт данных:
+- CSV-выгрузка всех тренировок
+- Excel-отчёт с графиками (автоматическая генерация)
+- PDF-дашборд для тренера
+
+Технологии:
+- Chart.js / ECharts / D3.js для визуализации
+- Данные агрегируются на бэкенде (SQL-запросы с GROUP BY)
+- Кэширование агрегаций в Redis (обновление раз в час)
+
+API для аналитики:
+GET /api/analytics/progress/:metric — график прогресса по метрике
+GET /api/analytics/radar — радарная диаграмма
+GET /api/analytics/heatmap — тепловая карта (год)
+GET /api/analytics/distribution — распределение типов тренировок
+GET /api/analytics/kpi — ключевые показатели
+GET /api/analytics/compare — сравнение с группой
+GET /api/analytics/export/csv — CSV-выгрузка
+GET /api/analytics/export/dashboard — PDF-дашборд
+
+
+Дашборд тренера:
+- Сводка по всем ученикам: таблица с сортировкой по любому столбцу
+- Групповой график прогресса (все ученики на одном графике)
+- Выделение отстающих (красная зона) и лидеров (зелёная зона)
+- Уведомления: ученик не тренировался 3+ дня → алерт тренеру
+- Экспорт сводного отчёта по группе
+
+Дашборд родителя:
+- Упрощённая версия: график прогресса ребёнка, счётчики
+- Уведомления о новых достижениях и значках
+- Еженедельный email-отчёт (опционально)
+
+
+6. База данных (основные таблицы)
+
+users: id, login, password_hash, name, sport, role, birth_date, age,
+ country, city, club, coach, rank, goal, phone, email,
+ avatar_url, photo_url, stars, quiz_score, games_won,
+ created_at, updated_at
+
+achievements: id, user_id, title, date, description
+
+diary_entries: id, user_id, date, type, km, best_time, feel, note
+
+events: id, user_id, title, date, location
+
+messages: id, chat_id, from_user_id, to_user_id, text, read, created_at
+
+chats: id, type (direct/group), name
+
+chat_members: chat_id, user_id
+
+vitamins: id, user_id, date, vitamin_type, taken
+
+sleep_log: id, user_id, date, hours, pulse
+
+tests: id, user_id, test_type, value, date
+
+parent_links: parent_id, child_id
+
+votes: voter_id, target_id, created_at
+
+
+
+7. Этапы разработки
+
+| Язык интерфейса | Русский |
+| Адаптивность | Mobile-first, поддержка десктопа |
+| Браузеры | Chrome 90+, Safari 14+, Firefox 90+ |
+| Производительность | First paint < 2 сек, взаимодействие < 100 мс |
+| Доступность | WCAG 2.1 AA |
+| Масштабируемость | До 100 000 пользователей |
+| Резервное копирование | Ежедневный бэкап БД |
+| Этап | Содержание | Срок |
+
+
+
+**Итого:** ~10 недель на MVP командой из 2-3 разработчиков.
+
+
+| 1 | База данных, API авторизации, регистрация | 2 недели |
+| 2 | Профиль, дневник, календарь | 2 недели |
+| 3 | Чаты (WebSocket) + игры | 2 недели |
+| 4 | Рейтинг, кабинет тренера, кабинет родителя | 1 неделя |
+| 5 | Инструменты (нормативы, сравнение, видео, витамины) | 1 неделя |
+| 6 | Админ-панель, PDF-отчёт | 1 неделя |
+| 7 | PWA, тестирование, деплой | 1 неделя |
+
+
+
+
\ No newline at end of file