Ultrasound Club
Ultrasound Club · Продукт, разработка, тестирование

Качество, которое
не видно в макете.

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

Обновлено 23 сентября 2026 · Рабочие рекомендации, не отметка о готовности
P0 До запуска с реальными аккаунтами и платежамиP1 Основной пользовательский опытP2 Измерение и развитие

Уже принятые решения

P0

Вход по телефону и безопасность

#01

В прототипе: обязательный телефон; SMS не отправляются.

Что реализовать

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

Как принять работу

Истёкший или повторно использованный код не работает; частые запросы ограничены; пользователь может исправить номер и повторить отправку по таймеру. Обновление страницы не обходит лимиты.

Решения и ограничения

Требует согласования: страны и форматы номеров, SMS-провайдер, сроки действия кода, восстановление доступа.

P0

Подписка, оплата и доступ

#02

В прототипе: 1 499 ₽/мес.; переход на старый сайт, где пока 899 ₽. Все статусы кабинета демонстрационные.

Что реализовать

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

Как принять работу

После отключения автопродления видны дата окончания доступа и отсутствие следующего списания. Ошибка платежа не отображается как успех. Повтор одного события не меняет результат. Покупки ДПО и USC+ проверяются независимо.

Решения и ограничения

Требует согласования: календарный месяц или 30 дней, часовой пояс расчёта, политика повторных списаний и действующих подписчиков.

P0

Сохранность пользовательского текста

#03

В прототипе: localStorage и отдельный буфер восстановления. Это не надёжное облачное хранение.

Что реализовать

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

Как принять работу

Закрытие вкладки, разрыв сети и истечение сессии не уничтожают подтверждённо сохранённый текст. При открытии с другого устройства доступна серверная версия. Ошибка сохранения явно видна. Правки опубликованной записи не становятся публичными от одного автосохранения.

Решения и ограничения

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

P0

Права на материалы и закрытые ответы

#04

В прототипе: скрытые блоки HTML можно прочитать в исходнике.

Что реализовать

Проверять доступ на сервере при каждом запросе и выдаче медиа. Закрытый ответ задачи не передавать до разрешённого раскрытия. Черновики, личная переписка и материалы на проверке доступны только уполномоченным участникам.

Как принять работу

Чужой ID в URL не открывает черновик или переписку. Ответ отсутствует в HTML, JSON, метаданных и общедоступном кеше до разрешённого момента. Закрытый медиаресурс нельзя открыть по постоянной публичной ссылке.

Решения и ограничения

Требует согласования: кто и когда раскрывает ответ — каждый читатель для себя или автор для всех.

P0

Изображения и клинические случаи

#05

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

Что реализовать

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

Как принять работу

Ошибка одного файла не сбрасывает остальные и текст. Можно удалить неверный файл до отправки. Врач видит финальную версию после обработки. Исходники не доступны публично. Повтор отправки не создаёт дубль случая.

Решения и ограничения

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

P0

Блог: самостоятельная публикация

#06

Утверждено: блог не проходит предварительную проверку редакцией.

Что реализовать

Разделить черновик, опубликованную версию и архив. Публикация — явное действие автора. Обеспечить очистку пользовательского HTML, безопасные ссылки, историю правок и восстановление архива.

Как принять работу

Автор публикует без статуса «На проверке». Автосохранение не публикует. Архивация обратима, а комментарии и ссылки не теряются молча. Пользовательский текст не исполняет скрипты.

Решения и ограничения

Модерация по жалобам и правила контента — отдельное решение; не превращать её в неутверждённую премодерацию блогов.

P1

Видеоплеер и прогресс обучения

#07

В прототипе: проценты и даты заданы вручную; «продолжить» открывает страницу.

Что реализовать

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

Как принять работу

Кнопка показывает реальное «Продолжить с 18:42»; после входа видео возобновляется близко к сохранённой позиции. Завершённый материал не предлагает продолжить с последних секунд. Перемотка не выдаёт автоматически результат аттестации.

Решения и ограничения

Согласовать пороги завершения, период сохранения позиции и возможности интеграции Skillspace.

P1

Сообщения и обсуждения

#08

В прототипе: вымышленные диалоги, локальные комментарии и счётчики.

Что реализовать

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

Как принять работу

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

Решения и ограничения

Согласовать права на личные сообщения и политику хранения; не выводить медицинские сведения в тексте внешних уведомлений.

P1

Уведомления без дублирования

#09

В прототипе: выбор событий, основного канала и частоты подборок.

Что реализовать

Единый центр событий. Каналы: кабинет, email, Telegram, MAX. Учитывать настройки и подтверждённое подключение. Использовать уникальный ID события для защиты от повторных доставок; разделить сервисные сообщения и подборки.

Как принять работу

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

Решения и ограничения

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

P1

Telegram и MAX: один аккаунт

#10

В прототипе: оба бота обозначены как будущие подключения.

Что реализовать

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

Как принять работу

Повторное событие бота не создаёт вторую задачу. Можно отвязать канал. Чужой или просроченный токен не привязывает аккаунт. Telegram и MAX не создают две отдельные личности пользователя.

Решения и ограничения

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

P1

