Реєстр підключення екранів
Тут видно, які екрани фронтенду вже читають дані з нашого бекенда, які читають частково, а які досі показують вендорні демо-дані. Сторінка не написана руками: її джерело — node scripts/wiring_registry.mjs, який виводить реєстр із дерева коду, тож редагувати цей звіт (чи згенерований JSON) не потрібно. Якщо реєстр у коміті розійшовся з кодом, CI падає на --check.
Зведення
Живий екран → мок-екран
Частина цих переходів свідома — цільовий екран просто ще не в хвилі; частина ж є нашим боргом: живий екран, чия кнопка веде на демо-екран. Тому список читається як детектор регресій, а не як статистика.
- /mentor/dashboard/mentor/assignments-hub
- /mentor/dashboard/mentor/media-center
- /mentor/students-overview/mentor/assignment-publish
- /my-learning/my-learning/trajectory
Домени
Вендорний дизайн обіцяє всі ці домени; там, де в колонці «з адаптером» нуль, наша модель даних не описує нічого — екрани домену тримаються тільки на моках.
| Домен | Фічі | З адаптером | Примітка |
|---|---|---|---|
| mob | 35 | 8 | |
| mentor | 33 | 21 | |
| student | 30 | 9 | |
| admin | 29 | 26 | |
| parent | 27 | 17 | |
| lesson | 13 | 4 | |
| referral | 13 | 0 | нема домену в моделі |
| assessment | 12 | 0 | нема домену в моделі |
| onboarding | 6 | 0 | нема домену в моделі |
| sys | 6 | 0 | нема домену в моделі |
| child | 5 | 0 | нема домену в моделі |
| auth | 4 | 1 | |
| discovery | 4 | 0 | нема домену в моделі |
| diagnostic | 1 | 1 | |
| live | 1 | 1 | |
| marketing | 1 | 0 | нема домену в моделі |
| profile | 1 | 0 | нема домену в моделі |
| system | 1 | 0 | нема домену в моделі |
Роути
Усі 259 роутів, згруповані за станом. «Прогалини» — маркери TODO(...) з коду фічі, зведені до унікальних; «мертві кнопки» — порожні обробники, знайдені статично.
| Роут | Стан | Фічі | Мертві кнопки | Прогалини |
|---|---|---|---|---|
| Частково підключено — 32 | ||||
| /account-menu | частково підключено | auth, student-account-menu | — | backend |
| /admin/account | частково підключено | admin-cab-account | — | backend |
| /admin/dashboard | частково підключено | admin-cab-dashboard | — | — |
| /ai-mentor | частково підключено | student-ai-mentor | — | backend |
| /ai-mentor/conversation | частково підключено | student-ai-mentor | — | backend |
| /ai-mentor/history | частково підключено | student-ai-mentor | — | backend |
| /dashboard | частково підключено | auth, dev-wiring, student-dashboard, live-entry | — | backend, progress-domain, schedule-domain |
| /learn/check | частково підключено | lesson-check, lesson-player | — | mastery-read |
| /learn/entry | частково підключено | shared, lesson-entry | — | lesson-outcomes, theme-breadcrumb, indicator-level |
| /learn/example | частково підключено | lesson-example, lesson-player | — | mastery-read |
| /learn/explanation | частково підключено | lesson-explanation, lesson-player | — | mastery-read |
| /learn/media | частково підключено | lesson-media, lesson-player | — | mastery-read |
| /learn/practice | частково підключено | lesson-practice, lesson-player | — | backend, mastery-read |
| /learn/result | частково підключено | lesson-player, lesson-result | — | mastery-read |
| /learn/summary | частково підключено | lesson-summary, lesson-player | — | lesson-summary-block, mastery-read |
| /lessons | частково підключено | student-lessons | 1 | lesson-description, lesson-progress-percent, lesson-difficulty, recommendation-domain |
| /m/parent/progress | частково підключено | mob-parent-progress, shared | — | — |
| /m/student/profile | частково підключено | mob-student-profile, shared | — | backend |
| /mentor/ai-generate-lesson | частково підключено | mentor-ai-generate-lesson | — | — |
| /mentor/block-settings | частково підключено | mentor-block-settings | 4 | backend |
| /mentor/create-lesson | частково підключено | mentor-create-lesson | 1 | ai-shell |
| /mentor/dashboard | частково підключено | auth, mentor-dashboard | — | backend |
| /mentor/drafts | частково підключено | mentor-drafts | 1 | backend |
| /mentor/lesson-builder | частково підключено | mentor-lesson-builder | — | backend |
| /mentor/lesson-library | частково підключено | mentor-lesson-library | — | backend, authoring-progress, no-updated-at, assignment-domain, attention-domain, format-map |
| /mentor/preview-as-student | частково підключено | mentor-preview-as-student | — | backend |
| /mentor/profile | частково підключено | mentor-profile | — | — |
| /mentor/schedule | частково підключено | mentor-schedule, live-entry | 3 | backend |
| /mentor/students-overview | частково підключено | dev-wiring, mentor-students-overview | — | — |
| /my-learning | частково підключено | dev-wiring, shared, student-my-learning | — | checkpoint-domain, needs-review-state, recommendation-domain, lesson-progress-percent |
| /parent/child-link | частково підключено | parent-cab-child-link | — | backend |
| /settings | частково підключено | auth, dev-wiring, student-profile-settings | 6 | backend |
| Підключено до бекенда — 100 | ||||
| /admin/analytics | підключено | admin-cab-analytics | — | — |
| /admin/analytics/detail | підключено | admin-cab-analytics-detail | — | — |
| /admin/analytics/export | підключено | admin-cab-export | — | — |
| /admin/classes | підключено | admin-cab-classes | — | — |
| /admin/courses | підключено | admin-cab-courses | — | — |
| /admin/courses/detail | підключено | admin-cab-program-detail | — | — |
| /admin/courses/lessons | підключено | admin-cab-lessons | — | — |
| /admin/courses/structure | підключено | admin-cab-structure | — | — |
| /admin/mentors | підключено | admin-cab-users | — | — |
| /admin/mentors/capacity | підключено | admin-cab-capacity | — | — |
| /admin/mentors/detail | підключено | admin-cab-mentor-detail | — | — |
| /admin/parents | підключено | admin-cab-users | — | — |
| /admin/parents/detail | підключено | admin-cab-parent-detail | — | — |
| /admin/parents/family | підключено | admin-cab-family | — | — |
| /admin/schedule | підключено | admin-cab-schedule | — | — |
| /admin/schedule/conflict | підключено | admin-cab-conflict | — | — |
| /admin/schedule/session | підключено | admin-cab-session | — | — |
| /admin/settings | підключено | admin-cab-settings | — | — |
| /admin/settings/general | підключено | admin-cab-settings-general | — | — |
| /admin/settings/integrations | підключено | admin-cab-settings-integrations | — | — |
| /admin/settings/security | підключено | admin-cab-settings-security | — | — |
| /admin/students | підключено | admin-cab-users | — | — |
| /admin/students/detail | підключено | admin-cab-student-detail | — | — |
| /admin/students/enrollment | підключено | admin-cab-enrollment | — | — |
| /admin/users | підключено | admin-cab-users | — | — |
| /admin/users/detail | підключено | admin-cab-user-detail | — | — |
| /admin/users/invite | підключено | admin-cab-invite | — | — |
| /admin/users/pending | підключено | admin-cab-activation-queue | — | — |
| /admin/users/roles | підключено | admin-cab-roles | — | — |
| /classes | підключено | student-classes | — | — |
| /diagnostic | підключено | diagnostic | — | — |
| /forgot-password | підключено | onboarding-forgot-password | — | — |
| /journal | підключено | student-grade-journal | — | — |
| /m/auth/login | підключено | dev-wiring, mob-auth-login | — | backend |
| /m/auth/recovery | підключено | mob-auth-recovery | — | backend |
| /m/auth/register | підключено | dev-wiring, mob-auth-register | — | backend |
| /m/invite | підключено | mob-invite-entry, mob-invite-invalid | — | — |
| /m/invite/invalid | підключено | mob-invite-invalid | — | — |
| /m/invite/success | підключено | mob-invite-success | — | — |
| /m/lesson/check | підключено | mob-lesson-player | — | — |
| /m/lesson/entry | підключено | mob-lesson-player | — | — |
| /m/lesson/example | підключено | mob-lesson-player | — | — |
| /m/lesson/explanation | підключено | mob-lesson-player | — | — |
| /m/lesson/media | підключено | mob-lesson-player | — | — |
| /m/lesson/practice | підключено | mob-lesson-player | — | — |
| /m/lesson/result | підключено | mob-lesson-player | — | — |
| /m/lesson/summary | підключено | mob-lesson-player | — | — |
| /m/student/home | підключено | mob-student-home, shared | — | — |
| /m/student/learn | підключено | mob-student-learn, shared | — | — |
| /m/student/schedule | підключено | mob-student-schedule, shared | — | — |
| /m/student/schedule/session | підключено | mob-student-session | — | — |
| /m/student/work | підключено | mob-student-work, shared | — | — |
| /mentor/ai-settings | підключено | mentor-ai-settings | — | — |
| /mentor/ai-settings/[generator]/[prompt_type] | підключено | mentor-ai-settings | — | — |
| /mentor/ai-settings/llm-requests | підключено | mentor-ai-settings | — | — |
| /mentor/class-analytics | підключено | mentor-class-analytics | — | — |
| /mentor/class-analytics/[classId] | підключено | mentor-class-analytics | — | — |
| /mentor/classes | підключено | mentor-class-roster | — | — |
| /mentor/course-tree | підключено | mentor-course-tree | — | — |
| /mentor/kg | підключено | mentor-kg | — | — |
| /mentor/lesson-picker | підключено | mentor-lesson-picker | — | — |
| /mentor/needs-attention | підключено | mentor-needs-attention | — | — |
| /mentor/review-queue | підключено | mentor-review-queue | — | — |
| /mentor/rubrics | підключено | mentor-rubrics | — | — |
| /mentor/skills | підключено | mentor-skill-library | — | — |
| /mentor/task-bank | підключено | mentor-task-bank | — | — |
| /parent/account-menu | підключено | parent-cab-account-menu | — | — |
| /parent/analytics | підключено | parent-cab-analytics | — | — |
| /parent/analytics/child | підключено | parent-cab-progress | — | — |
| /parent/child-switcher | підключено | parent-cab-child-switcher | — | — |
| /parent/dashboard | підключено | — | — | — |
| /parent/discovery | підключено | student-entry, parent-discovery | — | — |
| /parent/discovery/consent-plan | підключено | student-entry, parent-discovery-consent-plan | — | — |
| /parent/discovery/overview | підключено | parent-discovery-overview | — | — |
| /parent/discovery/portrait | підключено | parent-discovery-portrait | — | — |
| /parent/discovery/trajectory | підключено | student-entry, parent-discovery-trajectory | — | — |
| /parent/family | підключено | parent-cab-family | — | — |
| /parent/home | підключено | parent-cab-home | — | — |
| /parent/homework | підключено | parent-cab-homework | 2 | — |
| /parent/onboarding | підключено | — | — | — |
| /parent/onboarding/about-child | підключено | parent-onboarding-about-child | — | — |
| /parent/onboarding/consent-plan | підключено | student-entry, parent-onboarding-consent-plan | — | — |
| /parent/onboarding/invite-child | підключено | parent-onboarding-invite-child | — | — |
| /parent/onboarding/meet-curator | підключено | parent-onboarding-meet-curator | — | — |
| /parent/onboarding/trajectory | підключено | student-entry, parent-onboarding-trajectory | — | — |
| /parent/onboarding/waiting | підключено | parent-onboarding-waiting | — | — |
| /parent/profile | підключено | parent-cab-profile | — | — |
| /parent/profile/account | підключено | parent-cab-account | — | — |
| /parent/reports | підключено | parent-cab-reports | — | — |
| /parent/reports/detail | підключено | parent-cab-report-detail | — | — |
| /parent/schedule | підключено | parent-cab-schedule | — | — |
| /parent/schedule/session | підключено | parent-cab-schedule-session | — | — |
| /parent/states/empty | підключено | parent-cab-states | — | — |
| /parent/states/error | підключено | parent-cab-states | — | — |
| /parent/states/loading | підключено | parent-cab-states | — | — |
| /reset-password | підключено | auth | — | backend |
| /schedule | підключено | student-schedule | — | — |
| /schedule/session | підключено | student-session-detail | — | — |
| /sign-in | підключено | auth, dev-wiring | — | backend |
| /sign-up | підключено | auth | — | backend |
| Демо-екран — 97 | ||||
| /admin/states/access-denied | демо-екран | admin-cab-states | — | — |
| /admin/states/empty | демо-екран | admin-cab-states | — | — |
| /admin/states/error | демо-екран | admin-cab-states | — | — |
| /admin/states/loading | демо-екран | admin-cab-states | — | — |
| /admin/states/no-results | демо-екран | admin-cab-states | — | — |
| /ai-mentor/context | демо-екран | student-ai-context | 5 | backend |
| /assessment/briefing | демо-екран | shared, assessment-briefing | — | — |
| /assessment/entry | демо-екран | shared, assessment-entry | — | — |
| /assessment/history | демо-екран | assessment-history | — | — |
| /assessment/multi-step | демо-екран | assessment-multi-step | 4 | backend |
| /assessment/open-answer | демо-екран | assessment-open-answer | 3 | — |
| /assessment/result-instant | демо-екран | assessment-result-instant | 1 | — |
| /assessment/result-reviewed | демо-екран | assessment-result-reviewed | — | backend |
| /assessment/review | демо-екран | assessment-review | 3 | — |
| /assessment/single-choice | демо-екран | assessment-single-choice | 2 | — |
| /assessment/waiting | демо-екран | assessment-waiting | — | backend |
| /child/onboarding | демо-екран | — | — | — |
| /child/onboarding/dashboard | демо-екран | shared, child-onboarding-trial-dashboard | — | — |
| /child/onboarding/interests | демо-екран | child-onboarding-interests | — | backend |
| /child/onboarding/knowledge-check | демо-екран | child-onboarding-knowledge-check | — | backend |
| /child/onboarding/share-parents | демо-екран | child-onboarding-share-parents | — | backend |
| /child/onboarding/starting-point | демо-екран | child-onboarding-starting-point | — | backend |
| /discover | демо-екран | discovery-test-landing | — | backend |
| /discover/result | демо-екран | discovery-portrait | — | backend |
| /discover/save | демо-екран | discovery-save-bridge | — | backend |
| /discover/test | демо-екран | discovery-diagnostic | — | backend |
| /homework | демо-екран | dev-wiring, shared, student-homework | 1 | backend |
| /homework/detail | демо-екран | student-homework-detail | 5 | backend |
| /homework/review | демо-екран | student-homework-review | 4 | backend |
| /learn/ai-tutor | демо-екран | lesson-ai-tutor | — | — |
| /learn/focus | демо-екран | lesson-focus | — | — |
| /learn/needs-help | демо-екран | lesson-needs-help | — | — |
| /learn/states/ai-bubble | демо-екран | lesson-states | — | backend |
| /learn/states/ai-hint | демо-екран | lesson-states | — | backend |
| /learn/states/assessment-retry | демо-екран | lesson-states | — | backend |
| /learn/states/autosave | демо-екран | lesson-states | — | backend |
| /learn/states/code-run | демо-екран | lesson-states | — | backend |
| /learn/states/exit-confirm | демо-екран | lesson-states | — | backend |
| /learn/states/needs-help-sent | демо-екран | lesson-states | — | backend |
| /learn/states/practice-retry | демо-екран | lesson-states | — | backend |
| /lessons/locked | демо-екран | student-lesson-locked | 2 | backend |
| /map | демо-екран | — | — | — |
| /mentor/analytics-hub | демо-екран | mentor-analytics-hub | 4 | backend |
| /mentor/assessments/detail | демо-екран | assessment-mentor-detail | 4 | — |
| /mentor/assessments/queue | демо-екран | assessment-mentor-queue | 1 | backend |
| /mentor/assignment-publish | демо-екран | mentor-assignment-publish | 1 | backend |
| /mentor/assignments-hub | демо-екран | mentor-assignments-hub | 1 | backend |
| /mentor/block-picker | демо-екран | mentor-block-picker | — | — |
| /mentor/communication-center | демо-екран | mentor-communication-center | 5 | backend |
| /mentor/instruction | демо-екран | mentor-instruction | — | — |
| /mentor/intervention-notes | демо-екран | mentor-intervention-notes | 1 | backend |
| /mentor/media-center | демо-екран | dev-wiring, mentor-media-center, shared | 9 | backend |
| /mentor/progress-review | демо-екран | mentor-progress-review | 2 | backend |
| /mentor/student-detail | демо-екран | mentor-student-detail | — | backend |
| /messages | демо-екран | dev-wiring, shared, student-messages | — | backend |
| /messages/settings | демо-екран | student-message-settings | — | backend |
| /my-learning/trajectory | демо-екран | student-subject-trajectory | 6 | backend |
| /onboarding | демо-екран | onboarding | — | — |
| /onboarding/auth | демо-екран | onboarding-entry | — | backend |
| /onboarding/invitation | демо-екран | onboarding-invitation | — | backend |
| /onboarding/register | демо-екран | onboarding-register, dev-wiring | — | backend |
| /portfolio | демо-екран | dev-wiring, shared, student-portfolio | — | — |
| /portfolio/detail | демо-екран | student-portfolio-detail | — | backend |
| /portrait | демо-екран | dev-wiring, shared, student-portrait | — | — |
| /portrait/trajectory | демо-екран | student-portrait-trajectory | — | — |
| /privacy | демо-екран | — | — | — |
| /projects | демо-екран | dev-wiring, shared, student-projects | 2 | backend |
| /projects/detail | демо-екран | student-project-detail | — | backend |
| /referral/confirm | демо-екран | referral-confirm | — | backend |
| /referral/conflict | демо-екран | referral-conflict | — | backend |
| /referral/context | демо-екран | referral-context | — | backend |
| /referral/invalid | демо-екран | referral-invalid | — | backend |
| /referral/invite | демо-екран | referral-invite | — | backend |
| /referral/joint-setup | демо-екран | referral-joint-setup | — | backend |
| /referral/link-existing | демо-екран | referral-link-existing | — | backend |
| /referral/login | демо-екран | dev-wiring, referral-login | — | backend |
| /referral/multi-child | демо-екран | referral-multi-child | — | backend |
| /referral/resolving | демо-екран | referral-resolving | — | backend |
| /referral/signup | демо-екран | dev-wiring, referral-signup | 1 | backend |
| /referral/success | демо-екран | referral-success | — | backend |
| /referral/wrong-role | демо-екран | referral-wrong-role | — | backend |
| /staff/admin/login | демо-екран | auth-tech-admin-login | — | backend |
| /staff/mentor/login | демо-екран | auth-tech-mentor-login | — | backend |
| /staff/recovery | демо-екран | auth-tech-recovery | — | backend |
| /student-states/display-mode | демо-екран | shared, student-states | — | — |
| /student-states/sidebar | демо-екран | shared, student-states | — | — |
| /student-states/toasts | демо-екран | shared, student-states | — | — |
| /system/access | демо-екран | sys-access | 1 | — |
| /system/empty | демо-екран | sys-empty | — | — |
| /system/error | демо-екран | sys-error | — | backend |
| /system/handoff | демо-екран | sys-handoff | — | — |
| /system/loading | демо-екран | sys-loading | — | backend |
| /system/mob-handoff | демо-екран | system-mob-handoff | — | — |
| /system/route-map | демо-екран | sys-route-map | — | — |
| /terms | демо-екран | — | — | — |
| /trial | демо-екран | student-trial | — | backend |
| /trial/ending | демо-екран | student-trial-ending | — | backend |
| Поза розміткою — 30 | ||||
| / | поза розміткою | student-entry | — | публічний маркетинговий екран |
| /dev/changelog | поза розміткою | — | — | службова сторінка — не розмічає себе |
| /dev/version | поза розміткою | dev-version | — | службова сторінка — не розмічає себе |
| /dev/wiring | поза розміткою | dev-wiring | — | службова сторінка — не розмічає себе |
| /m/auth/role | поза розміткою | mob-auth-role | — | мобільний шар поза хвилеюbackend |
| /m/auth/setup | поза розміткою | mob-auth-setup | — | мобільний шар поза хвилеюbackend |
| /m/invite/context | поза розміткою | mob-invite-context | — | мобільний шар поза хвилею |
| /m/invite/joint-setup | поза розміткою | mob-invite-joint | — | мобільний шар поза хвилеюbackend |
| /m/invite/link | поза розміткою | mob-invite-link | — | мобільний шар поза хвилеюbackend |
| /m/lesson/ai-tutor | поза розміткою | mob-lesson-ai-tutor | — | мобільний шар поза хвилеюbackend |
| /m/parent/ai | поза розміткою | mob-parent-ai | — | мобільний шар поза хвилеюbackend |
| /m/parent/ai/chat | поза розміткою | mob-parent-ai | — | мобільний шар поза хвилеюbackend |
| /m/parent/communication | поза розміткою | mob-parent-communication, shared | — | мобільний шар поза хвилею |
| /m/parent/family | поза розміткою | mob-parent-family | — | мобільний шар поза хвилею |
| /m/parent/home | поза розміткою | mob-parent-home, shared | — | мобільний шар поза хвилею |
| /m/parent/schedule | поза розміткою | mob-parent-schedule, shared | — | мобільний шар поза хвилеюbackend |
| /m/student/ai-mentor | поза розміткою | mob-student-ai | — | мобільний шар поза хвилеюbackend |
| /m/student/learn/locked | поза розміткою | mob-student-locked, shared | — | мобільний шар поза хвилеюbackend |
| /m/student/learn/trajectory | поза розміткою | mob-student-trajectory, shared | — | мобільний шар поза хвилею |
| /m/student/messages | поза розміткою | mob-student-messages | — | мобільний шар поза хвилеюbackend |
| /m/student/messages/chat | поза розміткою | mob-student-messages | — | мобільний шар поза хвилеюbackend |
| /m/student/messages/empty | поза розміткою | mob-student-messages | — | мобільний шар поза хвилеюbackend |
| /m/student/messages/settings | поза розміткою | mob-student-message-settings | — | мобільний шар поза хвилеюbackend |
| /m/student/messages/system | поза розміткою | mob-student-messages | — | мобільний шар поза хвилеюbackend |
| /m/student/profile/item | поза розміткою | mob-student-portfolio-item | — | мобільний шар поза хвилеюbackend |
| /m/student/work/homework | поза розміткою | mob-student-homework | — | мобільний шар поза хвилею |
| /m/student/work/project | поза розміткою | mob-student-project | — | мобільний шар поза хвилеюbackend |
| /m/student/work/review | поза розміткою | mob-student-homework-review | — | мобільний шар поза хвилеюbackend |
| /m/welcome | поза розміткою | mob-welcome | — | мобільний шар поза хвилею |
| /roadmap | поза розміткою | dev-wiring | — | службова сторінка — не розмічає себе |