Возможности платформы
В этом документе функции сгруппированы по участникам и предметным областям. Это описание согласованного продукта; завершение всех перечисленных сценариев на стенде не подразумевается. Общие статусы — в индексе, подробное покрытие — в возможностях сервисов, проверки — в плане тестирования.
Кто может выполнять эти действия, как ограничиваются полномочия HR и владельца компании и когда открываются личные данные, описано в ролевой модели.
Гость
Гость знакомится с механикой платформы на главной, ищет публичные вакансии, применяет фильтры, читает задачи, требования, условия и зарплатную вилку. Из вакансии он может перейти к публичной странице компании с описанием, сайтом и опубликованными предложениями работы.
Для собственных действий доступна регистрация по email и паролю с выбором типа аккаунта, подтверждение почты и восстановление доступа. Служебные письма со ссылками отправляются по SMTP; на демонстрационном стенде они попадают в общий ящик mail.geek.moscow. Пользовательская часть также содержит подачу жалобы и обращение в поддержку; конкретные требования к авторизации определяются контрактом соответствующего маршрута. Просмотр публичной страницы не даёт гостю доступа к каталогу инженеров или закрытым данным.
Инженер
| Область | Возможности |
|---|---|
| Профиль | Заполнить имя, фото и контакты; управлять общими сведениями о себе |
| ФСП | Найти запись, пройти подтверждение владения, запросить импорт, увидеть достижения, источник и время синхронизации; пользоваться продуктом без привязки |
| Анкеты | Создать несколько анкет, копировать в новый черновик, редактировать специализацию, стек, опыт, проекты, задачи, условия и зарплатные ожидания |
| Публикация | Выбрать достижения для конкретной анкеты, проверить предпросмотр, независимо опубликовать или скрыть каждую анкету |
| Поиск вакансий | Искать и фильтровать публичные вакансии; выбрать анкету для персонального подбора и изучить объяснение результата |
| Избранное | Сохранить вакансию в личные закладки, удалить закладку без уведомления работодателя |
| Интерес | Показать интерес к вакансии с выбранной анкетой или отозвать его |
| Оферы | Просматривать новые, принятые, отклонённые и отозванные предложения, читать персональные условия и сообщение компании |
| Решение по оферу | Уточнить условия под псевдонимом, отказаться или принять с выбором раскрываемых данных |
| Чат | Переписываться в диалоге офера, видеть связанную вакансию, состояние предложения, непрочитанные сообщения и отметки доставки |
| Приватность | Узнать, каким компаниям доступны какие данные, отозвать разрешение на раскрытие, заблокировать компанию |
| Настройки | Управлять доступом к аккаунту, паролем, уведомлениями и запросом удаления аккаунта |
Профиль заполняется один раз, анкеты представляют разные профессиональные интересы. Публикация анкеты, интерес к вакансии, добавление в избранное и раскрытие контактов — самостоятельные действия с разными последствиями.
Работодатель
| Область | Возможности |
|---|---|
| Компания | Создать и редактировать карточку: название, описание, сайт, логотип; открыть предпросмотр публичной страницы |
| Участники | Владельцу — приглашать и удалять HR, назначать ответственных за вакансии и передавать владение |
| Контекст | Переключаться между компаниями, где у представителя есть действующее членство |
| Вакансии | Вести черновики, публиковать и снимать вакансии, задавать задачи, требования, вилку оплаты, формат, место и видимость |
| Закрытые вакансии | Приглашать конкретных инженеров через офер; закрытая публикация не появляется в общем каталоге |
| Каталог инженеров | Искать опубликованные анкеты, фильтровать и подбирать по вакансии; видеть псевдонимы и безопасные профессиональные сведения |
| Избранное | Сохранять приватные закладки анкет в контексте компании |
| Анкета | Изучать опыт, навыки, предпочтения, достижения и объяснение соответствия вакансии |
| Интересы | Видеть, кто и какой анкетой заинтересовался вакансией; фильтровать по вакансии и отправлять офер |
| Офер | Выбрать вакансию, указать зарплатную вилку и персональное сообщение; отправить или отозвать предложение с учётом ограничений |
| Чат | Обсуждать предложение, видеть его состояние, ответ инженера и новые сообщения |
| Личные данные | Читать только разрешённый инженером объём при сохранении текущего права доступа |
Доступ HR зависит от членства и назначений на вакансии. Полномочия владельца организации не дают административных прав на платформе. Защита от повторных оферов действует на уровне человека и компании, независимо от числа анкет, вакансий и сотрудников.
Сотрудник платформы
Основной административный процесс включает очередь жалоб, назначение ответственного, просмотр допустимых материалов, решение, исполнение, повторы при временных ошибках и историю действий. Решения позволяют отклонить жалобу, скрыть анкету или вакансию, заблокировать аккаунт. Поддержка принимает обращения пользователей.
Расширение EXT-07 описывает поиск и просмотр аккаунтов и компаний, прямые ограничения, отзыв сессий, обратимое удаление и восстановление, отдельное необратимое стирание, управление членствами и владением. Это специфицированное расширение, выпускаемое вместе с разделением типов аккаунтов; опубликованный процесс жалоб не подтверждает готовность EXT-07. Подробности — в администрировании.
Общие механизмы
| Механизм | Пользовательский результат |
|---|---|
| Объяснимый подбор | Понятно, что совпало, что отличается и каких данных не хватает |
| Приватность по умолчанию | До согласия инженер представлен псевдонимом; разрешение выдаётся конкретной компании |
| Идемпотентность | Повтор действия после сетевого сбоя не должен создавать второй офер, чат или сообщение |
| Фоновая обработка | Внешние импорты и доставка изменений выполняются с отслеживаемым состоянием и возможностью повтора |
| Обновления в реальном времени | Чат использует WebSocket, уведомления — SSE; после переподключения состояние восстанавливается из сохранённых данных |
| Уведомления | Интерес и отзыв интереса, офер и его отзыв, ответ инженера, новые сообщения ведут к соответствующему экрану |
| Наблюдаемость | Метрики и журналирование помогают обнаруживать ошибки и задержки выполнения |
Функции безопасности и устойчивости здесь описывают требуемое поведение; они проверяются предметными сценариями, включая отзыв доступа при прогретом кэше, повтор запросов, сбои очередей и смену членства.
Распределение по сервисам
| Сервис | Функции |
|---|---|
| Identity / Accounts | Регистрация, подтверждение email, вход, восстановление, сессии, тип аккаунта, правовые согласия, удаление, служебные права |
| Candidates | Профиль, анкеты, черновики, копирование, публикация, достижения, ФСП, блокировки компаний, безопасные представления |
| Employers | Компании, участники, роли, приглашения, передача владения, логотипы |
| Opportunities | Вакансии, публикация, снятие, публичная и закрытая видимость, назначения HR |
| Recruitment | Каталоги, фильтры, поиск, подбор, объяснения, избранное, интересы, оферы и разрешения на раскрытие |
| Chat | Диалоги, сообщения, доставка, прочтение, непрочитанные сообщения, потоковые обновления |
| Notifications | Уведомления внутри приложения, настройки, прочтение и доставка после отсутствия пользователя |
| Backoffice | Жалобы, обращения, решения операторов, исполнение и аудит |
Демонстрационные данные и проверка
Спецификация seed описывает связанный набор пользователей, компаний, профилей, вакансий, оферов, чатов, уведомлений и случаев модерации. У каждого набора есть владелец таблиц, порядок загрузки и сценарии, которые он должен показывать.
Тестовые данные включают обычные и пограничные состояния: скрытые анкеты, блокировки, закрытые вакансии, отозванные разрешения и неуспешные операции. Количество успешно загруженных объектов определяется выполненными действиями. Заблокированный импорт ФСП нельзя считать успешным или подменять немаркированными демонстрационными достижениями.
План приёмки отдельно проверяет функциональность, авторизацию, изоляцию компаний, отсутствие утечек, повтор запросов, асинхронную доставку и восстановление после сбоев. Само наличие плана и seed-описания не является отчётом о выполнении тестов.