Зміст
Посібник користувача: як зареєструватися і увійти в застосунки Babunia (клієнт, виконавець, адміністратор), як виконавець проходить онбординг і як його заявку розглядає адміністратор, які сповіщення приходять на кожному кроці. Застосунок для компаній не розглядається.
1. Домени платформи
Платформа Babunia складається з кількох окремих вебзастосунків, кожен на власному піддомені babunia.com.ua. Усі працюють тільки через HTTPS; запити на http:// автоматично перенаправляються на https://. Застосунок для компаній (company.babunia.com.ua) у цьому документі не описується.
| Домен | Для кого | Що там відбувається |
|---|---|---|
| marketing.babunia.com.ua | Усі відвідувачі | Публічний сайт: опис послуг, новини, форма зворотного зв'язку, сторінки «Умови використання» (/terms-of-service) та «Політика конфіденційності» (/privacy-policy). Звідси ведуть посилання на реєстрацію клієнта та виконавця. На всіх сторінках входу/реєстрації є кнопка «← babunia.com.ua», яка повертає сюди. |
| client.babunia.com.ua | Клієнт (батьки) | Реєстрація та вхід клієнта, бронювання няні/онлайн-консультації/подій, оплати, чат, підтримка, діти, реферальна програма. |
| executor.babunia.com.ua | Виконавець (няня, аніматор, консультант) | Реєстрація та вхід виконавця, онбординг (заявка на верифікацію), після схвалення: доступні заявки, бронювання, графік, зони обслуговування, виплати, чат, підтримка. |
| admin.babunia.com.ua | Адміністратори платформи | Вхід адміністратора, розгляд верифікаційних заявок, керування користувачами, компаніями, послугами, тарифами, підтримкою, документацією. |
| api.babunia.com.ua | Технічний (не відкривається користувачем) | REST API, до якого звертаються всі застосунки (https://api.babunia.com.ua/api/...). Обмеження частоти запитів: 50 запитів/с з одного IP із запасом 40. |
| ws.babunia.com.ua | Технічний | WebSocket-канал (Socket.IO, простір /ws), яким сервер миттєво доставляє сповіщення в браузер: зміна статусу верифікації, нові заявки, повідомлення чату, події тікетів підтримки. |
| monitoring.babunia.com.ua, grafana.babunia.com.ua | Технічна команда | Моніторинг серверів. Користувачам не потрібні. |
Мови інтерфейсу
Усі три застосунки (клієнт, виконавець, адмін) підтримують 5 мов: українську (за замовчуванням), англійську, латиську, російську та польську. На сторінках входу перемикач мов має вигляд рядка EN | UK | LV | RU | PL під формою; усередині кабінету мова перемикається кнопкою з кодом мови (наприклад, UK ⌄) у правому верхньому куті. Вибір запам'ятовується в браузері й застосовується при наступному відкритті сторінки.

Захист форм (reCAPTCHA)
Усі форми авторизації захищені невидимою Google reCAPTCHA v3: вхід, реєстрація, SMS-вхід, «Забули пароль», новий пароль, активація тимчасового пароля, підтвердження email і повторне надсилання коду, зміна пароля в профілі. Користувач нічого не розгадує, а внизу праворуч з'являється значок reCAPTCHA. Якщо Google оцінює дії як автоматизовані (оцінка нижче 0,5), сервер відповідає помилкою «перевірка reCAPTCHA не пройдена» — у такому разі допомагає оновити сторінку й повторити спробу.
2. Форми авторизації — повний опис
У цьому розділі описано кожну форму входу та реєстрації, кожне поле й кнопку, а також те, що відбувається після натискання. Самі послідовності дій (які форми за якими йдуть) — у розділах 3–5.
2.0. Спільні елементи всіх форм
- «← babunia.com.ua» (зліва вгорі, у клієнта й виконавця) — повертає на публічний сайт marketing.babunia.com.ua. Введені дані не зберігаються.
- Логотип і заголовок — підказують, у якому застосунку ви перебуваєте: «Вхід для клієнтів», «Вхід для виконавця», «Вхід Адміністратора».
- Головна кнопка дії (синя, на всю ширину) — неактивна (бліда), доки обов'язкові поля не заповнені правильно. Після натискання показує індикатор завантаження; при помилці над нею з'являється червоний блок із текстом помилки від сервера.
- Значок «око» в полі пароля — показує/приховує введений пароль.
- Перемикач мов EN | UK | LV | RU | PL — миттєво змінює мову сторінки; вибір запам'ятовується.
- Повідомлення під полем (червоний дрібний текст) — з'являються після того, як ви залишили поле: «Обов'язкове поле», «Щонайменше 6 символів», «Паролі не збігаються», «Пароль не відповідає вимогам - дивіться значок (i)».
- Значок (i) біля поля «Пароль» — є на всіх формах, де пароль створюється або змінюється (реєстрація клієнта й виконавця, новий пароль, активація, вікно «Зміна пароля» в профілі, скидання пароля і створення адміністратора). Наведіть на нього (або торкніться) — з'явиться перелік вимог.
- reCAPTCHA — невидима перевірка працює на всіх формах авторизації: вхід, реєстрація, SMS-вхід, «Забули пароль», новий пароль, активація, підтвердження email (і повторне надсилання коду), зміна пароля в профілі.
Вимоги до пароля (однакові всюди)
Ті самі правила перевіряє і форма (кнопка лишається неактивною, доки пароль їм не відповідає), і сервер:
- 8–32 символи;
- щонайменше одна велика латинська літера (A-Z), одна мала (a-z) і одна цифра (0-9);
- дозволені лише латинські літери, цифри та символи
@$!%*?&(символи необов'язкові). Кирилиця, пробіли та інші символи (# - _ .) не приймаються.

2.1. Клієнт — client.babunia.com.ua
2.1.1. Вхід (телефон + пароль) — /auth/login

| Елемент | Як працює |
|---|---|
| Телефон | Номер у міжнародному форматі (+380...). Обов'язкове. Клієнт входить тільки за телефоном — входу за email у клієнтському застосунку немає. |
| Пароль | Обов'язкове, мінімум 6 символів. |
| Кнопка «Увійти» | Успіх — головна сторінка кабінету (/dashboard) або сторінка, з якої вас перенаправили на вхід (наприклад, підтвердження email за посиланням з листа). Якщо для акаунта встановлено тимчасовий пароль — відкривається «Встановіть пароль» (2.1.6). Помилка — «Невірні дані для входу» або «немає активної ролі», якщо акаунт заблоковано. |
| «Увійти за SMS-кодом» | Відкриває вхід/реєстрацію за SMS (2.1.3). |
| «Забули пароль?» | Відкриває відновлення пароля (2.1.4). |
| «Немає акаунту? Зареєструватися» | Відкриває реєстрацію (2.1.2). |

2.1.2. Реєстрація (email) — /auth/register

| Поле / елемент | Обов'язкове | Як працює |
|---|---|---|
| Ім'я, Прізвище | так | Відображаються в кабінеті («Вітаємо, Олена») та виконавцям у бронюваннях. |
| так | Перевіряється формат. Має бути унікальним: якщо такий email уже зареєстрований — помилка «користувач уже існує». На цю адресу прийдуть лист «Підтвердження email» і вітальний лист. | |
| Телефон | так | Унікальний. Саме за ним потім виконується вхід (2.1.1). |
| Пароль (i) | так | За вимогами до пароля. Поки пароль їм не відповідає — під полем «Пароль не відповідає вимогам», кнопка неактивна. |
| Підтвердіть пароль | так | Має збігатися з паролем, інакше під полем «Паролі не збігаються» і кнопка неактивна. |
| Зона обслуговування (опціонально) | ні | Випадний список міст/зон із пошуком (стрілка праворуч відкриває весь список). Зберігається як «бажана зона» клієнта і видна в налаштуваннях; від неї залежать часовий пояс, валюта й формат дат кабінету. |
| Реферальний код (необов'язково) | ні | Якщо ви прийшли за реферальним посиланням (?refCode=...), код підставляється автоматично; його можна змінити чи стерти. Неправильний код не блокує реєстрацію — він просто ігнорується. |
| Галочка «Я прочитав(ла) і погоджуюсь з Умовами використання та з Політикою конфіденційності» | так | Посилання відкривають документи в новій вкладці. Без галочки реєстрація неможлива (червона підказка під нею). |
| Кнопка «Зареєструватися» | — | Створює акаунт клієнта, одразу входить у нього, надсилає лист з 6-значним кодом і відкриває сторінку підтвердження email (2.1.5). |
| «Вже є акаунт? Увійти» | — | Перехід на вхід. |
| «Зручніше через телефон? Зареєструватися через SMS (підтвердження email не потрібне)» | — | Перехід на SMS-реєстрацію (2.1.3). |


2.1.3. Вхід або реєстрація за SMS — /auth/sms-login
Одна форма і для входу, і для реєстрації: якщо номера ще немає в системі, акаунт клієнта створюється автоматично після правильного коду. Підтверджувати email у цьому випадку не потрібно.
Крок 1 — номер телефону

| Елемент | Як працює |
|---|---|
| Телефон | Обов'язкове. Формат +380... |
| Галочка згоди з Умовами та Політикою | Обов'язкова (бо цей крок може створити новий акаунт). |
| «Надіслати код» | Надсилає SMS з 6-значним кодом «Ваш код верифікації Babunia: XXXXXX.». Код діє 5 хвилин. Повторно надіслати код можна не раніше ніж через 30 секунд — інакше повідомлення з кількістю секунд, які лишилось почекати. |

Крок 2 — код

| Елемент | Як працює |
|---|---|
| Код підтвердження | 4–6 цифр з SMS. |
| «Підтвердити та увійти» | Перевіряє код. Правильний — вхід у кабінет; для нового номера створюється акаунт клієнта й надсилається вітальне SMS «Babunia: Ласкаво просимо ...! Ваш акаунт успішно створено». Неправильний або прострочений — «Невірний код». |
| «Використати інший номер телефону» | Повертає на крок 1, очищує код. |
| «Інший спосіб входу? Увійти через email» | Перехід на вхід за паролем. |
2.1.4. Відновлення пароля — /auth/forgot-password і /auth/reset-password

| Елемент | Як працює |
|---|---|
| Адреса, вказана при реєстрації. | |
| «Надіслати посилання для відновлення» | Надсилає лист «Запит на відновлення паролю» з кнопкою «Скинути мій пароль». Посилання діє 30 хвилин і одноразове (новий запит анулює попереднє); реальний термін указано в листі. На екрані — зелене повідомлення «Якщо такий email існує, посилання для відновлення вже надіслано». Частота запитів обмежена. |
| «Згадали пароль? Увійти» | Повернення на вхід. |
| EN / UK / LV / RU / PL | Перемикач мови, як на вході (раніше на цій формі його не було). |

Посилання з листа відкриває сторінку «Новий пароль»:

| Елемент | Як працює |
|---|---|
| Новий пароль (i) | За вимогами до пароля. |
| Підтвердіть новий пароль | Має збігатися. |
| «Зберегти новий пароль» | Встановлює пароль. Успіх — зелене «Пароль змінено. Тепер ви можете увійти з новим паролем.» Якщо посилання прострочене або вже використане — червоне повідомлення з порадою запросити нове. |
| «Перейти до входу» | Відкриває вхід (2.1.1). |


2.1.5. Підтвердження email — /auth/verify-email

Лист «Підтвердження email» містить 6-значний код і кнопку «Підтвердити email». Кнопка відкриває цю сторінку з уже підставленим кодом і підтверджує email автоматично. Якщо в цьому браузері ви не увійшли, спершу відкриється вхід, а після нього — знову ця сторінка, і підтвердження завершиться саме.
| Елемент | Як працює |
|---|---|
| Текст «Ми надіслали код на ...» | Адреса, на яку пішов лист. |
| Код підтвердження | Рівно 6 цифр. Код діє 10 хвилин. |
| «Підтвердити» | Позначає email як підтверджений і відкриває кабінет. |
| «Надіслати код ще раз» | Новий лист з новим кодом (старий перестає діяти). Не частіше ніж раз на 60 секунд. Після успіху — «Новий код надіслано». |
| «Пропустити зараз» | Відкриває кабінет без підтвердження. Підтвердження email не блокує роботу з кабінетом. |
2.1.6. Встановлення власного пароля (тимчасовий пароль) — /auth/activate
Якщо акаунт клієнта створив диспетчер, клієнт отримує лист з тимчасовим паролем і кнопкою «Встановити пароль». Кнопка (або вхід з тимчасовим паролем) відкриває сторінку «Встановіть пароль». Поля й поведінка — такі самі, як у виконавця (2.2.5). Поки тимчасовий пароль не замінено, сервер не дає доступу до жодного розділу кабінету.
2.2. Виконавець — executor.babunia.com.ua
2.2.1. Вхід — /auth/login
Виконавець може входити за email або за телефоном — режим перемикається двома кнопками над формою.


| Елемент | Як працює |
|---|---|
| Кнопки «Електронна пошта» / «Телефон» | Перемикають, що вводиться в перше поле. При перемиканні форма очищується. |
| Електронна пошта / Телефон | Обов'язкове. |
| Пароль | Обов'язкове, мінімум 6 символів. |
| «Увійти» | Вхід. Неверифікований акаунт відкриває кабінет з обмеженим меню і банером «Реєстрацію ще не завершено» / «Ваш акаунт очікує верифікації» (розділ 6). Тимчасовий пароль — сторінка «Встановіть пароль» (2.2.5). Якщо до цього акаунта прив'язана також роль клієнта — тут він входить саме як виконавець. |
| «Увійти за кодом із SMS» | 2.2.3. |
| «Забули пароль?» | 2.2.4. |
| «Немає облікового запису? Зареєструватися» | 2.2.2. |
2.2.2. Реєстрація — /auth/register

| Поле / елемент | Обов'язкове | Як працює |
|---|---|---|
| Ім'я, Прізвище | так | З'являться в заявці на верифікацію та у профілі для клієнтів. |
| Електронна пошта | так | Логін для входу. Email виконавця вважається підтвердженим одразу — окремого кроку підтвердження немає. |
| Телефон (необов'язково) | ні | Якщо вказати — можна входити і за телефоном. |
| Пароль (i) / Підтвердження пароля | так | За вимогами до пароля; мають збігатися («Паролі не збігаються» під другим полем). |
| Зона обслуговування (опціонально) | ні | Записується як «Бажана зона обслуговування» і видна (та редагується) на кроці «Налаштування» онбордингу. Зони, в яких ви реально отримуватимете замовлення, обираються окремо на кроці «Зони обслуговування». |
| Реферальний код (необов'язково) | ні | Як у клієнта: неправильний код не заважає реєстрації. |
| Галочка згоди з Умовами та Політикою | так | Без неї кнопка неактивна. |
| «Зареєструватися» | — | Створює акаунт виконавця (або додає роль виконавця вже існуючому клієнту з тим самим email/телефоном), одразу входить у нього і відкриває онбординг — крок «Тип акаунта». Надсилається вітальний лист. Тікет підтримки «Верифікація акаунту» для листування з рев'юером створюється пізніше — при першому поданні заявки на верифікацію (посібник «Підтримка», 3.1). |

2.2.3. Вхід за SMS — /auth/sms-login

Працює так само, як у клієнта (2.1.3): номер + згода → «Надіслати код» → код → «Підтвердити і увійти». Якщо номера немає в системі — створюється новий акаунт виконавця і відкривається онбординг. Якщо номер належить клієнту — йому додається роль виконавця.
2.2.4. Відновлення пароля — /auth/forgot-password

На відміну від клієнта, виконавець отримує не посилання на зміну пароля, а тимчасовий пароль у листі «Ласкаво просимо до ...! Ваш тимчасовий пароль: ...» з кнопкою «Встановити пароль». Старий пароль одразу перестає діяти.
2.2.5. Встановлення власного пароля — /auth/activate
Сторінку «Встановіть пароль» відкриває кнопка з листа (email уже підставлено) або вхід з тимчасовим паролем (2.2.1; підставляються і email, і тимчасовий пароль). Поки тимчасовий пароль не замінено, сервер не дає доступу до жодного розділу кабінету.

| Елемент | Як працює |
|---|---|
| Електронна пошта | Підставляється автоматично (з листа або з форми входу); можна ввести вручну. |
| Тимчасовий пароль із листа | Підставляється з форми входу; якщо сторінку відкрито з листа — ввести вручну. |
| Новий пароль (i) / Підтвердіть новий пароль | За вимогами до пароля; мають збігатися. |
| «Зберегти пароль і увійти» | Замінює тимчасовий пароль власним і відкриває кабінет. Помилка, якщо тимчасовий пароль невірний. |
| «Увійти» | Повернення на вхід. |
2.2.6. Зміна пароля в профілі (клієнт і виконавець)
У «Мій профіль» на вкладці «Загальне» — кнопка «Змінити пароль»; вона відкриває вікно «Зміна пароля» (окремої вкладки «Пароль» більше немає; так само в профілі адміністратора). У вікні: «Новий пароль» (i) і «Підтвердіть новий пароль» за вимогами до пароля та кнопка «Змінити пароль». Після успіху — «Пароль змінено.»; наступний вхід — уже з новим паролем. Вкладка доступна і неверифікованому виконавцю.

2.3. Адміністратор — admin.babunia.com.ua
2.3.1. Вхід — /auth/login

| Елемент | Як працює |
|---|---|
| Електронна пошта * | Обов'язкове, перевіряється формат. |
| Пароль * | Обов'язкове, мінімум 6 символів, з кнопкою показу. |
| «Запам'ятати мене» | Подовжує сесію. |
| «Забули пароль?» | Відкриває відновлення пароля адміністратора (2.3.2). |
| «Увійти» | Вхід. Відмова, якщо адміністратор неактивний або в нього немає активної ролі. Успіх — «Головна» адмінки. |
| Рядок мов EN | UK | LV | RU | PL | Мова сторінки. |
Самостійної реєстрації адміністраторів немає: їх створює інший адміністратор (розділ 5).

2.3.2. Відновлення пароля — /auth/forgot-password і /auth/reset-password

| Елемент | Як працює |
|---|---|
| Електронна пошта * | Email адміністратора. |
| «Надіслати посилання» | Якщо такий активний адміністратор існує — надсилає лист «Запит на відновлення паролю» з одноразовим посиланням на сторінку скидання (діє 30 хвилин). Відповідь на екрані однакова для будь-якого email: «Якщо цей email належить адміністратору, посилання для відновлення надіслано» — так ніхто не може перевірити, чи існує адмін з такою адресою. |
| «Назад до входу» | Повернення на вхід. |

Посилання з листа відкриває «Скидання пароля»: «Новий пароль *» (i) і «Підтвердження пароля *» за вимогами до пароля, кнопка «Скинути пароль», «Назад до входу». Після успіху — «Пароль успішно скинуто» і кнопка «Перейти до входу». Без токена або з простроченим/використаним токеном — «Це посилання для скидання пароля недійсне або застаріле».

3. Цикли клієнта
Клієнт (батьки) не проходить верифікацію: після реєстрації одразу доступні всі розділи кабінету — бронювання, чат, профіль, діти, акції, документація, підтримка.
3.1. Реєстрація через email
- marketing.babunia.com.ua → посилання на реєстрацію клієнта, або одразу
client.babunia.com.ua/auth/register. - Заповнити форму реєстрації (2.1.2), поставити галочку згоди, «Зареєструватися».
- Сервер створює акаунт з роллю клієнта, зберігає обрану зону (видна в налаштуваннях) та реферальний код (якщо є) і одразу видає сесію — ви вже увійшли.
- На email приходять два листи: «Підтвердження email» з 6-значним кодом і кнопкою «Підтвердити email» та «Ласкаво просимо до Babunia!» з кнопкою входу (
client.babunia.com.ua/auth/login). - Автоматично відкривається «Підтвердьте email» (2.1.5). Ввести код → «Підтвердити» → кабінет. Або натиснути кнопку в листі — підтвердження відбудеться саме (за потреби після входу). Або «Пропустити зараз» → кабінет без підтвердження.

Чого очікувати: лист з кодом приходить протягом хвилини; код діє 10 хвилин; новий код можна запросити раз на 60 секунд. Якщо email або телефон уже зайняті — форма покаже помилку, і акаунт не створиться.
3.2. Реєстрація / вхід через SMS
/auth/sms-login(з форми входу «Увійти за SMS-кодом» або з реєстрації «Зареєструватися через SMS»).- Ввести номер, поставити галочку згоди, «Надіслати код» (2.1.3).
- Прийде SMS «Ваш код верифікації Babunia: XXXXXX.» Ввести код → «Підтвердити та увійти».
- Новий номер: створюється акаунт клієнта (ім'я можна дописати пізніше у «Мій профіль»), приходить SMS «Ласкаво просимо...». Існуючий номер: звичайний вхід. Якщо номер належить виконавцю, акаунту додається роль клієнта — це той самий обліковий запис.

3.3. Вхід за телефоном і паролем
/auth/login → телефон + пароль → «Увійти» → /dashboard. Сесія оновлюється автоматично у фоні; вихід — через меню аватара у правому верхньому куті.
3.4. Відновлення пароля
- «Забули пароль?» на формі входу → ввести email → «Надіслати посилання для відновлення» (2.1.4).
- Відкрити лист «Запит на відновлення паролю» → «Скинути мій пароль». Посилання діє 30 хвилин і працює один раз.
- На сторінці «Новий пароль» ввести й підтвердити пароль → «Зберегти новий пароль».
- «Перейти до входу» → увійти за телефоном і новим паролем.
Якщо пароль не потрібен узагалі — клієнт завжди може увійти за SMS-кодом (3.2). Змінити пароль будь-коли можна в «Мій профіль» → кнопка «Змінити пароль» на вкладці «Загальне» (2.2.6).
3.5. Акаунт, створений диспетчером (тимчасовий пароль)
- Клієнт отримує лист з тимчасовим паролем і кнопкою «Встановити пароль».
- Кнопка відкриває
client.babunia.com.ua/auth/activateз підставленим email; вхід з тимчасовим паролем веде туди ж (з підставленими email і тимчасовим паролем). - Ввести новий пароль двічі → «Зберегти пароль і увійти» → кабінет (2.1.6).
4. Цикли виконавця
Виконавець після реєстрації не може одразу отримувати замовлення: спершу він проходить онбординг (заявку на верифікацію), а адміністратор її розглядає. Повний процес описано в розділі 6; тут — як потрапити в акаунт.
4.1. Реєстрація через email
executor.babunia.com.ua/auth/register(з marketing-сайту або «Зареєструватися» на формі входу).- Заповнити форму (2.2.2) → «Зареєструватися».
- Сервер:
- створює акаунт з роллю виконавця (не верифікований) або, якщо email/телефон уже належить клієнту, додає йому роль виконавця;
- зберігає бажану зону обслуговування (вона з'явиться на кроці «Налаштування») і реферальний код;
- надсилає вітальний лист для виконавця з посиланням на
executor.babunia.com.ua/auth/login.
- Ви одразу в акаунті — відкривається онбординг, крок 1 «Тип акаунта» (розділ 6).
Чого очікувати: окремого підтвердження email для виконавця немає. Якщо закрити онбординг на півдорозі, усе збережене не втрачається — при наступному вході кнопка «Продовжити реєстрацію» поверне на той самий крок.
4.2. Реєстрація / вхід через SMS
/auth/sms-login: номер + галочка згоди → «Надіслати код» → код → «Підтвердити і увійти». Новий номер — створюється акаунт виконавця і відкривається онбординг. Номер клієнта — йому додається роль виконавця.
4.3. Вхід
/auth/login → «Електронна пошта» або «Телефон» → пароль → «Увійти». Що відкриється далі, залежить від стану верифікації:
| Стан | Що бачить виконавець |
|---|---|
| Онбординг не завершено | Помаранчевий банер «Реєстрацію ще не завершено. Будь ласка, пройдіть усі кроки...» з посиланням «Продовжити реєстрацію». Меню: «Головна», «Допомога та чат» → «Підтримка», «Мій профіль». |
| Заявку подано, розглядається | Банер «Ваш акаунт очікує верифікації. Деякі розділи заблоковані...» з посиланнями «Переглянути статус акаунта» / «Переглянути статус послуги». |
| Рев'юер попросив інформацію | Червоний банер «Рев'юер попросив додаткову інформацію...» з посиланнями «Оновити дані акаунта» / «Оновити дані послуги». |
| Акаунт схвалено | Без банера (або «Ви ще не підключені ні до одного сервісу», поки жодну послугу не схвалено). Повне меню: «Бронювання», «Допомога та чат», «Мій профіль», «Реферали». |

Спроба відкрити закритий розділ за прямою адресою (наприклад, /bookings) показує сторінку «Доступ заборонено» з кнопками «На головну» та «Увійти під іншим акаунтом».

4.4. Відновлення пароля
- «Забули пароль?» → email → «Надіслати посилання для відновлення».
- Лист містить тимчасовий пароль і кнопку «Встановити пароль».
- Кнопка з листа відкриває «Встановіть пароль» з підставленим email; вхід з email і тимчасовим паролем відкриває цю ж сторінку автоматично (2.2.5).
- Новий пароль → «Зберегти пароль і увійти» → кабінет.
Змінити пароль будь-коли можна у «Мій профіль» → «Загальне» → «Змінити пароль» (2.2.6).
5. Цикли адміністратора
5.1. Як з'являється новий адміністратор
Самостійної реєстрації в адмінці немає. Нового адміністратора створює інший адміністратор з правом create:admin-user:
- Меню «Керування користувачами» → «Адміністратори» → «Створити» (
/admin-users/create). - Заповнити форму «Створити Адміністратора».
- «Зберегти» — акаунт створюється одразу з указаним паролем. Лист новому адміністратору не надсилається: email і пароль йому треба передати самостійно (або він сам скористається «Забули пароль?» на формі входу).

| Поле | Як працює |
|---|---|
| Ім'я * | Повне ім'я (у адміністраторів одне поле імені). |
| Електронна пошта * | Логін. Унікальна — інакше «email вже існує». |
| Пароль * (i) / Підтвердження Паролю * | Початковий пароль за вимогами до пароля; мають збігатися. |
| Роль * | Визначає, які розділи меню та дії доступні (модулі ролі та права read/create/update/delete). |
| Активний | Знята галочка — акаунт створюється неактивним, вхід заборонено. |
| «Скасувати» / «Зберегти» | Закрити без змін / створити. |
5.2. Вхід і робота
admin.babunia.com.ua/auth/login→ email, пароль, за бажанням «Запам'ятати мене» → «Увійти» (2.3.1).- Відкривається «Головна» з меню за роллю: «Бронювання та послуги», «Керування користувачами», «Верифікація», «Компанії», «Реферальні програми», «Підписки», «Система», «Керування підтримкою», «Документація», «Маркетинговий сайт».
- Мову перемикає кнопка з кодом мови в шапці; вибір зберігається і після перезавантаження сторінки.
5.3. Пароль адміністратора
- Сам адміністратор: «Забули пароль?» на формі входу → email → лист з одноразовим посиланням (30 хв) → «Скидання пароля» → вхід з новим паролем (2.3.2).
- Інший адміністратор: «Адміністратори» → редагування → «Змінити пароль» → новий пароль двічі → «Зберегти». Новий пароль діє одразу.
5.4. Роль адміністратора в онбордингу виконавців
Адміністратор (рев'юер) розглядає заявки виконавців у меню «Верифікація» → «Верифікаційні заявки». Детально — у розділі 6, частина «Сторона адміністратора».
6. Онбординг: виконавець ↔ адміністратор
Онбординг — це шлях від щойно зареєстрованого виконавця до виконавця, який отримує замовлення. Перевіряються дві речі окремо:
- Акаунт — особа виконавця (опис, документи, фото). Перевіряється один раз назавжди.
- Кожна послуга (наприклад, «Замовлення няні», «Онлайн-консультація з догляду», «Заходи та вечірки») — досвід саме для цієї послуги. Кожна послуга перевіряється незалежно; нові послуги можна додавати пізніше.
Під кожен пункт створюється окрема верифікаційна заявка (кейс) зі своїм статусом. Усі кейси одного виконавця пов'язані з одним тікетом підтримки «Верифікація акаунту» (його створює перше подання заявки), де рев'юер і виконавець можуть листуватися.
6.1. Загальний цикл
- Виконавець реєструється (розділ 4) і проходить майстер онбордингу: тип акаунта → верифікація акаунта → послуги → деталі кожної послуги → зони обслуговування → налаштування → надсилання.
- До фінальної кнопки «Надіслати на перевірку» всі дані зберігаються як чернетка, яку рев'юер не бачить.
- Після надсилання кейси отримують статус «Подано», з'являються в черзі «Верифікаційні заявки», а всі адміністратори онлайн отримують сповіщення.
- Адміністратор відкриває заявку, переглядає дані, документи та фото, за потреби пише в тікет і змінює статус кожного кейсу.
- Кожна зміна статусу миттєво приходить виконавцю (сповіщення в кабінеті, лист на email, push у мобільному застосунку).
- «Потрібна додаткова інформація» → виконавець доповнює дані й натискає «Подати повторно» → кейс знову «Подано» і повертається в чергу.
- «Схвалено» для акаунта відкриває повне меню кабінету; «Схвалено» для послуги вмикає цю послугу та зони обслуговування, і виконавець починає отримувати заявки.
6.2. Статуси кейсу і хто їх змінює
| Статус | Що означає | Хто переводить далі | Куди можна перейти |
|---|---|---|---|
| Чернетка | Виконавець ще заповнює майстер (або виправляє заявку після відхилення). У черзі заявок не показується; на сторінці кандидата видна, але змінити її статус рев'юер не може. | Виконавець | Подано (кнопка «Надіслати на перевірку» або «Подати повторно») |
| Подано | Заявка в черзі на розгляд. | Рев'юер | Будь-який робочий статус, «Схвалено», «Відхилено», «Потрібна додаткова інформація» |
| Перевірка рекомендацій / Співбесіда / Тестування / Рішення | Проміжні етапи розгляду (необов'язкові, рев'юер може їх пропускати). | Рев'юер | Будь-який інший робочий або фінальний статус |
| Потрібна додаткова інформація | Рев'юер щось просить (коментар показується виконавцю). Поки виконавець не відповість, рев'юер статус не змінює. | Виконавець | Подано («Подати повторно») |
| Схвалено | Фінальний. Акаунт верифіковано / послугу активовано. | — | — |
| Відхилено | Фінальний для цього кейсу. Виконавець може виправити дані й подати заявку знову — відкривається новий кейс. | Виконавець (повторна заявка) | Новий кейс у статусі «Подано» |
| Скасовано системою | Схвалену послугу автоматично знято з активних через зміну критичних налаштувань; потрібна повторна перевірка. | Система | Подано |
6.3. Сторона виконавця — майстер онбордингу
Майстер відкривається відразу після реєстрації (/onboarding/account-type) і за посиланням «Продовжити реєстрацію» з банера чи головної. Угорі — індикатор кроків; кроки, які до вас не належать, не показуються (наприклад, «Верифікація акаунта» зникає, якщо акаунт уже схвалено; «Зони обслуговування» з'являється тільки для послуги «Замовлення няні»; «Налаштування» — лише якщо для виконавців є налаштування). Кожна кнопка «Продовжити» зберігає крок на сервері, тож перезавантаження сторінки нічого не губить. Кнопка «Назад» теж зберігає введене на поточному кроці.
Крок 1. Тип акаунта

| Елемент | Як працює |
|---|---|
| «Приватна особа / ФОП» | Створює вашу особисту «компанію» (тип PRIVATE) на ваше ім'я. Обмеження: можна обрати лише одну послугу. |
| «Агенція / компанія» | Показує поле «Назва компанії» (обов'язкове). Створює компанію-агенцію; можна обрати кілька послуг. |
| Попередження «Зміна типу облікового запису видалить вже введені послуги та дані...» | З'являється, якщо ви повернулися і змінюєте вже збережений тип. Після підтвердження обрані раніше послуги та їхні описи видаляються. |
| «Продовжити» | Зберігає тип і переходить до кроку 2 (або одразу до «Послуги», якщо акаунт уже верифіковано). |

Крок 2. Верифікація акаунта (один раз назавжди)

| Елемент | Як працює |
|---|---|
| «Про вас» | Обов'язковий текст: хто ви, досвід, освіта. Його бачить рев'юер. |
| Блок «Документи» | Ваша бібліотека документів. «Завантажити документ» відкриває вікно завантаження (перетягніть файл або натисніть для вибору; показано допустимі формати та максимальний розмір; «Скасувати» / «Завантажити»). Рев'юер бачить лише позначені галочкою файли; щойно завантажений файл позначається автоматично. |
| Блок «Фото» | Так само для фото («Завантажити нове фото»). |
| «Назад» | Крок 1 (введене зберігається). |
| «Продовжити» | Зберігає опис і вибрані файли як чернетку (рев'юер її ще не бачить) і веде до кроку 3. Неактивна, поки «Про вас» порожнє. |


Крок 3. Послуги

- Доступні зараз: Замовлення няні, Онлайн-консультація з догляду, Заходи та вечірки. «Трансфер і супровід», «Навчання няні» і «Консультація з підтримки сім'ї» позначені «скоро» — їх вибрати не можна. Назви послуг показуються мовою інтерфейсу.
- Для «Приватна особа / ФОП» — підказка «Фізичні особи можуть вибрати лише одну послугу»: новий вибір замінює попередній.
- «Продовжити» записує запит на обрані послуги й переходить до деталей першої з них. Неактивна, поки нічого не обрано.

Крок 4. Деталі послуги (для кожної обраної послуги окремо)

- «Досвід і кваліфікація» (обов'язково) — досвід саме для цієї послуги: роки, сертифікати, мови.
- Блоки «Документи» і «Фото» — як на кроці 2, але вибір прив'язується до цієї послуги.
- «Продовжити» зберігає і переходить до наступної послуги; після останньої — до «Зони обслуговування» або «Налаштування». «Назад» на 2-й і далі послузі повертає до попередньої послуги.
Крок 5. Зони обслуговування (тільки для «Замовлення няні»)

Список міст/зон із галочками. Обов'язково обрати хоча б одну, інакше «Оберіть хоча б одну зону обслуговування перед продовженням». Заявки на няню пропонуватимуться лише в обраних зонах. Після схвалення послуги зони можна змінювати в меню «Бронювання» → «Зони обслуговування».
Крок 6. Налаштування

Групи «Реквізити для виплат» (назва банку *, IBAN *), «Вподобання» (бажана зона обслуговування * — уже заповнена, якщо зону обрано при реєстрації), «Календар» (синхронізація з Google/Apple-календарем, необов'язково). Поля із зірочкою обов'язкові.
- «Продовжити» внизу перевіряє обов'язкові поля. Якщо щось порожнє — поле підсвічується «Це поле обов'язкове», угорі з'являється «Заповніть усі обов'язкові налаштування (позначені *), щоб продовжити», і майстер лишається на цьому кроці. Якщо все заповнено — незбережені зміни зберігаються автоматично, і майстер переходить до надсилання.
- «Скасувати» / «Зберегти» у формі — відкотити або зберегти зміни без переходу далі.
- Сервер так само відмовляє в надсиланні заявки, поки обов'язкові налаштування не заповнені.
- Ці налаштування рев'юер бачить на вкладці «Акаунт».

Крок 7. Надсилання

«Надіслати на перевірку»: кейс акаунта переходить із чернетки в «Подано», для кожної послуги створюється кейс «Подано» (з прикріпленими документами/фото та обраними зонами). Послуга отримує статус «Очікує верифікації». Адміністраторам приходить сповіщення про нову заявку.

6.3.1. Сторінки статусу для виконавця
| Сторінка | Що там |
|---|---|
«Статус верифікації акаунта» (/account-verification-status, посилання «Переглянути статус акаунта» в банері) | Статус кейсу акаунта, коментар рев'юера, «Переглянути тікет підтримки», прикріплені документи й фото (лише перегляд), налаштування. Коли рев'юер просить інформацію або відхилив заявку — блок «Оновіть інформацію» з редагуванням опису і вибору файлів та кнопками «Зберегти» і «Подати повторно». |
«Доступні сервіси» (/services) | Усі послуги каталогу зі статусами: «Не підключено», «Очікує верифікації», «На розгляді», «Потрібна додаткова інформація», «Активний», «Відхилено», «Призупинено». Кнопки «Підключити» (додати послугу — відкриває майстер одразу з кроку деталей) і «Переглянути». |
Сторінка послуги (/services/:id, «Переглянути») | Статус кейсу цієї послуги, коментар, тікет, надіслані дані й файли. При «Потрібна додаткова інформація» або «Відхилено» — редагування й «Подати повторно». |
«Статус верифікації» (/onboarding-status) | Зведення: статус, тип акаунта, надіслані дані послуг, документи. Якщо адміністратор запланував співбесіду (6.4.4) — картка «Співбесіда з верифікації»: «Заплановано на …», посилання Google Meet з «Скопіювати» і «Відкрити Google Meet». |




6.3.2. Якщо рев'юер попросив додаткову інформацію
- Приходить сповіщення «Оновлення верифікації — Статус вашої верифікації: Потрібна додаткова інформація» (у кабінеті, на email, push).
- Банер стає червоним: «Рев'юер попросив додаткову інформацію. Будь ласка, оновіть вашу заявку» з посиланнями «Оновити дані акаунта» / «Оновити дані послуги».
- На сторінці статусу видно коментар рев'юера (наприклад, «Додайте, будь ласка, скан паспорта»). Доповнити опис, завантажити/позначити файли.
- «Зберегти» — лише зберегти, статус не змінюється. «Подати повторно» — зберегти й повернути кейс у «Подано»; рев'юери отримують сповіщення.



6.3.3. Якщо заявку відхилено
Кейс отримує статус «Відхилено» (фінальний), виконавцю приходить сповіщення з причиною. Сторінка статусу стає редагованою: виправте дані й натисніть «Подати повторно» — створюється новий кейс у статусі «Подано» (для послуги — з раніше обраними зонами), і він потрапляє в чергу рев'юера як нова заявка.



6.3.4. Після схвалення
- Акаунт схвалено → банер зникає, картка «Верифікація: Верифіковано — Ви верифіковані і можете отримувати замовлення», меню відкривається повністю.
- Послугу схвалено → у «Доступні сервіси» статус «Активний»; з'являються пункти «Бронювання» → «Доступні заявки», «Зони обслуговування» тощо; обрані в онбордингу зони стають робочими. Нові заявки клієнтів у ваших зонах приходять сповіщенням «Нова заявка на ... — подайте заявку».
- Поки акаунт схвалено, а жодної послуги — ні, на головній банер «Ви ще не підключені ні до одного сервісу» з кнопкою «Підключити сервіс».




6.4. Сторона адміністратора — розгляд заявок
6.4.1. Список «Верифікаційні заявки» (/verification-cases)

| Елемент | Як працює |
|---|---|
| Пошук «Пошук за ім'ям, телефоном або email» + «Пошук» (або Enter) | Фільтрує кандидатів. |
| «Усі статуси» | Фільтр за статусом кейсу. |
| «Акаунт або сервіс» | Тільки кейси акаунтів або тільки кейси послуг. Для «Сервіс» з'являється ще фільтр «Усі послуги». |
| «Очистити фільтри» | Скидає всі фільтри. |
| Колонки «Користувач», «Очікують», «Статус», «Дії» | Ім'я, телефон і email; що саме подано («Акаунт, Запитані послуги: Замовлення няні»); кольорові мітки статусів кожного кейсу; кнопка «Переглянути» (око). |
| Пагінація | 10 / 25 / 50 рядків на сторінку. |
Чернетки (незавершені майстри) у черзі не показуються. Коли кандидат надсилає або повторно подає заявку, усі адміністратори онлайн отримують сповіщення «Верифікаційна заявка — Нова активність: Подано»; клік відкриває заявку цього кандидата.
6.4.2. Сторінка заявки (/verification-cases/:userId)

| Блок | Що показує / як працює |
|---|---|
| Вкладки | «Акаунт» + вкладка кожної запитаної послуги (історичні кейси після повторних подач теж показуються окремими вкладками). |
| Зведення | Користувач (ім'я, телефон, email), статус, дата створення, дата закриття (для фінальних), коментар, «Переглянути тікет #N» — відкриває тікет підтримки для листування з кандидатом. |
| «Змінити статус» | Випадний список «Оберіть наступний статус», поле «Коментар» і кнопка «Оновити статус». Блок прихований для фінальних статусів, для чернетки і поки кейс у «Потрібна додаткова інформація» (чекаємо відповіді кандидата). Коментар бачить кандидат і отримує його в сповіщенні. |
| Дані послуги (вкладка послуги) | Назва послуги, «Досвід і кваліфікація: ...», дата подання. |
| «Документи кандидата» / «Фото кандидата» | Файли, прикріплені до цього кейсу: перегляд (око), завантаження, а також ✓ «Схвалити» / ✗ «Відхилити» окремий документ (з причиною). «Статус перевірки» документа: Pending / Approved / Rejected. |
| «Налаштування кандидата» (вкладка «Акаунт») | Налаштування виконавця з кроку 6, лише перегляд. |



6.4.4. Співбесіда з верифікації (за бажанням)
Якщо адміністратор хоче поговорити з кандидатом, на сторінці заявки, у вкладці кожної справи, є блок «Співбесіда з верифікації» з кнопкою «Запланувати співбесіду». Співбесіда необов'язкова: статуси справи від неї не залежать.
- Google Календар адміністратора має бути підключений (профіль адміністратора → вкладка «Google Календар»; або «Підключити Google Календар» прямо з блоку).
- Вікно: дата, час, тривалість (15–240 хв), «Нагадування прийдуть за 30 і 15 хв» → «Запланувати». У календарі адміністратора створюється подія з Google Meet і нагадуваннями.
- Виконавець з підключеним Google Календарем — учасник події (запрошення від Google); без нього — отримує лист із часом і посиланням та нагадування за 30 і 15 хв. Співбесіду він бачить на «Статус верифікації» (6.3.1).
- «Скасувати» — подію скасовано, виконавцю — лист «Зустріч скасовано».


6.4.3. Що відбувається після кожного рішення
| Дія рев'юера | Наслідок у системі | Що бачить виконавець |
|---|---|---|
| Будь-яка зміна статусу | Статус і коментар зберігаються; кандидату — сповіщення в кабінеті, email і push. | Нова мітка статусу, коментар. |
| «Потрібна додаткова інформація» | Кейс чекає кандидата; для послуги статус «Потрібна додаткова інформація». | Червоний банер, редагування на сторінці статусу, «Подати повторно». |
| «Схвалено» (Акаунт) | Акаунт позначається верифікованим. | Повне меню кабінету. |
| «Схвалено» (Послуга) | Послуга виконавця стає «Активний», обрані зони записуються як зони обслуговування — виконавець потрапляє в підбір на заявки. | Послуга «Активний», доступні заявки. |
| «Відхилено» | Кейс закрито з причиною. | Можливість виправити й подати заново (новий кейс). |




7. Сповіщення
7.1. Канали доставки
| Канал | Як виглядає | Особливості |
|---|---|---|
| Дзвіночок у кабінеті (WebSocket) | Значок дзвоника в шапці з лічильником непрочитаних. Клік відкриває список «Сповіщення» з кнопкою «Позначити всі прочитаними»; клік по сповіщенню веде на пов'язану сторінку. | Приходить миттєво через ws.babunia.com.ua, лише поки вкладка відкрита. Історія не зберігається: після перезавантаження сторінки список порожній, а те, що сталося, поки ви були офлайн, у дзвіночку не з'явиться (але банери й статуси на сторінках завжди актуальні). Так задумано. |
| HTML-лист від Babunia мовою користувача. | Ставиться в чергу і надсилається протягом хвилини (листи з кодами/посиланнями — одразу). | |
| SMS | Короткий текст. | Тільки коди та вітання для SMS-реєстрації. |
| Push | Сповіщення мобільного застосунку. | Лише якщо встановлено мобільний застосунок і зареєстровано пристрій. |
| Банери в кабінеті | Кольорова смуга вгорі кабінету виконавця. | Не сповіщення, а постійний індикатор стану верифікації; оновлюється при кожному завантаженні сторінки. |

7.2. Каталог сповіщень (реєстрація, вхід, онбординг)
Ідентифікатор потрібен для пошуку шаблону в backend/microservices/notifications/templates/<канал>/<мова>/ або події WebSocket. Усі листи і push ідуть мовою користувача. Таблиця — основа для подальшого доповнення.
| # | Ідентифікатор | Канал | Кому | Коли | Зміст / дія |
|---|---|---|---|---|---|
| N1 | welcome-email (клієнт) | Клієнт | Реєстрація через email | «Ласкаво просимо до Babunia!» + кнопка входу на client.babunia.com.ua/auth/login. | |
| N2 | welcome-email (виконавець) | Виконавець | Реєстрація виконавця | «Ласкаво просимо до команди виконавців...» + що можна робити + вхід на executor.babunia.com.ua/auth/login. | |
| N3 | email-verification | Клієнт | Реєстрація через email; «Надіслати код ще раз» | «Підтвердження email»: 6-значний код (діє 10 хв) і кнопка «Підтвердити email» → client.babunia.com.ua/auth/verify-email?email=…&code=… (підтверджує автоматично). | |
| N4 | sms-verification | SMS | Клієнт, виконавець | «Надіслати код» на SMS-вході | «Ваш код верифікації Babunia: XXXXXX.» Діє 5 хв, повтор не раніше ніж через 30 с. |
| N5 | welcome-sms | SMS | Новий користувач SMS-входу | Перший вхід за SMS (акаунт створено) | «Babunia: Ласкаво просимо ...! Ваш акаунт успішно створено.» |
| N6 | forgot-password | Клієнт; адміністратор | «Забули пароль?» (клієнт / адмінка) | «Запит на відновлення паролю» + кнопка «Скинути мій пароль» → client.babunia.com.ua або admin.babunia.com.ua /auth/reset-password?token=…. Одноразове, діє 30 хв (термін указано в листі). Адміну лист іде лише якщо такий активний адміністратор існує; відповідь на екрані однакова. | |
| N7 | temp-password | Виконавець; клієнт, створений диспетчером | «Забули пароль?» у застосунку виконавця; створення акаунта диспетчером | Тимчасовий пароль і кнопка «Встановити пароль» → executor / client /auth/activate?email=…. | |
| N8 | support-queue.created | WebSocket | Оператори підтримки | Перше подання заявки на верифікацію (автотікет «Верифікація акаунту») | Новий тікет у черзі підтримки. Листа кандидату немає. |
| N9 | verification-queue.updated | WebSocket (дзвіночок адмінки) | Усі рев'юери онлайн (роль з доступом до «Верифікаційні заявки») | Кандидат натиснув «Надіслати на перевірку» або «Подати повторно» | «Верифікаційна заявка — Нова активність: Подано» → відкриває заявку кандидата. |
| N10 | verification-case.status-changed | WebSocket (дзвіночок виконавця) | Кандидат | Рев'юер змінив статус будь-якого кейсу | «Оновлення верифікації — Статус вашої верифікації: <назва статусу>» → сторінка статусу акаунта або цієї послуги. |
| N11 | verification-status-change | Кандидат | Те саме, що N10 | «Оновлення статусу верифікації»: тип («Акаунт» або назва послуги), статус («Подано», «Потрібна додаткова інформація», «Схвалено»…), причина/коментар; для схвалення — «Тепер вам доступні всі функції», для відхилення — прохання виправити документи. | |
| N12 | verification-status-change | Push | Кандидат | Те саме, що N10 | «Статус верифікації змінено» + тип, статус і коментар. |
| N13 | booking-available | WebSocket (дзвіночок виконавця) | Виконавці з активною послугою в зоні заявки | Клієнт створив заявку (після схвалення послуги) | «Нова заявка на <назва послуги> (#номер) - подайте заявку» → «Доступні заявки». |
| N14 | support-ticket.assigned / status-changed / transferred | WebSocket + Email | Автор тікета (клієнт, виконавець) | Дії оператора в тікеті (зокрема в тікеті верифікації) | «Оновлення тікета підтримки — Тікет №N: <статус>» (статус перекладено) → сторінка тікета. Листи support-ticket-* — на email акаунта для звернень, створених користувачем; в автотікеті верифікації email немає, тож там тільки дзвіночок. Докладно — посібник «Підтримка». |
| N15 | temp-password-sms | SMS | Клієнт або виконавець без email (зареєстрований за SMS) | Адміністратор скинув пароль (посібник «Мій профіль», 4.6) | «Babunia: ваш тимчасовий пароль … Увійдіть за номером телефону і задайте новий пароль.» |
| N16 | meeting (заплановано / скасовано / нагадування) | Виконавець без підключеного Google Календаря | Адміністратор запланував або скасував співбесіду з верифікації (6.4.4); за 30 і 15 хв до неї | «Заплановано зустріч»: час, тривалість, кнопка Google Meet; «Зустріч скасовано»; «Нагадування: зустріч за 30 / 15 хв». З Google Календарем — запрошення й нагадування від Google. |
7.3. Які сповіщення в якому циклі
| Цикл | Сповіщення |
|---|---|
| Клієнт: реєстрація через email (3.1) | N3, N1 |
| Клієнт / виконавець: SMS (3.2, 4.2) | N4; для нового номера ще N5 |
| Клієнт: відновлення пароля (3.4) | N6 |
| Клієнт, створений диспетчером (3.5) | N7 |
| Виконавець: реєстрація (4.1) | N2, N8 |
| Виконавець: відновлення пароля (4.4) | N7 |
| Адміністратор: відновлення пароля (5.3) | N6 |
| Онбординг: надсилання / повторна подача (6.3) | N9 (рев'юерам) |
| Онбординг: кожна зміна статусу рев'юером (6.4) | N10, N11, N12 (кандидату) |
| Листування в тікеті верифікації | N14 |
| Після схвалення послуги | N13 при кожній новій заявці в зонах виконавця |
8. Виправлено під час підготовки документа та відкриті питання
Усі описані вище сценарії пройдено вживу в браузері на локальному стенді. Знайдені проблеми виправлено в коді й покрито тестами (API-тести backend-tests/api/auth-recovery, verification, executor-service-areas та Playwright-тести frontend-tests/e2e/auth, verification). На продакшн виправлення потраплять з наступним деплоєм.
8.1. Виправлено
| # | Що було | Що зроблено |
|---|---|---|
| F1 | Клієнт: «Забули пароль?» завжди показував англійську помилку «Password reset is not available for client users», а посилання з листа відкривало порожню сторінку. | Відновлення пароля для клієнтів увімкнено; додано сторінку «Новий пароль». |
| F2 | Виконавець після входу з тимчасовим паролем отримував «Доступ заборонено» на всіх сторінках, і вийти з цього стану було неможливо. | Додано сторінку «Встановіть пароль» (і для клієнта); вхід з тимчасовим паролем веде на неї автоматично, кнопка в листі — теж. |
| F3 | У профілі клієнта/виконавця не було способу змінити пароль. | Додано вкладку «Пароль» у «Мій профіль». |
| F4 | Після «Відхилено» кнопка «Подати повторно» завжди повертала помилку. | Повторна подача після відхилення створює новий кейс («Подано»). |
| F5 | Лист і push про зміну статусу верифікації йшли англійською («Account», «Submitted»), а потім через помилку ініціалізації взагалі не надсилались. | Надсилаються мовою користувача з перекладеними статусами. |
| F6 | У дзвіночку статус показувався кодом («reference_check»), назва послуги — англійською. | Показуються перекладені назви статусу й послуги. |
| F7 | Посилання у вітальних листах вели на неіснуючу сторінку /login, а виконавців — у клієнтський застосунок. | Клієнт → client…/auth/login, виконавець → executor…/auth/login. |
| F8 | Лист відновлення пароля обіцяв «24 години», а посилання діяло 30 хвилин. | У листі показується реальний термін. |
| F9 | Адмінка після перезавантаження сторінки поверталася до англійської; у меню мов не було польської. | Вибрана мова зберігається; у меню є Polski. |
| F10 | Форма входу в адмінку на продакшні була заповнена тестовими admin@test.com і паролем; «Забули пароль?» вело в нікуди. | Тестові дані лише в dev-збірці. |
| F11 | Відновлення пароля адміністратора не існувало; успадкований механізм працював з таблицею користувачів застосунків (міг скинути пароль іншій людині з тим самим email). | Окреме відновлення для адміністраторів: «Забули пароль?» → лист → «Скидання пароля». |
| F12 | Зміна пароля адміністратора у формі редагування зберігала пароль у відкритому вигляді — після цього адмін не міг увійти. | Пароль хешується. |
| F13 | Галочка «Активний» при створенні адміністратора ігнорувалась. | Враховується. |
| F14 | Рев'юер міг змінювати статус чернетки (заявки, яку кандидат ще не надсилав). | Заборонено і в інтерфейсі, і на сервері. |
| F15 | Статуси й фільтри в адмінці англійською або сирими ключами; поле послуги — «notes» без розділювача; назви послуг англійською всюди. | Перекладено; назви послуг беруться з єдиного перекладу common.services (клієнт, виконавець, адмінка). |
| F16 | Неверифікований виконавець бачив у меню лише «Головна». | Меню показує дозволені пункти всередині груп («Підтримка», «Мій профіль»). |
| F17 | SMS-вхід виконавця створював акаунт без згоди з Умовами та Політикою. | Додано обов'язкову галочку згоди. |
| F18 | Кожен новий клієнт отримував незрозумілий відкритий тікет «Account verification» (верифікації). | Тікет створюється тільки для виконавців. |
| F19 | Крок «Налаштування»: підписи англійською, а обов'язкові поля (*) можна було пропустити. | Перекладено; «Продовжити» не пропускає порожні обов'язкові поля, сервер теж не приймає заявку без них. |
| F20 | Зона, обрана при реєстрації, не з'являлась у налаштуваннях (записувалась під іншим ключем). | Зберігається під тим самим ключем, що й у налаштуваннях; старі записи теж читаються. |
| F21 | Правила пароля у формах (лише 8+ символів) не збігались із серверними — помилку було видно тільки після надсилання. | Одні правила на всіх формах і на сервері + значок (i) з описом вимог; англомовний індикатор надійності PrimeNG прибрано. |
| F22 | Лист з кодом підтвердження email мав тему «Верифікація мобільного номера» і не мав посилання. | Окремий веб-лист «Підтвердження email» з кнопкою, що підтверджує автоматично. |
| F23 | Лист з тимчасовим паролем радив «відкрити мобільний застосунок». | Веб-текст і кнопка «Встановити пароль» (для мобільних застосунків — окремо, коли вони з'являться). |
| F24 | reCAPTCHA перевірялась лише на вході, реєстрації та SMS. | Перевіряється на всіх формах авторизації (див. розділ 1). |
| F25 | Після реєстрації клієнта код підтвердження надсилався двічі (другий запит упирався в ліміт); повідомлення про ліміт частоти кодів було англійською. | Один лист; повідомлення перекладено. |
| F26 | В адмінці форми «Відновлення пароля» і «Скидання пароля» були без стилів: перемикач мови — сірі системні кнопки, «Назад до входу» — синє підкреслене посилання, поля й кнопка злипались. У клієнта й виконавця на «Забули пароль» не було перемикача мови. | Форми оформлено як вхід (спільні стилі); перемикач мови на всіх формах відновлення. |
| F27 | Зміна пароля в профілі була окремою вкладкою «Пароль». | Кнопка «Змінити пароль» на «Загальне» з вікном (2.2.6). |
8.2. Відкриті питання
- Мобільні застосунки не надсилають reCAPTCHA; оскільки вона обов'язкова на всіх формах авторизації (як і раніше на вході), мобільним клієнтам знадобиться окреме рішення, коли вони з'являться. Тоді ж — мобільні версії листів з кодом і тимчасовим паролем.
- Мобільні застосунки та застосунок компаній у цьому документі не розглядались.