Как реализовать привязку видеорегистратора к профилю пользователя в мобильном приложении
Что проверяют
Как вы, аналитик, раскладываете размытую задачу на сценарии, сущности и ограничения, прежде чем рисовать экраны и API. Следом почти всегда спрашивают, как доказать, что человек привязывает именно своё устройство, и что происходит при перепродаже регистратора.
Как отвечать
Начните с вопросов к заказчику и назовите их вслух: сколько устройств у одного пользователя, можно ли делиться доступом с семьёй, есть ли у регистратора свой интернет или он выходит в сеть только через телефон, что делать с записями после отвязки.
Дальше каркас:
- способ привязки: QR-код на корпусе или коробке, подключение телефона к Wi-Fi-точке регистратора, Bluetooth или ввод серийного номера. Серийник сам по себе владения не доказывает, его можно подобрать. Нужен секрет или действие на самом устройстве: кнопка, код на экране;
- модель данных: устройство, пользователь и связь между ними с ролью (владелец, гость), статусом и датой. Отдельная связь упрощает гостевой доступ и сохраняет историю;
- жизненный цикл устройства: не привязано, ожидает подтверждения, привязано, отвязано. Диаграмма состояний сразу показывает недостающие переходы;
- API и ошибки: запрос на привязку, подтверждение, список устройств, отвязка. Отдельно описываются ответы «уже привязано к другому аккаунту» и «код истёк»;
- нефункциональные требования: время на привязку, поведение при обрыве связи, повтор запроса без дублей.
Артефакты: сценарии использования, диаграмма последовательности для привязки, критерии приёмки. Видео и геотреки могут оказаться персональными данными, поэтому хранение и удаление записей стоит согласовать с юристами.
Где спотыкаются
Сразу проектируют таблицы и эндпоинты, не спросив, как устройство выходит в сеть. От этого зависит весь поток привязки.
Привязывают по одному серийному номеру. Злоумышленник перебирает номера и забирает чужие устройства.
Описывают только счастливый путь. Забывают про перепродажу, потерю телефона, удаление аккаунта, одновременную привязку с двух аккаунтов и сбой на середине процесса, после которого устройство навсегда зависает в «ожидании».