Персональные рекомендации

#11

В прототипе: фиксированная подборка, раскрытие по три карточки.

Что реализовать

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

Как принять работу

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

Решения и ограничения

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

P1

Поиск, сохранённое и возврат

#12

В прототипе: браузерное сохранение и запоминание фильтров.

Что реализовать

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

Как принять работу

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

Решения и ограничения

Согласовать перенос анонимного браузерного избранного после входа и обработку дублей.

P1

Телефон, доступность и скорость

#13

В прототипе: адаптивные сетки и основные состояния фокуса; полноценная проверка устройств ещё нужна.

Что реализовать

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

Как принять работу

Фокус не теряется после удаления или раскрытия карточек. Модальные окна закрываются с клавиатуры и возвращают фокус. При увеличении текста нет потери кнопок. Загрузка и ошибки объявляются доступным способом. Медленная сеть не сбрасывает форму.

Решения и ограничения

Утвердить набор устройств и браузеров, целевые показатели скорости; протестировать реальные Safari/iOS и Android.

P2

Измерение качества и запуск

#14

В прототипе: отдельные демонстрационные события без полноценной аналитики.

Что реализовать

Измерять переход к обучению, успешность поиска, восстановление черновиков, ошибки загрузки, начало и завершение оформления. Отделять технические ошибки от отказов пользователя.

Как принять работу

События не содержат тексты личных сообщений, клинические описания, телефон или SMS-код. Демотрафик исключён. Для покупки сверяются подтверждённые оплаты, а не только клики.

Решения и ограничения

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

P1

Оборудование и предпочтения врача

#15

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

Что реализовать

Связать выбор с ID производителя и модели в каталоге. Не приравнивать установленный аппарат к предпочтению врача. Предусмотреть заявку на отсутствующую модель. Публичный профиль не раскрывает предпочтения и контакты. Новости связывать с ID модели. Проверять источник; не выдавать новость об обновлении за подтверждение совместимости конкретного экземпляра. Рекламу обозначать явно. Не передавать рекламодателю индивидуальные анкеты по умолчанию.

Как принять работу

Несколько аппаратов сохраняются независимо; прошлая модель не считается текущей. Выключение публичности скрывает данные и в API профиля. Отказ от рекламного подбора не отключает полезные новости. Отозванное предпочтение перестаёт использоваться. Повтор новости не создаёт повторное уведомление. Новость об обновлении ведёт к первоисточнику и не предлагает автоматически установить обновление.

Решения и ограничения

Согласовать каталог моделей, источники обновлений, правила рекламной персонализации, сроки хранения предпочтений и механизм их отзыва. Пример EPIQ Elite ver. 14 не является проверенным анонсом; не публиковать его как факт.

Проверка перед запуском

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

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

Доступ: эта страница не включена в публичное меню. При размещении сайта исключить её из публичной сборки или ограничить доступ на сервере. Метка noindex не защищает информацию.

Каталог оборудования · дополнение

Отзывы, оценки и связи материалов

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

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

Архивные отзывы сохраняют даты. Не связывать текст и оценку без подтверждённого соответствия. Для новостей и статей: несколько связанных моделей и тип связи — обзор, сравнение, упоминание. Для документов: язык, редакция, дата, источник и совместимая версия ПО.

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

Прототип страницы аппарата →
Форум · перенос и разработка

Сохранить разговоры и связи

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

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

Перенаправления со старых адресов обоих сайтов должны вести на новые темы, по возможности — на конкретные ответы. Сделать пробный импорт, сверку количества тем, сообщений и файлов по разделам, проверку ссылок и выборочную проверку вложений. Отдельно исследовать разделы, пустые на текущем сайте, но наполненные в архиве. Запуск: резервная копия, согласованное окно переключения, перенос изменений после пробной выгрузки и план отката. Импорт не рассылает уведомления.

Форум: серверные черновики, вход по SMS, подписки с настройками частоты, непрочитанные ответы на всех устройствах, поиск с ё/е и модельными синонимами. Метка «Этот ответ помог» доступна только автору темы; она не означает медицинскую проверку. Голоса защищены от повторов, права проверяются сервером. Нужны жалобы, модерация и защита от спама. Пользовательские тексты очищаются от опасной разметки.

Связь с кабинетом: темы, ответы и подписки объединены в «Обсуждениях». Связь с оборудованием строится по ID модели; не дублировать ветки. Диагностические задачи остаются отдельным типом. Локальные примеры и сообщения прототипа не импортировать. Проверить клавиатуру, мобильный просмотр вложений, ошибки загрузки и сохранение текста при истечении сессии.

Прототип форума →

Модели и новости индустрии

Единица каталога — модель аппарата. Справочник версий, поколений, аппаратных ревизий и путей модернизации не создаём и не исследуем. Пользователь может по желанию указать версию в тексте отзыва.

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

Мониторинг GE и Philips ищет новые модели и крупные обновления. Находки проверяет редактор. Приёмка: нет фильтров, карточек и обязательных полей версий; новость доступна со страницы каждой связанной модели; отзыв принимается без указания версии.

Глоссарий и пояснения терминов

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

Полные правила реализации и редакционный план →