Перейти к основному содержимому

Люди и команда на витрине

Зачем нужно

Документ фиксирует модель отображения людей на публичной витрине «Систематики».

Он нужен для продуктовой проработки, архитектурного проектирования, будущей CMS-модели и разработки витрины.

Документ описывает:

  • как хранить и показывать членов команды;
  • как хранить и показывать преподавателей;
  • как связывать людей с направлениями, уровнями, продуктами, отделами и олимпиадными комитетами;
  • как строить публичную страницу человека;
  • какие правила нужны для карточек, списков и агрегированных показателей.

Базовое решение

В системе не создаются отдельные копии одного человека как «преподавателя», «сотрудника», «члена команды курса» или «члена комитета».

Есть единый публичный профиль человека. Его функции задаются через назначения в разных контекстах.

Один человек может одновременно:

  • быть преподавателем одного или нескольких направлений;
  • быть преподавателем конкретного продукта;
  • входить в команду курса, интенсива или кружка;
  • состоять в отделе компании;
  • быть членом комитета олимпиады;
  • иметь личные достижения, достижения учеников, отзывы, выступления и публикации;
  • отображаться на разных страницах сайта с разными контекстными подписями.

Что входит в домен

В домен входят:

  • публичный профиль человека;
  • короткая карточка человека;
  • преподавательская специализация по направлениям и уровням;
  • назначение человека преподавателем конкретного продукта;
  • участие человека в команде продукта;
  • участие человека в отделе;
  • участие человека в комитетах олимпиад;
  • личные достижения;
  • достижения учеников;
  • отзывы, рейтинг и агрегированные показатели;
  • правила публичности и сортировки.

Что не входит в домен

В домен не входят:

  • финальная структура CMS и формы редактирования;
  • окончательный порядок блоков на странице человека;
  • визуальный дизайн карточек и страниц;
  • детальная модель олимпиад, сезонов, туров и результатов;
  • операционные назначения преподавателей на конкретные занятия и группы;
  • права доступа администраторов к редактированию профилей;
  • финальные алгоритмы расчёта рейтинга и агрегации отзывов.

Контексты участия человека

Преподавательская специализация

Человек может быть связан с одним или несколькими направлениями обучения.

Направления должны браться из канонического справочника направлений, форматов и уровней обучения, а не создаваться отдельно внутри витрины.

Для преподавательской специализации фиксируется:

  • человек;
  • направление;
  • опционально уровень сложности;
  • публичность отображения;
  • порядок сортировки, если человек выводится в списке.

Уровень сложности необязателен. Если он указан, преподаватель считается связанным не просто с направлением, а с направлением на конкретном уровне.

Эта связь используется для общего списка преподавателей, фильтров, страниц направлений, публичной страницы человека и SEO-страниц.

Преподаватель конкретного продукта

Отдельно человек может быть назначен преподавателем конкретного продукта.

Под продуктом понимается курс, интенсив, кружок, мини-группа, курс в записи, живой курс или иная образовательная единица.

В одном продукте может быть один преподаватель или несколько преподавателей.

Назначение преподавателем продукта не должно автоматически означать показ в общем списке преподавателей. И наоборот: преподаватель направления может не быть назначен в конкретный продукт.

Команда продукта

У каждого продукта может быть команда.

Команда продукта — это список людей, участвующих в создании, проведении или сопровождении продукта.

Для каждого человека внутри продукта указывается роль именно в этом продукте.

Примеры ролей: преподаватель, автор курса, методист, редактор, продюсер, составитель домашних заданий, автор задач, проверяющий, куратор, координатор, эксперт, другая роль.

Один и тот же человек может иметь разные роли в разных продуктах. Роль внутри продукта является контекстной и не становится глобальной ролью человека.

Члены команды и отделы

Для раздела «О нас» и других командных блоков человек может быть связан с отделом.

Отделы должны быть фиксированным справочником, чтобы структура команды была стабильной.

Примеры отделов: служба заботы, методический отдел, отдел маркетинга, продуктовая команда, команда разработки, операционная команда, администрация, руководство, преподавательская команда.

Роль человека внутри отдела задаётся вручную как публичная формулировка.

Один человек может состоять в нескольких отделах. Если человек одновременно является преподавателем и сотрудником команды, отделы должны отображаться на его публичной странице.

Олимпиадные комитеты

Подробная модель олимпиад проектируется отдельно, но связь людей с олимпиадами должна быть предусмотрена уже сейчас.

Предварительная структура: у олимпиады есть предмет; внутри предмета есть сезон или номер олимпиады; у конкретной олимпиады есть набор комитетов; люди назначаются в комитеты конкретной олимпиады.

Комитеты олимпиады должны быть справочником. Примеры: оргкомитет, методический комитет, жюри, апелляционный комитет, экспертный совет.

Не в каждой олимпиаде есть все комитеты. Комитет считается существующим для конкретной олимпиады, если в него назначен хотя бы один человек.

Публичная страница человека

Публичная страница человека является полноценным профилем, а не только карточкой преподавателя.

Цель страницы — раскрыть авторитет, опыт, вклад и связи человека с продуктами, учениками, олимпиадами и командой.

Все содержательные блоки страницы человека являются опциональными.

Минимальная техническая основа опубликованной страницы:

  • имя;
  • публичный адрес страницы;
  • статус публикации;
  • достаточное содержательное наполнение, чтобы страница была осмысленной.

Возможные блоки страницы:

  • короткое описание;
  • короткий список ролей и предметов;
  • опыт работы;
  • о себе;
  • личные достижения;
  • достижения учеников;
  • участие в продуктах, отделах и олимпиадах;
  • отзывы;
  • выступления и публикации, если такие материалы заведены в системе.

