Пир2Пир (Pir2Pir) — цифровая платформа взаимодействия участников образовательного сообщества,
предназначенная для организации взаимных проверок учебных проектов и общения между обучающимися.
Платформа решает задачу подбора собеседника: участник указывает учебный проект, по которому ему
нужна проверка, а система формирует и ранжирует список тех, кто способен её провести, и последовательно
направляет им запросы. Приоритет отдаётся взаимным парам — участникам, которым проверка нужна по одному
и тому же проекту, — так как один такой отклик закрывает потребность обеих сторон.
После взаимного согласия открывается защищённый чат с обменом сообщениями и файлами. Уведомления
доставляются в подключённые каналы: веб-приложение и Telegram-бот.
Платформа состоит из серверной части (REST API), веб-приложения и диалогового робота.
Веб-приложение работает в браузере и как мини-приложение внутри мессенджеров — Telegram Mini App и
мини-приложение MAX, — определяя среду запуска автоматически и подстраивая под неё оформление и
элементы управления. Через диалогового робота доступны регистрация, подтверждение учётной записи,
получение уведомлений и ответы на запросы о проверке.
Дополнительно платформа обеспечивает: синхронизацию учебного профиля из открытого API образовательной
организации, ленту объявлений, направление приглашения обучающемуся, ещё не зарегистрированному в
сервисе, публикацию отзывов о сервисе после модерации, учёт приглашений и обезличенные агрегированные
показатели использования.
Программное обеспечение является самостоятельным продуктом, не требует установки клиентского
программного обеспечения, работает в браузере и в мессенджере, размещается на инфраструктуре на
территории Российской Федерации и не требует для своей работы иностранных программных или
облачных сервисов.
1. Регистрация и подтверждение учётной записи
регистрация по логину учётной записи образовательной организации;
подтверждение владения учётной записью одноразовым кодом, направляемым на студенческий адрес электронной почты, образованный из логина;
ограничение частоты запроса кодов и срока их действия;
допуск к регистрации только действующих обучающихся: статус учётной записи проверяется в открытом API образовательной организации;
подключение способов входа: Telegram, а также внешние поставщики идентификации;
одна учётная запись мессенджера соответствует одной учётной записи платформы, в обе стороны;
удаление учётной записи участником с прекращением обработки его данных.
2. Учебный профиль
периодическая синхронизация профиля из открытого API образовательной организации: кампус, поток, форма обучения, уровень, опыт, внутренние баллы, баллы за проверки;
получение перечня учебных проектов участника и их статусов;
хранение ежедневного среза показателей и записей о переходах проектов между статусами, что позволяет участнику видеть динамику обучения, недоступную во внешнем источнике;
ограничение частоты обращений к внешнему API и корректная обработка отказов.
3. Подбор участников для взаимной проверки (основная функция)
создание запроса на проверку с указанием кода учебного проекта;
формирование круга участников, способных провести проверку, по данным учебного профиля;
ранжирование кандидатов: приоритет взаимным парам (участникам, которым нужна проверка по тому же проекту), затем совпадение кампуса, затем накопленные баллы за проверки;
ограничение подбора пределами одной страны обучения;
последовательное направление запросов кандидатам с ограничением числа одновременно необработанных обращений на одного участника;
автоматическое прекращение поиска по истечении срока и повторное формирование круга кандидатов при его изменении;
отображение числа потенциальных проверяющих до начала поиска.
4. Обмен сообщениями
защищённый чат между двумя участниками, открывающийся после взаимного согласия;
два типа переписок: возникшие из подбора проверяющего и начатые напрямую по точному логину;
обмен текстовыми сообщениями с поддержкой форматирования;
передача вложений (изображения, документы, архивы) с ограничением размера и типа;
отметки о прочтении и счётчик непрочитанного;
доставка сообщений в открытое веб-приложение в реальном времени;
автоматическое завершение неактивных переписок и удаление их содержимого по истечении установленного срока хранения;
фильтрация, сортировка и постраничный вывод списка переписок.
5. Уведомления
доставка уведомлений в подключённые каналы: веб-приложение и Telegram-бот;
независимый учёт доступности каждого канала: отключение одного не влияет на остальные;
управление участником согласием на получение запросов о проверке;
гарантированная доставка через журнал исходящих сообщений, устойчивая к перезапуску сервиса.
6. Диалоговый робот (Telegram-бот)
сценарий регистрации и подтверждения учётной записи в диалоге;
получение уведомлений и ответ на запросы о проверке без перехода в веб-приложение;
обработка ссылок вида ?start=<параметр> для перехода к нужному сценарию.
6.1. Работа в качестве мини-приложения мессенджеров
запуск веб-приложения как мини-приложения внутри мессенджеров Telegram и MAX без установки отдельного клиента;
автоматическое определение среды запуска (браузер, Telegram, MAX) и выбор соответствующего режима работы;
получение идентификационных данных сеанса от мессенджера, в котором открыто приложение;
подстройка оформления под тему мессенджера, включая светлое и тёмное оформление;
учёт различий в возможностях сред: элементы управления, которые мессенджер не предоставляет, отрисовываются самим приложением;
разрешение встраивания только с доменов поддерживаемых мессенджеров, задаваемое политикой безопасности содержимого (Content-Security-Policy).
7. Лента объявлений
получение объявлений образовательной организации из внешнего источника и их хранение;
отбор только объявлений, адресованных всем участникам;
разграничение доступа: объявления кампуса видны только участникам этого кампуса;
хранение изображений на собственной инфраструктуре;
поддержка пользовательских эмодзи, применяемых в объявлениях;
фильтрация, сортировка и постраничный вывод.
8. Приглашение обучающегося, не зарегистрированного в сервисе
направление одного короткого приглашения по точному логину;
доставка по двум независимым каналам: электронная почта и корпоративный мессенджер;
ограничения: суточный лимит на отправителя, лимит на получателя за период, повторное обращение к тому же получателю не ранее установленного срока;
запрет ссылок в тексте приглашения;
бессрочный отказ получателя от дальнейших обращений по ссылке из сообщения;
автоматическое удаление записей о приглашениях по истечении срока хранения.
9. Отзывы о сервисе
один отзыв от участника;
обязательная модерация до публикации;
возврат отзыва на повторную проверку при его изменении;
публикация только логина автора; иные сведения об авторе не публикуются;
отзыв в любой момент отзывается участником.
10. Учёт приглашений и рейтинг
персональный код приглашения у каждого участника и ссылки на его основе;
учёт того, кто из участников присоединился по коду другого, однократно и неизменяемо;
рейтинг участников по числу приглашённых, доступный зарегистрированным участникам;
управление участником отображением своих данных в рейтинге: позиция сохраняется, идентифицирующие сведения скрываются.
11. Показатели использования
ежечасный расчёт агрегированных показателей: регистрации, начатые поиски, состоявшиеся подборы, начатые переписки, сообщения, активные участники;
публикация обезличенных совокупных значений;
подавление значений ниже порога, при котором они позволяют определить конкретного участника.
12. Прикладной программный интерфейс
REST API с авторизацией по протоколу OAuth 2.0 / OpenID Connect;
фильтрация, сортировка и постраничный вывод списков по стандартизованному синтаксису запросов;
единый формат ошибок для всех ответов;
поток событий в реальном времени (Server-Sent Events);
контроль состояния сервиса и его зависимостей.
13. Доступность интерфейса
Ограничения по слуху. Интерфейс не передаёт информацию звуком: платформа не содержит аудио- и видеоматериалов, голосового ввода и звуковых оповещений. Все сведения, включая уведомления, представлены в текстовом виде.
Ограничения по зрению. Интерфейс построен на семантической разметке с текстовыми подписями элементов управления (aria-label), областями динамического обновления (aria-live), текстовыми альтернативами изображений и поддержкой навигации с клавиатуры. Поддерживается системная настройка уменьшения анимации, а также светлая и тёмная темы оформления.
14. Условия функционирования
серверная часть: .NET, СУБД PostgreSQL, брокер сообщений Apache Kafka;
клиентская часть: веб-приложение, работающее в современных браузерах, в том числе на мобильных устройствах, а также как мини-приложение внутри мессенджеров Telegram и MAX; установка клиентского ПО не требуется;
размещение: инфраструктура на территории Российской Федерации;
работа не требует иностранных программных продуктов и облачных сервисов; используемые сторонние компоненты распространяются по свободным лицензиям и не создают зависимости от иностранного правообладателя.
Вендор не опубликовал редакции и цены — стоимость по запросу.
| Разработчик | Искужин Айгиз Ирикович |
| ИНН | 024803896842 |
| Документация | docs.pir2pir.ru/documentation |
| Карточка | platforms.su/platform/75270 |