Демо «Скинемся»

05.11.2026 · 12 минут · какие 2 истории попросят, заранее неизвестно — ниже готовы все 7

Продукт0:00 · 1,5 мин
Карта историй1:30 · 1 мин
История №12:30 · 3 мин
История №25:30 · 3 мин
MVP и дальше8:30 · 1 мин
Вопросы9:30 · 2,5 мин

Если история короче (US-5, US-6), остаток добираем показом ошибок из её карточки.

1. Продукт 1,5 мин

«Скинемся» — внутренний сервис корпоративных поздравлений. Помнит дни рождения и годовщины сотрудников, а вишлисты подсказывают, что дарить. Цель — HR никого не пропускает и не гадает с подарком.

Заказчик — компания «Техносфера»: 300 сотрудников, 12 отделов, поздравления сейчас ведёт HR вручную. проверить формулировку

👤 Сотрудник

Заполняет дату рождения, «о себе» и вишлист, делится ссылкой на вишлист.

после входа → «Мой профиль»

📅 HR-менеджер

Видит календарь событий и вишлисты всех сотрудников.

после входа → «Календарь»

🛠 Администратор

Заводит сотрудников, выдаёт роли и временные пароли.

после входа → «Сотрудники»

2. Карта историй 1 мин

Спринт 1

готово · показываем

Полный цикл «календарь → профиль → вишлист»

US-1Просмотр ближайших праздниковHR
US-2Вход в личный кабинетвсе
US-3Управление ролями пользователяадмин
US-4Создание нового пользователяадмин
US-5Заполнение профиля сотрудникасотрудник
US-6Добавление желания в вишлистсотрудник
US-7Просмотр вишлиста и «Поделиться»сотрудник

Спринт 2

следующий шаг

Превращает «знаем, что дарить» в «подарили»

US-8Бронирование подарка
US-9Открытие сбора на подарок
US-10Участие в сборе
US-11Напоминания о событиях на почту
US-12Добавление событий в календарь
US-13Статистика поздравлений
US-14Загрузка сотрудников из файла

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

3. Истории

Aобычное окно Bинкогнито / другой браузер «текст» — что увидит зал шаг с оранжевым номером — ключевой, его не пропускать
выберите 2 истории — остальные скроются
US-1

Просмотр ближайших праздников

HR2,5 мин
Ценность: HR заранее видит, у кого и через сколько дней праздник, и успевает подготовить поздравление. Никто не выпадает: даже тех, кто не указал дату, видно в счётчике.
Ahr@technosfera.local / Hr123456
  1. Вход → сразу «Календарь», ноябрь, 25 событий.
  2. Плашка «У 38 сотрудников не указана дата рождения» — календарь честно говорит, что он неполный.
  3. Жёлтым — ближайшие 7 дней: Иванов «через 2 дн.» (31 год), Смирнова Ольга 07.11 без возраста (скрыла год), Кузнецов «3 года в компании, через 4 дн.».
  4. Ниже Орлова Мария 18.11 «через 13 дн.», Лебедев 29.11 «1 год в компании, через 24 дн.». Годовщины от 1 года.
  5. Фильтр «Разработка» → 4 события. «DevOps» → «В отделе «DevOps» событий нет» → «Сбросить фильтр».
  6. Стрелка → декабрь и обратно.
  7. Клик по «Иванов» → его вишлист только на чтение: что дарить — в один клик.
Доказательство: «через N дн.» и подсветка 7 дней — заранее; переход в вишлист — организовать; счётчик незаполненных — никого не пропустить. Словами: «сегодня» по Москве, 29.02 → 28.02 в невисокосный год.
Спросят про доступ: Bivanov@… / User12345 → /calendar → «Нет доступа».
В WEEEK сценарий на «сегодня 05.10»; вживую ноябрь, герои те же.
US-2

Вход в личный кабинет