У человека не должно быть одной обязательной главной публичной роли. Публичное представление зависит от контекста отображения.

Продукты на странице человека не делятся публично на текущие и прошлые. Допустимые нейтральные названия блока: «Курсы и программы с участием преподавателя», «Проекты в Систематике», «Участие в продуктах и проектах».

Короткая карточка человека

Короткая карточка используется в списках и контекстных блоках: общий список преподавателей, раздел «О нас», страница курса, страница интенсива, страница кружка, страница направления, страница олимпиады, блок команды продукта.

Базовые поля карточки:

  • имя;
  • опыт работы;
  • короткое описание;
  • количество отзывов;
  • средняя оценка.

Опциональные элементы карточки:

  • фотография;
  • контекстная роль;
  • предметы или направления;
  • ссылка на публичную страницу человека.

Одна и та же карточка может иметь разные контекстные подписи в разных местах сайта.

Карточка отвечает на вопрос: почему этот человек показан здесь. Полная страница отвечает на вопрос: кто этот человек и чем он значим для «Систематики».

Публичность и статусы

Нужно разделять профессиональную роль, внутренний рабочий статус, публичность страницы и показ в конкретных списках.

Человек может иметь опубликованную страницу, даже если он не отображается в общем списке преподавателей.

Показ в общем списке преподавателей должен быть отдельной настройкой.

Возможна ситуация: страница человека опубликована, на странице указано, что он преподаватель математики, в профиле есть курсы, достижения и отзывы, но в общем списке актуальных преподавателей он не отображается.

Публично не нужно показывать статус вида «бывший преподаватель», «ранее работал в Систематике» или «больше не работает в компании». Такая информация может быть внутренней, но не должна выводиться на витрине.

Сортировка

Для витрины нужна ручная сортировка.

Ручная сортировка должна поддерживаться:

  • в общем списке преподавателей;
  • внутри отдела;
  • внутри команды продукта;
  • внутри комитета олимпиады;
  • внутри блоков страницы человека;
  • для продуктов на странице человека;
  • для достижений;
  • для достижений учеников;
  • для отзывов;
  • для выступлений и публикаций.

Автоматическая сортировка может использоваться как запасная, но публичная витрина должна позволять редактору управлять порядком.

Рейтинг и отзывы

Карточка человека должна поддерживать количество отзывов и среднюю оценку.

Эти показатели могут строиться на основе отзывов, напрямую связанных с человеком, отзывов о продуктах, где человек участвовал, или смешанной модели.

Внутри данных нужно различать отзыв о человеке и отзыв о продукте, потому что отзыв о продукте не всегда является отзывом именно о преподавателе.

Правила агрегации отзывов должны быть спроектированы отдельно в рамках блока отзывов и достижений.

Высокоуровневые требования к CMS

Детальная CMS-модель проектируется на следующем этапе, но уже сейчас CMS должна уметь:

  • создавать и редактировать публичный профиль человека;
  • управлять статусом публикации страницы;
  • отдельно управлять показом человека в общем списке преподавателей;
  • задавать преподавательские специализации по направлениям и опциональным уровням;
  • назначать человека преподавателем конкретного продукта;
  • добавлять человека в команду продукта с ролью внутри этого продукта;
  • добавлять человека в фиксированный отдел с ручной публичной ролью внутри отдела;
  • назначать человека в комитет конкретной олимпиады;
  • управлять ручной сортировкой во всех публичных списках;
  • добавлять личные достижения;
  • добавлять достижения учеников;
  • связывать человека с отзывами, продуктами, олимпиадами, отделами и материалами;
  • скрывать внутренний рабочий статус с публичной витрины.

Связи с другими доменами

Преподавательские специализации должны ссылаться на канонические направления и уровни из reference layer.

Команды продуктов и назначения преподавателей должны ссылаться на сущность продукта.

Операционное назначение преподавателя на группу или занятие относится к домену проведения обучения и не должно подменяться витринным назначением человека в продукт.

Детальная модель олимпиад проектируется отдельно. В текущем документе фиксируется потребность витрины связывать человека с комитетами конкретных олимпиад.

Отзывы и достижения будут подробнее проектироваться отдельной частью витрины. Для текущего домена важно, что профиль человека должен уметь показывать агрегированные отзывы, среднюю оценку, количество отзывов, личные достижения и достижения учеников.

Принятые правила

  1. Один человек хранится в системе один раз.
  2. У человека нет одной обязательной главной публичной роли.
  3. Роль человека определяется контекстом отображения.
  4. Преподавательская специализация и назначение преподавателем продукта являются разными связями.
  5. Человек может быть связан с несколькими направлениями и несколькими уровнями.
  6. Человек может быть участником команды нескольких продуктов с разными ролями.
  7. Отделы являются фиксированным справочником, а роль внутри отдела задаётся вручную.
  8. Отделы показываются на странице человека, если человек в них состоит.
  9. Бывший рабочий статус публично не показывается.
  10. Продукты на странице человека не делятся на текущие и прошлые.
  11. Все содержательные блоки страницы человека являются опциональными.
  12. Для публичных списков и блоков нужна ручная сортировка.
  13. Карточка человека должна поддерживать количество отзывов и среднюю оценку.
  14. Отзывы о человеке и отзывы о продукте нужно различать в данных.
  15. Комитет олимпиады считается существующим для конкретной олимпиады, если в него назначен хотя бы один человек.

Что не решается в этом документе

Документ не фиксирует финальный порядок блоков на странице человека, финальный дизайн карточек, точный набор CMS-полей, детальные API-контракты, финальную модель отзывов, финальную модель олимпиад, правила SEO и правила миграции существующих данных.