| Поле | Значення |
|---|
| Статус | 🟢 prod |
| Поверхні | web |
| Доступність | потрібен акаунт (гейт account-auth) |
| Власник | TODO: |
| Останнє підтвердження | 2026-06-14 · код:main (abitly-frontend-v2, abitly-api-v2) + live-гейт (/uk/profile → 307 на login). Авторизований UI — code-derived (візуально не верифіковано) |
Парасолька особистого кабінету абітурієнта: під єдиним shell-лейаутом (CabinetShell — сайдбар на desktop, bottom-nav на mobile, ⌘K-пошук) збирає дашборд, налаштування профілю, конкурсний бал, збережені пропозиції та історію тестів. Рольовий — 5 типів користувача (APPLICANT, APPLICANT_MEMBER, STUDENT, TEACHER, OTHER), набір полів різниться.
Точка входу: https://abitly.org/uk/profile (корінь кабінету = Огляд). Гість → 307 на /uk/auth/login. Навігація (CABINET_NAV_ITEMS) — 5 розділів:
- Огляд
/profile — дашборд: JourneyStepper (4 кроки воронки: персональні дані → бал → оффери → тести) + SummaryRow з 4 карток (профіль, бал, збережене, тести).
- Налаштування
/profile/settings — рольові вкладки, у т.ч. «Інтереси» → обрані спеціальності; Danger Zone (видалення акаунта).
- Бал
/profile/my-score → кабінетний калькулятор бала.
- Збережене
/profile/saved → Вступлісти.
- Історія
/profile/progress → прогрес і тести.
| Джерело | Ендпоінт / entity | Призначення |
|---|
| api-v2 | GET /users/me | профіль (entity baseUser, single-table inheritance user_type) |
| api-v2 | GET /users/me/overview | дані дашборда (OverviewResponse: stepper + summary + insight) |
| api-v2 | PATCH /users/profile | оновлення профілю (ім’я, місто, країна, рік, інтереси) |
| api-v2 | DELETE /users/:id | видалення акаунта (Danger Zone) |
| Репо | Шлях | Примітка |
|---|
abitly-frontend-v2 | src/app/[locale]/(profile)/** | роути 5 розділів |
abitly-frontend-v2 | src/components/layout/CabinetShell/constants/nav-config.ts | CABINET_NAV_ITEMS / BOTTOM_NAV_ITEMS |
abitly-frontend-v2 | src/components/pages/profile/pages/Overview/Overview.tsx | дашборд |
abitly-api-v2 | src/api/users/users.controller.ts | 8 ендпоінтів профілю |
- Уся фіча за логіном — авторизований UI не верифіковано браузером (тест-акаунт є, але headed-браузер крашиться; факти з коду).
InsightSlot (блок «шанси/інсайти ВНЗ» на дашборді) у V1 backend завжди повертає null — типи готові (ApplicantInsight/StudentInsight/TeacherInsight), фіча вимкнена (V2-vision).
- V2 per-userType
SummaryRow (StudentProfileSummary/…) — placeholder-типи, у V1 не використовуються (flat ProfileSummary для всіх ролей).
- Прив’язка бота НЕ є розділом кабінету — її немає в
CABINET_NAV_ITEMS; flow живе під /auth/telegram-connect (див. profile-bot-link).
| Дата | Подія | Джерело |
|---|
| 2026-06-14 | створено картку; факти з коду main + live-гейти | PR Wave 2 |