все роли2,5 мин
Ценность: каждый сразу попадает в свой раздел, а временный пароль из чата живёт только до первого входа.
Дано: админ завёл HR Петрову Светлану petrova@technosfera.local, временный пароль — в .scratch/demo/creds.prod.txt (делает prep.sh).
  1. B Petrova@Technosfera.local с заглавными и пробелом + неверный пароль → «Неверный email или пароль», email не стёрся.
  2. Временный пароль → экран смены пароля.
  3. Новый пароль 123 → «От 8 до 64 символов, минимум одна буква и одна цифра».
  4. Petrova2026 дважды → «Сохранить и войти» → «Продолжить» → календарь (роль HR).
  5. Выйти → войти с временным паролем → «Неверный email или пароль».
Доказательство: роль сама ведёт в раздел; временный пароль одноразовый.
Блокировку после 5 ошибок и сессию 12 ч только рассказываем — блокировка заморозит учётку на 5 минут.
US-3

Управление ролями пользователя

админ3 мин
Ценность: роль выдаётся одним переключателем, доступ меняется сразу, без перелогина. Обойти меню ссылкой нельзя — бэкенд отвечает 403.
Кто: после US-2 — Петрова (она HR). Если US-3 один — Лебедев lebedev@technosfera.local / User12345, сотрудник без ролей.
  1. BЛебедев входит → «Мой профиль», «Календаря» и «Сотрудников» нет. /calendar по ссылке → «Нет доступа».
  2. Aadmin@… / Admin12345 → «Сотрудники» → поиск «Лебедев» → карточка, блок «Роли».
  3. Включить «HR-менеджер» → «Выдать роль «HR-менеджер»?» → «Сохранить роли».
  4. Bобновить → появился «Календарь», открывается. Без перелогина.
  5. Aснять HR → сохранить. Bклик → «Нет доступа».
  6. Aсвоя карточка (Соколов): «Администратор» неактивен — «Нельзя снять роль с самого себя», «Деактивировать» тоже.
Доказательство: шаги 4–5 — права меняются со следующего действия; шаг 6 — нельзя остаться без админа.
US-4

Создание нового пользователя

админ3 мин
Ценность: админ заводит сотрудника за минуту, тот входит по временному паролю, а годовщина сама попадает в календарь HR.
  1. Aadmin → «Сотрудники» → «Добавить сотрудника».
  2. Защита: «Сохранить» неактивна без отдела; завтрашнюю дату приёма выбрать нельзя.
  3. Сидоров Олег, sidorov@technosfera.local, «Продажи», приём 20.11.2025, «Менеджер по продажам» → «Сохранить» → временный пароль (один раз) → скопировать.
  4. Тот же email ещё раз → «Сотрудник с таким email уже существует».
  5. BСидоров входит с временным паролем → задаёт свой → «Мой профиль»: ФИО и отдел заполнены, только чтение.
  6. Bвыйти, войти hr@… → ноябрь → 20.11 «Сидоров, 1 год в компании, через 15 дн.».
Доказательство: шаг 6 — данные админа без ручной работы HR стали событием календаря. Удаления нет, только «Деактивировать» / «Активировать» — сборы спринта 2 не потеряются.
US-5

Заполнение профиля сотрудника

сотрудник2 мин
Ценность: за полминуты сотрудник сообщает дату рождения и пару слов о себе — HR сразу видит это в календаре. Возраст можно скрыть.
Кто: Смирнов Александр emp001@technosfera.local / User12345, дата рождения пустая (чистит prep.sh).
  1. Ahr → календарь, ноябрь: запомнить «У 38 сотрудников не указана дата рождения».
  2. Bemp001 → «Мой профиль»: ФИО, отдел, дата приёма — только чтение, «Напишите администратору».
  3. 31.02.1990 → «Введите дату в формате ДД.ММ.ГГГГ»; дата в будущем → «Дата рождения не может быть в будущем».
  4. 15.11.1990, «Не показывать год», «Люблю настолки и фильтр-кофе» → «Сохранить».
  5. Aобновить календарь → 15.11 «Смирнов Александр» без возраста, счётчик 37.
Доказательство: одно сохранение меняет календарь HR и счётчик.
US-6

