diff --git a/TZ_gamification_markdown.md b/TZ_gamification_markdown.md new file mode 100644 index 0000000..872eadd --- /dev/null +++ b/TZ_gamification_markdown.md @@ -0,0 +1,526 @@ +# Техническое задание +Задача 9 + +Создание мотивационного 
 +модуля геймификации 
 +для кадровой системы «Алабуги» + + Суть + +В ОЭЗ «Алабуга» работает более 26 000 сотрудников, и ежемесячно к нам +приезжают тысячи кандидатов. Как перед трудоустройством, так и во время +работы у специалистов есть определённые задачи, ведущие к достижению их + +целей. + +Сейчас задачи приходят разрозненно, из-за чего между ними не хватает общей + +связи, и нет ощущения, что один шаг сейчас — это большой вклад в будущее. В +связи с этим мы хотим разработать геймифицированную платформу, на которой +пользователи смогут выполнять различные задачи на любом этапе, отслеживать + +свой прогресс и видеть, что ещё нужно сделать для достижения цели. + +Тематика + +Корпоративная культура «Алабуги» всегда учила нас решать сверхзадачи и +стремиться к звёздам. На крыше пирамиды одного из офисов «Алабуги» +расположен прототип советского орбитального ракетоплана «Буран», напоминая +о том, что в каждом из нас живёт частичка ДНК технологических изобретателей. А +кроме того, в планах компании на ближайшие 25 лет — начать освоение космоса + +и колонизацию лун Юпитера. + +В связи с этим тематику геймифицированной платформы хотелось бы видеть +связанной с тематикой космоса, где пользователи проходят путь от космических + +пилотов-кандидатов до командиров космических подразделений. + +Терминология + +- Пользователь — кандидат или сотрудник, пользователь платформы. +- HR — сотрудник, отвечающий за разработку заданий в платформе. +- Организатор — сотрудник, проводящий мероприятие (миссию). +- Опыт — очки прогресса, необходимые для повышения ранга. +- Мана — очки игровой валюты, за которые можно приобрести определённые + +бонусы. + +- Ранг — игровое звание пользователя. Открывает новые задачи и цели. +- Артефакты — знаки отличия за миссии. +- Компетенции — определённые навыки со шкалами прогресса. + + + + 1. Основные механики + +1. Ранги + +Выполняя различные задачи на всех этапах, пользователи получают опыт и +ману, которые повышают их ранг. Ранги расположены в линейной +последовательности, и нельзя через них перескакивать. Для повышения ранга есть + +## 3 условия: + +- Первое — достаточное количество опыта, полученного при выполнении + +заданий. + +- Второе — выполнение определённых заданий, необходимых для желаемого + +грейда. + +- Третье — получение необходимого уровня прокачки конкретных + +компетенций. + +Пример: + +кандидат хочет получить оффер. Чтобы получить оффер, кандидату необходимо набрать 500 очков +опыта, выполнить задания (загрузка документов, заполнение резюме, выбор направлений) и +прокачать компетенции «Общение» и «Аналитика» до 1 балла. Выполнив все условия, кандидат +сможет получить оффер. + +Примеры + +рангов: +искатель, разведчик, навигатор, пилот-кандидат, принятый в экипаж, пилот-испытатель, лидер +эскадрильи, командир космического поселения и т. д. + +нейминга + +для + +Со стороны HR необходимо сделать возможность настраивать условия для + +получения рангов: + +- Опыт: [NNN] +- Ключевые задания: [mission1, mission2] +- Уровень компетенций: [competention=N] + +2. Миссии + +Миссии — это список заданий, доступных пользователю. Список миссий должен +меняться в зависимости от ранга. Открыв миссию, пользователь должен + +ознакомиться со всеми условиями и иметь возможность перейти к действию. + +Примеры миссий: сбор документов, заполнение резюме, прохождение бизнес-симуляций, +приезд на очный этап, прохождение собеседования, прохождение онбординга, выполнение плана +на месяц, участие в ежегодном ассессменте и т. д. + +Минимальный список параметров для миссии: + + + ● Название миссии +- Описание миссии +- Награда в опыте +- Награда в мане +- Доступность по рангу +- Какие компетенции на сколько прокачиваются +- Дополнительно: будет здорово за некоторые миссии выдавать особые + +награды — артефакты + +3. Ветвление + +Миссии должны быть связанными, а не сами по себе. В списке миссий + +пользователь должен видеть, какие ветви пути у него есть, например: + +Ветка 1 — Блогерская: + +- Миссия 1 — пост с фото +- Миссия 2 — сторис с хэштегом +- Миссия 3 — съёмка видеоблога про компанию + +Миссии могут делиться по категориям: + +- Квесты — базовые онлайн и офлайн задачи +- Рекрутинг — задания, направленные на привлечение новых кандидатов +- Лекторий — задания, направленные на обучение коллег и кандидатов +- Симулятор — задания, направленные на проверку знаний, например тесты, + +соревнования + +При этом нельзя делать список миссий статичным, так как время, люди, задачи, +цели — всё меняется. Соответственно, со стороны HR мы должны иметь +возможность создания и редактирования миссий, чтобы поддерживать +интересные и актуальные задачи в списке миссий у пользователей. + +4. Бортовой журнал + +История действий, прогресса пользователя и рейтинга. Пользователь может +видеть свой прогресс, сколько он выполнил и к чему это привело. Также доступен + +просмотр ТОПов за месяц, неделю или год. + + + + + 5. Навыки + +Список всех имеющихся компетенций с текущим уровнем прокачки: + +- Вера в дело +- Стремление к большему +- Общение +- Аналитика +- Командование +- Юриспруденция +- Трёхмерное мышление +- Базовая экономика +- Основы аэронавигации + +Прокачивать компетенции можно, выполняя миссии. + +6. Хранилище + +Магазин, в котором можно приобрести за ману разнообразный мерч, товары, + +билеты и прочие бонусы. + +7. Онбординг + +Для большего погружения в тематику необходимо не просто выдавать задачи и +поощрять баллами, а периодически предоставлять интересные отрывки лора. +Онбординг должен рассказывать о работе отдельных блоков на платформе, + +подкрепляя это интересными научными и историческими фактами о космосе. + +8. Статистика для HR-специалистов + +HR-специалистам важно иметь доступ к информации для анализа конверсии +выполнения миссий, веток и прогресса пользователей. Если результат миссии +можно увидеть удалённо, будет здорово, чтобы пользователи прикрепляли его при +закрытии миссии. В таком случае также необходим функционал модерации + +выполнения заданий. + +9. Артефакты + +Артефакты — уникальные награды, которые можно получить за прохождение + +миссий. Необходим функционал создания артефактов со стороны HR. + + + + У артефакта есть атрибуты: + +- Изображение +- Название +- Краткое описание +- Дополнительно: редкость артефакта + +2. Наши ресурсы + +ОЭЗ «Алабуга» [alabuga.ru] + +- основной сайт компании + +HR-платформа [hr.alabuga.ru] + +- основная платформа для авторизации в экосистеме «Алабуги». На этой +платформе расположены бизнес-симуляции, в которые играют кандидаты и + +сотрудники + +Карьера.100 лидеров [career.alabuga.space] + +Карьера.Политех — [в разработке] +Карьера.Старт — [в разработке] +- платформы для трудоустройства кандидатов. В этих сервисах кандидаты + +заполняют резюме, документы, проходят симуляции, записываются на очные + +этапы и проходят собеседования + +Алга.Алабуга [alga.alabuga.ru] + +- профориентационные экскурсии, которые запомнятся каждому участнику! + +3. Программно-аппаратные требования + +3.1. Аппаратные требования и подход к разработке + +Mobile First (для пользователей-сотрудников/кандидатов): интерфейс должен +быть адаптирован под мобильные устройства (ширина viewport от 320px). +Предполагается, что большинство задач пользователи будут выполнять на ходу: + +проверять задания, загружать фотоотчёты, тратить ману в магазине. + + + + + Desktop/Tablet (для HR-специалистов): административный интерфейс для +требует большого экрана. + +создания миссий, отслеживания статистики + +Минимальная ширина — 1024px. + +3.2. Программные требования (стек технологий) + +Данный стек рекомендованный, но не обязательный. + +Frontend: + +Фреймворк: React (предпочтительно с использованием функциональных + +компонентов и хуков) + +Язык: TypeScript (строгая типизация критически важна для избежания ошибок в + +рангах, миссиях и наградах) + +Стили: CSS-in-JS (Styled-components, Emotion) или modern CSS с модулями. + +Важно обеспечить тему, легко меняемую под космический стиль + +Состояние: Redux Toolkit / MobX / Zustand для управления сложным состоянием + +приложения (ранги, миссии, инвентарь) + +Роутинг: React Router + +Backend: + +Фреймворк: Python + FastAPI (современный, высокопроизводительный) или + +Django (более богатый из коробки, но тяжелее) + +База данных: SQLite на время хакатона — для простоты разработки и + +демонстрации. В продакшене — PostgreSQL + +Аутентификация: JWT-токены. Необходима интеграция с «hr.alabuga.ru» (на + +хакатоне можно замокать или использовать простой вход по логину/паролю) + +Прочее: + +Контроль версий: Git + +4. Требования к презентации/демонстрации + + + + Презентация должна быть в формате последовательного пользовательского + +сценария (User Flow). + +Цель: показать не набор разрозненных кнопок, а историю одного пользователя. + +Пример сценария для демонстрации: + +Кандидат (ранг: «Искатель») заходит на платформу, проходит онбординг. + +Видит свою цель — «Получить оффер» (требует ранг «Пилот-кандидат»). + +Переходит в раздел «Миссии», видит доступные ветки: «Рекрутинг» (загрузка резюме, + +документов) и «Лекторий» (просмотр видео о компании). + +Выбирает миссию «Загрузить резюме» → загружает файл → получает награду (опыт, мана, + +прокачка компетенции «Аналитика»). + +В «Бортовом журнале» видит запись о выполненной миссии и рост progress bar до следующего + +ранга. + +После выполнения всех ключевых миссий система автоматически повышает его ранг до «Пилот- + +кандидат» и выдаёт уведомление об успехе. + +Пользователь заходит в «Хранилище» и тратит заработанную ману на мерч (например, + +«Футболка Алабуга» за 100 маны). + +Для HR: показать один экран создания/редактирования миссии с полями (название, описание, + +опыт, мана, ранг, компетенции). + +5. Требования к сопроводительной документации + +Краткий документ (README.md в репозитории), описывающий: + +Команда и роли. Кто за что отвечал. + +Архитектура. Краткое описание структуры фронтенда и бэкенда (какие + +основные модули, как взаимодействуют). + +Реализованные механики. Список того, что получилось сделать (например: + +«Реализована система рангов с проверкой 3 условий», «Реализован CRUD для + +миссий со стороны HR»). + + + + + + Что не реализовано и почему. Честность приветствуется. + +Инструкция по запуску. Как установить зависимости и запустить приложение + +локально. + +Ссылки. Ссылка на рабочий демо-сайт, ссылка на репозиторий с кодом. + +6. Ресурсы + +Основные референсы: Предоставлены ниже. + +В оформлении использовать логотип (из приложенного файла) и брендовые + +цвета: + +Ключевые интеграции: + +“hr.alabuga.ru” -> Аутентификация. + +“career.alabuga.space” -> Источник задач для кандидатов. + +Бизнес-симуляции с “hr.alabuga.ru” -> Задачи типа "Симуляция". + +На хакатоне: Достаточно замокать данные интеграции (например, сделать +несколько пользователей в БД и эмулировать успешный возврат с бизнес- + +симуляции). + + + + + 7. Требования к сдаче решений + +7.1. Промежуточная сдача (Концепт) + +Визуальный концепт: + +- Макеты ключевых экранов (как минимум: ЛК пользователя с прогрессом, список + +миссий, карточка миссии, ЛК HR для создания миссии) в Figma/Adobe XD. + +- Проработанный космический UI-kit: цветовая палитра, кнопки, типографика, + +иконки. + +Предпочтительная реализация ключевых механик: + +- Работающий фронтенд на React с роутингом между пустыми страницами. +- Работающий бэкенд на Python с 2-3 API-эндпоинтами (например, “GET + +/api/missions”, “POST /api/missions”). + +- Реализована хотя бы одна сложная механика на выбор: система проверки условий + +для повышения ранга ИЛИ система ветвления миссий. + +User Stories в формате: + +- «Как Кандидат, я хочу видеть свой прогресс в виде progress bar, чтобы понимать, + +сколько еще нужно сделать для оффера». + +- «Как HR, я хочу иметь возможность указать награду в мане за миссию, чтобы + +мотивировать пользователей выполнять ее». + +7.2. Финальная сдача + +Полная реализация одного end-to-end процесса. Например, процесса + +«Кандидат выполняет миссии для получения оффера»: + +- Пользователь регистрируется/логинится (мок). +- Видит свой текущий ранг и цели. +- Выполняет 2-3 связанные миссии из одной ветки (квест + симулятор). +- Система начисляет опыт, ману, прокачивает компетенции. +- При выполнении всех условий система автоматически повышает ранг + +пользователя. + + + + + + ● Пользователь видит это изменение в UI (уведомление, изменение в бортовом + +журнале). + +- Демонстрация – это сквозной сценарий, а не показ отдельно взятого экрана + +миссий и отдельно взятого экрана ранга. + +8. Критерии оценки (на что делать акцент) + +1. Подход коллектива к решению задачи (20%): + +- Понимание бизнес-цели: Не просто «сделать игру», а «повысить вовлеченность и + +связанность этапов». + +- Работа в команде: Использование Git (много мелких коммитов, а не один + +огромный), распределение задач (Trello/Notion/Kanban-доска).*Желательно + +- Качество визуального концепта. Умение перенести космическую тему в + +интерфейс. + +2. Техническая проработка решения (30%): + +- Чистота и структура кода (отступы, именование переменных, компонентный + +подход). + +- Архитектурные решения: Как спроектированы модели данных (ранг, миссия, + +пользователь), API. + +- Сложность реализованной механики: Реализация системы рангов с тремя + +условиями будет оценена выше, чем простой линейный прогресс. + +3. Соответствие решения поставленной задаче (25%): + +- Решение решает проблему «разрозненных задач» (ветвление миссий, общая + +цель). + +- Учтена тематика космоса (лоре, нейминг, визуал). +- Есть разделение на интерфейсы User и HR. + +4. Эффективность решения (15%): + +- Работоспособность: Приложение не падает при базовых сценариях. +- Удобство использования (Usability): Понятно ли пользователю,что делать? Ведет + +ли интерфейс его к цели? + +5. Выступление на питч-сессии (10%): + +- Ясность: Четкое объяснение проблемы и решения. +- Убедительность: Акцент на то, как продукт решает боль заказчика. + + + + ● Демонстрация: Упор на живой сквозной сценарий, а не на слайды. +- Тайминг: Уложиться в отведенное время. + +Референсы: + + + + + + + + + + + + \ No newline at end of file diff --git a/Technical specifications/9_Создание_мотивационного_модуля_геймификации_для_кадровой_системы.pdf b/Technical specifications/9_Создание_мотивационного_модуля_геймификации_для_кадровой_системы.pdf deleted file mode 100644 index 614775a..0000000 Binary files a/Technical specifications/9_Создание_мотивационного_модуля_геймификации_для_кадровой_системы.pdf and /dev/null differ diff --git a/Technical specifications/Доп. материалы/.DS_Store b/Technical specifications/Доп. материалы/.DS_Store deleted file mode 100644 index 271b57c..0000000 Binary files a/Technical specifications/Доп. материалы/.DS_Store and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга.zip b/Technical specifications/Доп. материалы/Лого Алабуга.zip deleted file mode 100644 index 8d9eb4b..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга.zip and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/.DS_Store b/Technical specifications/Доп. материалы/Лого Алабуга/.DS_Store deleted file mode 100644 index a6049fe..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/.DS_Store and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (eng).png deleted file mode 100644 index d34da24..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (rus).png deleted file mode 100644 index 4104c98..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 1 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (eng).png deleted file mode 100644 index 8c775d1..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (rus).png deleted file mode 100644 index 4ef46bb..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 2 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (eng).png deleted file mode 100644 index 4553ea5..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (rus).png deleted file mode 100644 index 1da1d48..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип 3 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (eng).png deleted file mode 100644 index 8924836..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (rus).png deleted file mode 100644 index 7e57c81..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (eng).png deleted file mode 100644 index 473b9d8..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (rus).png deleted file mode 100644 index f339a50..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип Алабуга белый (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (rus).png deleted file mode 100644 index 764d57b..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (eng).png deleted file mode 100644 index 3ea5674..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 1 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (eng).png deleted file mode 100644 index 13465ed..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (rus).png deleted file mode 100644 index 2a6c6f6..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 2 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (eng).png deleted file mode 100644 index dd3eb6e..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (rus).png deleted file mode 100644 index 379d2fa..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип белый 3 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (eng).png deleted file mode 100644 index 2c3add2..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (rus).png deleted file mode 100644 index 8a08e6e..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 1 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (eng).png deleted file mode 100644 index 28b81ff..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (rus).png deleted file mode 100644 index d5868c7..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 2 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (eng).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (eng).png deleted file mode 100644 index 06020b8..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (eng).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (rus).png b/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (rus).png deleted file mode 100644 index 087b98d..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Лого ПНГ/Логотип черный 3 (rus).png and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга (6).svg b/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга (6).svg deleted file mode 100644 index a6e8b02..0000000 --- a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга (6).svg +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.cdr b/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.cdr deleted file mode 100644 index 83e3dc5..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.cdr and /dev/null differ diff --git a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.pdf b/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.pdf deleted file mode 100644 index 8338cc0..0000000 Binary files a/Technical specifications/Доп. материалы/Лого Алабуга/Логотипы Алабуга.pdf and /dev/null differ diff --git a/Technical specifications/Подробное ТЗ.pdf b/Technical specifications/Подробное ТЗ.pdf deleted file mode 100644 index 7b4b460..0000000 Binary files a/Technical specifications/Подробное ТЗ.pdf and /dev/null differ diff --git a/Подробное ТЗ.md b/Подробное ТЗ.md new file mode 100644 index 0000000..abbafff --- /dev/null +++ b/Подробное ТЗ.md @@ -0,0 +1,235 @@ +# Задание для группы разработки + +## 0. Назначение документа +Сформулировать состав работ, критерии приёмки и артефакты по разработке мотивационного модуля геймификации для кадровой системы. Документ служит рабочим ТЗ для команды разработки. + +--- + +## 1. Цели и ключевые показатели +**Цель:** связать разрозненные задачи кандидатов и сотрудников в прозрачные «миссии» с прогрессом и целями, повысить вовлечённость. + +**KPI пилота:** +- ≥70% пользователей, начавших онбординг, завершают хотя бы 1 миссию. +- ≥50% пользователей, выполнивших 2+ миссии, поднимают ранг хотя бы на 1 уровень. +- Время до «осязаемой награды» (опыт/мана/артефакт) ≤ 3 шага. + +--- + +## 2. Объём работ (Scope) +### 2.1 Пользовательские функции (Mobile‑first) +1) **Ранги**: линейная шкала; авто‑повышение по 3 условиям (опыт, ключевые миссии, уровни компетенций). +2) **Миссии**: каталог по категориям (Квесты, Рекрутинг, Лекторий, Симулятор); карточка миссии; выполнение с возможностью загрузки файла/ссылки. +3) **Ветвление**: миссии объединяются в «ветки»/цепочки; пользователь видит прогресс по ветке. +4) **Бортовой журнал**: хронология действий, прогресса, наград; еженедельные/месячные/годовые топы. +5) **Компетенции**: экран навыков с уровнями; прокачка от миссий. +6) **Хранилище (магазин)**: трата «маны/кредитов» на призы/бонусы; история покупок. +7) **Артефакты**: коллекция с карточками артефактов (изображение, название, описание, редкость). +8) **Онбординг и лор**: короткие сюжетные вставки, объясняющие механику и «космический» контекст. + +### 2.2 Функции для HR/Организатора (Desktop) +1) **Конструктор миссий**: поля (название, описание, опыт, мана, доступность по рангу, эффекты на компетенции, артефакт по итогу). +2) **Редактор веток**: визуальная связь миссий; статусы, приоритеты. +3) **Управление рангами**: правила повышения (порог опыта, обязательные миссии, уровни компетенций). +4) **Модерация**: очередь подтверждений с прикреплёнными файлами/ссылками. +5) **Артефакты**: CRUD + атрибуты артефактов. +6) **Статистика**: конверсии по миссиям/веткам/пользователям; выгрузки. + +### 2.3 Интеграции и API +- SSO/аутентификация: JWT; интеграция с внешним порталом (на этапе пилота — мок). +- Источники задач (пул миссий из внешних систем) — мок‑адаптер. +- Публичный API: чтение миссий, выполнение, прогресс, лидерборды. +- Webhooks: события выполнения/рангап/покупка. + +**Вне scope пилота:** расчёт денежной стоимости призов, платежи, сквозная поставка мерча. + +--- + +## 3. Ограничения и допущения +- Пилот: один сценарий e2e «кандидат получает оффер»; одна ветка (3–5 миссий), 2–3 ранга, 5–7 компетенций, 2–3 артефакта, 3–5 товаров. +- Данные и интеграции — замоканы; реальная интеграция после пилота. +- Темизация «космос»: палитра/иконки/фон; переключаемые темы. + +--- + +## 4. Архитектура и стек +**Фронтенд:** React + TypeScript, Router, Zustand/Redux Toolkit; CSS‑модули или CSS‑in‑JS; Mobile‑first для пользователя, Desktop для HR. + +**Бэкенд:** Python (FastAPI либо Django), БД: SQLite (пилот) → PostgreSQL (прод); JWT; миграции. + +**Сервис прогресса (Rule Engine):** отдельный модуль, реагирующий на события и проверяющий 3 условия ранга. + +**Событийная шина:** минимально — таблица/очередь; в перспективе — брокер. + +**Файлы:** объектное хранилище (локально — каталог + антивирус‑сканер), подписанные ссылки. + +**Обсервабилити:** логирование (структурированное), метрики (RPS, p95), трассировки. + +--- + +## 5. Доменная модель (черновик) +**User**(id, role, rank_id, xp, mana, created_at) + +**Rank**(id, name, order, xp_required, meta) + +**RankRule**(rank_id, required_missions[], required_competency_levels{competency_id:level}) + +**Competency**(id, name, desc) + +**UserCompetency**(user_id, competency_id, level, progress) + +**Mission**(id, title, description, category, min_rank_id, rewards{x p, mana, artifact_id?}, effects{competency_id:delta}) + +**Branch**(id, name, desc) + +**BranchEdge**(branch_id, mission_id, next_mission_id?) + +**MissionSubmission**(id, mission_id, user_id, payload{file/url/text}, status) + +**Artifact**(id, image_url, name, description, rarity) + +**StoreItem**(id, name, price_mana, stock?, meta) + +**Order**(id, user_id, item_id, status) + +**JournalEntry**(id, user_id, type, payload, created_at) + +— связи: User→Rank (M:1); User↔Competency (M:N); Branch↔Mission (M:N через Edge); + +--- + +## 6. API (MVP) +### Публичное API (пользователь) +- `GET /api/me` — профиль, прогресс, текущий ранг. +- `GET /api/missions?rank=...&branch=...` — список. +- `GET /api/missions/{id}` — карточка миссии. +- `POST /api/missions/{id}/submit` — выполнение (файл/ссылка/форм‑данные). +- `GET /api/journal` — бортовой журнал, топы (?period=week|month|year). +- `GET /api/skills` — компетенции пользователя. +- `GET /api/store/items` — каталог; `POST /api/store/purchase` — покупка. + +### Админ API (HR) +- `CRUD /api/admin/missions`, `/api/admin/branches`, `/api/admin/ranks`, `/api/admin/competencies`, `/api/admin/artifacts`. +- `GET /api/admin/moderation` → очередь; `POST /api/admin/submissions/{id}/approve|reject`. +- `GET /api/admin/analytics/*` — агрегаты по конверсиям. + +**Контракты:** спецификация OpenAPI 3.1 (в репозитории `/openapi.yaml`). + +--- + +## 7. НФТ (Нефункциональные требования) +- **Производительность:** p95 отклик API ≤ 200 мс при 100 RPS (пилот); начальная нагрузка 1k MAU. +- **Доступность:** 99,0% в неделю (пилот). +- **Адаптивность:** мобильные экраны ≥320 px; HR‑панель ≥1024 px. +- **Доступность (a11y):** соответствие WCAG 2.2 AA ключевых пользовательских потоков. +- **Безопасность:** базовый уровень соответствия (OWASP ASVS Level 2): аутентификация, управление сессиями, авторизация по ролям, валидация входных данных, безопасное хранение файлов, защита от XSS/CSRF/SQLi, журнал аудита админ‑действий. +- **Качество продукта:** ориентироваться на характеристики ISO/IEC 25010 (функциональная пригодность, надёжность, производительность, удобство, безопасность, сопровождаемость и др.). + +--- + +## 8. UX/UI +- Космическая тема: палитра, фон, иконки; нейминг рангов. +- Экран пользователя: цель, прогресс‑бар до следующего ранга, доступные ветки и миссии, быстрый старт. +- Экран HR: конструктор миссий (формы), редактор веток, модерация, аналитика. + +Артефакты дизайн‑системы: палитра, типографика, кнопки, карточки, формы, тосты, прогресс‑бар, модальные окна. + +--- + +## 9. Приёмка (Definition of Done) +- Реализованы фичи разделов 2.1–2.2 (MVP‑объём). +- Покрытие интеграционными тестами ключевых сценариев; unit‑тесты Rule Engine. +- Линтеры и форматтеры подключены; CI выполняет тесты и линт. +- Сгенерирован `openapi.yaml`; README с инструкциями; сид‑данные. +- Демонстрация e2e «кандидат получает оффер» на стенде. + +--- + +## 10. Критерии приёмки (Gherkin, выборочно) +**Сценарий: Авто‑повышение ранга по 3 условиям** +``` +Given у пользователя ранг R0 и 0 XP +And есть правило повышения до R1: XP≥500, миссии [M1, M2], компетенции {Aналитика≥1, Общение≥1} +When пользователь завершает M1 и M2 и набирает ≥500 XP +And уровни компетенций удовлетворяют порогам +Then система повышает ранг до R1 +And в журнал добавляется запись о рангапе +``` + +**Сценарий: Выполнение миссии с модерацией** +``` +Given миссия M3 требует загрузки файла и модерации +When пользователь отправляет отчёт +Then запись попадает в очередь модерации со статусом “На проверке” +When HR одобряет отчёт +Then пользователь получает награды (XP, мана, артефакт?) и эффекты на компетенции +And в журнале фиксируется операция +``` + +**Сценарий: Покупка в магазине** +``` +Given у пользователя 150 маны и товар T ценой 100 +When пользователь оформляет покупку T +Then списывается 100 маны +And создаётся заказ в статусе “Ожидает выдачи” +``` + +**Сценарий: Ветвление миссий** +``` +Given ветка B: M1 -> M2 -> M3 +When пользователь завершает M1 +Then M2 становится доступной +``` + +--- + +## 11. Тестирование +- **Unit:** правила рангов, расчёт наград, транзакции маной. +- **Интеграционное:** миссии→журнал, модерация, покупки. +- **E2E:** ключевой пользовательский сценарий. +- **Безопасность:** статический анализ, базовые проверки ASVS L2. +- **Доступность:** линтеры a11y, ручные проверки по чек‑листу AA. + +--- + +## 12. CI/CD и качество +- GitHub Actions: линт, тесты, сборка докер‑образов. +- Превью‑развёртывания для PR (frontend + backend). +- Теги релизов, CHANGELOG, семантическое версионирование. + +--- + +## 13. Сид‑данные (минимум) +- 2–3 ранга (примерные названия), пороги XP и требования. +- 1 ветка на 3–5 миссий (микс категорий). +- 5–7 компетенций с базовыми уровнями. +- 2–3 артефакта разной редкости. +- 3–5 товаров магазина. +- 3 тестовых пользователя (Кандидат, HR, Организатор). + +--- + +## 14. План работ (ориентир, 2 спринта по 2 недели) +**Спринт 1:** доменная модель, CRUD миссий/веток/артефактов, подача списка миссий, выполнение без модерации, журнал, магазин (чтение/покупка), сид‑данные, базовый UI. + +**Спринт 2:** Rule Engine (3 условия ранга), модерация, топы, аналитика HR (минимум), онбординг/лор, шлифовка UX, а11y, подготовка к демо. + +--- + +## 15. Риски +- Сложность правил рангов → изоляция в Rule Engine + тесты. +- Нагрузочные пики (рейтинги) → кэширование/агрегаты. +- Мошенничество (накрутка) → rate‑limit, аудиты, дедупликация событий. + +--- + +## 16. Артефакты, которые нужно предоставить +- Код (frontend/backend), Docker‑композ, сид‑данные. +- OpenAPI 3.1 спецификация. +- README: запуск, архитектура, ограничения, ссылки на стенд. +- Демо‑скрипт e2e и видео/скринкаст. + +--- + +## 17. Глоссарий +Пользователь, HR, Организатор, Опыт (XP), Мана, Ранг, Артефакты, Компетенции, Миссии, Ветвление, Бортовой журнал. +