Просьба о совете: подбор пар Хозяин/Гость и Тренер/Ученик

Кратко:

Я хочу упростить процесс подбора реальных пользователей в двух ситуациях:

  • Тренеров и стажёров[1]
  • Хозяев и гостей/испытательных посетителей[2]
    Сравнение «многие-ко-многим» между несколькими пользователями с сильно различающимися графиками.

Календарь/события близки к решению, но я не могу найти хороший способ заставить это работать плавно — возможно, я делаю что-то не так. Я подозреваю, что мне придётся написать целый плагин.

Более подробная версия:

Я помогаю управлять сообществом нашего хакерспейса[3]. У нас технически нет штатных сотрудников, только сотни членов с ключами, которые после проверки получают круглосуточный доступ к пространству. Во время испытательного срока новые члены должны находиться под присмотром существующего члена.

Тренеры/Стажёры

Несколько наших классов по работе с инструментами включают сочетание теории и практики. Теорию можно изучать самостоятельно и/или в классе — для этой части у нас есть специальный учебный портал. Для завершения практической части, как правило, требуется соотношение 1:1 (ученик к учителю). Я хочу создать упрощённый способ, чтобы:

  • стажёры, ищущие практическую сессию, могли разместить свою доступность
  • тренеры, имеющие свободное время, могли разместить свою доступность
    Опционально — возможность отслеживания:
  • первый стажёр имеет приоритет[4], и
  • тренер, который меньше всего перегружен, получает первого студента[5]

Календарь/события имеют некоторые функции, которые могли бы сработать, но их недостаточно для широкого размещения доступности (несколько широких интервалов доступности для одного тренера/стажёра и т. д.).

Пример: 8 человек только что прошли теоретическую часть по работе на токарном станке по металлу. Это практическое занятие в формате 1:1, и внезапно 8 человек создают посты «Кто может провести мою практическую работу на токарном станке?». У каждого из них будут разные даты, время, дни и временные рамки, которые им подходят. В результате тренер окажется заваленным множеством переписок в каждом треде: «Вы можете встретиться со мной в четверг?», «Во сколько?», «А как насчёт другого времени?» и так далее… Умножьте это на 8. Повторяйте каждый раз, когда у нас появляется новый класс, и для каждого инструмента — и всё превращается в хаос. Многие наши пользователи не очень хорошо разбираются в интернете, поэтому заставить их правильно использовать выбор даты — задача почти невыполнимая.

Публичные часы и Хозяева

У нас еженедельно проводятся открытые двери в течение 2 часов, но эти 2 часа подходят не всем. Мы часто получаем запросы: «Я в городе только в субботу, кто может встретиться со мной?» или «Я новый член, хочу поработать в комнате с 3D-принтерами, кто может стать хозяином в субботу?"
Сейчас у нас есть физическая коробка в пространстве, которая позволяет членам с ключами нажать кнопку, чтобы через API опубликовать сообщение в чате Discourse: "/@-имя_участника/ выступает в роли хозяина до /x/ часов, напишите ему в личные сообщения, чтобы привлечь внимание!». Это очень срочная ситуация, и трудно найти кого-то, кто согласится проехать через город за полчаса после того, как ему сказали, что пространство «открыто».

Всё усложняется тем, что очень мало вещей в расписании являются фиксированными. Я мог бы попросить тренеров создавать /события/ для каждой сессии, которую они планируют провести, а потенциальные стажёры могли бы «присоединиться» к ним, но событие не позволяет указать гибкие временные окна или ограничения по количеству участников. Часто мы получаем сообщения вроде: «Я могу провести 3 практические сессии в субботу». Чтобы настроить 3 события без точного времени, требуется много кликов.

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


  1. Полностью на основе пересечения случайных графиков ↩︎

  2. Есть ограниченное количество публичных «открытых» часов в неделю, иногда люди пытаются найти хозяина в другое время. ↩︎

  3. Представьте себе абонемент в спортзал, но вместо тренажёров вы получаете доступ к сварочным аппаратам, швейному оборудованию, лазерным резакам и т. д. (плюс всё обучение безопасной работе с этим оборудованием) ↩︎

  4. Тот, кто дольше всех ждал своей практической сессии ↩︎

  5. Иногда тренеров больше, иногда студентов — поэтому обычно возникает избыток одной или другой стороны. ↩︎

1 лайк

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

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

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


Другая мысль: вы могли бы поэкспериментировать с легко расширяемой функцией oneboxing, чтобы интегрировать внешние инструменты на сайт.


Мозговой штурм: как мог бы выглядеть такой инструмент:

Доступное время пользователей, по-видимому, не зависит от тем, уроков или оборудования. Пользователи могли бы объявлять временные слоты в своих профилях. Возможно, они смогут отмечать на недельном обзоре свои регулярные доступные временные интервалы и добавлять конкретные слоты в свой собственный календарь. Такие объявления могли бы иметь разные статусы, например «будет присутствовать» или «возможно, будет присутствовать».

Эту общую информацию можно было бы использовать вместе с данными о навыках (кто способен предоставить какой навык, кто нуждается в каком навыке), а на втором этапе — также с информацией о доступных временных слотах для оборудования.

1 лайк