Добавление желания в вишлист

сотрудник2 мин
Ценность: сотрудник говорит коллегам, что именно ему подарить, и отмечает главное.
Aivanov@technosfera.local / User12345 → «Мой вишлист». Дано: 2 желания, ни одного «очень хочу» (prep.sh).
  1. Подзаголовок «2 из 50».
  2. «Добавить» → ссылка ftp://… → «Введите корректную ссылку http или https»; цена -5 → «Укажите целую неотрицательную цену».
  3. «Наушники Sony WH-1000XM5», https://example.com/sony, 30 000, «Чёрные, можно б/у», «Очень хочу» → «Сохранить».
  4. Желание первым, с ценой и ссылкой, «3 из 50».
  5. «Изменить» → цена 28 000 → та же форма, сохранено.
Доказательство: «очень хочу» наверху; лимит 50 не даёт превратить вишлист в свалку.
Картинку не вводим: только ссылкой, а внешняя ссылка на демо может не открыться.
US-7

Просмотр вишлиста и «Поделиться»

сотрудник · коллега3 мин
Ценность: коллеги перед событием открывают ссылку и видят, что подарить, а не гадают.
Кто: после US-6 — Иванов (3 желания, Sony «очень хочу»). Если US-7 один — Орлова Мария orlova@technosfera.local / User12345 (3 желания, кофемашина «очень хочу»).
  1. Aвладелец → «Мой вишлист»: «очень хочу» первым, цена, ссылка, комментарий.
  2. «Поделиться» → «Ссылка скопирована».
  3. Bссылка без входа → экран входа → hr@… → сразу вишлист: все 3, нет «Изменить», «Удалить», «Добавить», «Поделиться».
  4. A«Удалить» → «Удалить желание?» → исчезло. Bобновить — тоже нет.
  5. B/wishlists/7 (Лебедев, пусто) → «В этом вишлисте пока нет желаний». У владельца — «Здесь пока пусто» и «Добавить первое желание».
Доказательство: шаг 3 — ссылка из чата открывается у любого вошедшего коллеги, только на чтение. Скрыть нельзя: не хочешь — не заполняй.

4. Ограничения MVP и что дальше 1 мин

Сделано

7 историй, бэкенд + фронт, 300 демо-сотрудников, Swagger.

Сознательно не делали

Загрузка файлов (картинка ссылкой), refresh-токен (сессия 12 ч), почта и восстановление пароля, CSV-импорт.

Дальше

Спринт 2: бронь и сборы — «кто и что дарит», напоминания убирают ручной контроль HR.

5. Подготовка

Чек-лист

  • Стенд https://skinemsya.fita.cc — развёрнут 04.11
  • TARGET=prod bash .scratch/demo/prep.sh — после каждой репетиции и утром сделано 05.11
  • Окна A и B на skinemsya.fita.cc, масштаб 110–125 %
  • DevTools и уведомления закрыты
  • Под рукой этот отчёт и creds.prod.txt
  • Прогнать каждую карточку, затем снова prep.sh

Учётки

EmailПарольГде
admin@ СоколовAdmin12345US-3, 4
hr@ Петрова АннаHr123456US-1, проверки
ivanov@User12345US-6, 7
orlova@User12345US-7 отдельно
lebedev@User12345US-3 отдельно
emp001@ СмирновUser12345US-5
petrova@ Петрова С.creds.prod.txtUS-2

Домен везде @technosfera.local

Риски

Однофамильцы в сиде

«Петрова Мария» ×8, «Кузнецов Дмитрий» ×8. Ищем по email или уникальным фамилиям: Лебедев, Сидоров, Петрова Светлана.

Блокировка на 5 минут

Не больше 1–2 неверных паролей подряд. prep.sh снимает все блокировки.

Две сессии в одном окне

Токен в localStorage: второй вход выкидывает первого. Только окна A и B.

Даты «через N дн.»

Посчитаны на 05.11. На репетиции 04.11 каждое число на 1 больше.