Реєстр підключення екранів

Тут видно, які екрани фронтенду вже читають дані з нашого бекенда, які читають частково, а які досі показують вендорні демо-дані. Сторінка не написана руками: її джерело — node scripts/wiring_registry.mjs, який виводить реєстр із дерева коду, тож редагувати цей звіт (чи згенерований JSON) не потрібно. Якщо реєстр у коміті розійшовся з кодом, CI падає на --check.

Реєстр описує стан коду. З якого коміту зібрано те, що ви зараз бачите, — на сторінці /dev/version: коміти обох шарів, час збірки, стан БД, схеми й графа.

Зведення

259роутів у дереві
100підключено
32частково підключено
97демо-екранів
30поза розміткою
88 / 222фічі з адаптером
115мок-модулів
100мертвих кнопок

Живий екран → мок-екран

Частина цих переходів свідома — цільовий екран просто ще не в хвилі; частина ж є нашим боргом: живий екран, чия кнопка веде на демо-екран. Тому список читається як детектор регресій, а не як статистика.

Домени

Вендорний дизайн обіцяє всі ці домени; там, де в колонці «з адаптером» нуль, наша модель даних не описує нічого — екрани домену тримаються тільки на моках.

ДоменФічіЗ адаптеромПримітка
mob358
mentor3321
student309
admin2926
parent2717
lesson134
referral130нема домену в моделі
assessment120нема домену в моделі
onboarding60нема домену в моделі
sys60нема домену в моделі
child50нема домену в моделі
auth41
discovery40нема домену в моделі
diagnostic11
live11
marketing10нема домену в моделі
profile10нема домену в моделі
system10нема домену в моделі

Роути

Усі 259 роутів, згруповані за станом. «Прогалини» — маркери TODO(...) з коду фічі, зведені до унікальних; «мертві кнопки» — порожні обробники, знайдені статично.

РоутСтанФічіМертві кнопкиПрогалини
Частково підключено32
/account-menuчастково підключеноauth, student-account-menubackend
/admin/accountчастково підключеноadmin-cab-accountbackend
/admin/dashboardчастково підключеноadmin-cab-dashboard
/ai-mentorчастково підключеноstudent-ai-mentorbackend
/ai-mentor/conversationчастково підключеноstudent-ai-mentorbackend
/ai-mentor/historyчастково підключеноstudent-ai-mentorbackend
/dashboardчастково підключеноauth, dev-wiring, student-dashboard, live-entrybackend, progress-domain, schedule-domain
/learn/checkчастково підключеноlesson-check, lesson-playermastery-read
/learn/entryчастково підключеноshared, lesson-entrylesson-outcomes, theme-breadcrumb, indicator-level
/learn/exampleчастково підключеноlesson-example, lesson-playermastery-read
/learn/explanationчастково підключеноlesson-explanation, lesson-playermastery-read
/learn/mediaчастково підключеноlesson-media, lesson-playermastery-read
/learn/practiceчастково підключеноlesson-practice, lesson-playerbackend, mastery-read
/learn/resultчастково підключеноlesson-player, lesson-resultmastery-read
/learn/summaryчастково підключеноlesson-summary, lesson-playerlesson-summary-block, mastery-read
/lessonsчастково підключеноstudent-lessons1lesson-description, lesson-progress-percent, lesson-difficulty, recommendation-domain
/m/parent/progressчастково підключеноmob-parent-progress, shared
/m/student/profileчастково підключеноmob-student-profile, sharedbackend
/mentor/ai-generate-lessonчастково підключеноmentor-ai-generate-lesson
/mentor/block-settingsчастково підключеноmentor-block-settings4backend
/mentor/create-lessonчастково підключеноmentor-create-lesson1ai-shell
/mentor/dashboardчастково підключеноauth, mentor-dashboardbackend
/mentor/draftsчастково підключеноmentor-drafts1backend
/mentor/lesson-builderчастково підключеноmentor-lesson-builderbackend
/mentor/lesson-libraryчастково підключеноmentor-lesson-librarybackend, authoring-progress, no-updated-at, assignment-domain, attention-domain, format-map
/mentor/preview-as-studentчастково підключеноmentor-preview-as-studentbackend
/mentor/profileчастково підключеноmentor-profile
/mentor/scheduleчастково підключеноmentor-schedule, live-entry3backend
/mentor/students-overviewчастково підключеноdev-wiring, mentor-students-overview
/my-learningчастково підключеноdev-wiring, shared, student-my-learningcheckpoint-domain, needs-review-state, recommendation-domain, lesson-progress-percent
/parent/child-linkчастково підключеноparent-cab-child-linkbackend
/settingsчастково підключеноauth, dev-wiring, student-profile-settings6backend
Підключено до бекенда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-loginbackend
/m/auth/recoveryпідключеноmob-auth-recoverybackend
/m/auth/registerпідключеноdev-wiring, mob-auth-registerbackend
/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-homework2
/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підключеноauthbackend
/scheduleпідключеноstudent-schedule
/schedule/sessionпідключеноstudent-session-detail
/sign-inпідключеноauth, dev-wiringbackend
/sign-upпідключеноauthbackend
Демо-екран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-context5backend
/assessment/briefingдемо-екранshared, assessment-briefing
/assessment/entryдемо-екранshared, assessment-entry
/assessment/historyдемо-екранassessment-history
/assessment/multi-stepдемо-екранassessment-multi-step4backend
/assessment/open-answerдемо-екранassessment-open-answer3
/assessment/result-instantдемо-екранassessment-result-instant1
/assessment/result-reviewedдемо-екранassessment-result-reviewedbackend
/assessment/reviewдемо-екранassessment-review3
/assessment/single-choiceдемо-екранassessment-single-choice2
/assessment/waitingдемо-екранassessment-waitingbackend
/child/onboardingдемо-екран
/child/onboarding/dashboardдемо-екранshared, child-onboarding-trial-dashboard
/child/onboarding/interestsдемо-екранchild-onboarding-interestsbackend
/child/onboarding/knowledge-checkдемо-екранchild-onboarding-knowledge-checkbackend
/child/onboarding/share-parentsдемо-екранchild-onboarding-share-parentsbackend
/child/onboarding/starting-pointдемо-екранchild-onboarding-starting-pointbackend
/discoverдемо-екранdiscovery-test-landingbackend
/discover/resultдемо-екранdiscovery-portraitbackend
/discover/saveдемо-екранdiscovery-save-bridgebackend
/discover/testдемо-екранdiscovery-diagnosticbackend
/homeworkдемо-екранdev-wiring, shared, student-homework1backend
/homework/detailдемо-екранstudent-homework-detail5backend
/homework/reviewдемо-екранstudent-homework-review4backend
/learn/ai-tutorдемо-екранlesson-ai-tutor
/learn/focusдемо-екранlesson-focus
/learn/needs-helpдемо-екранlesson-needs-help
/learn/states/ai-bubbleдемо-екранlesson-statesbackend
/learn/states/ai-hintдемо-екранlesson-statesbackend
/learn/states/assessment-retryдемо-екранlesson-statesbackend
/learn/states/autosaveдемо-екранlesson-statesbackend
/learn/states/code-runдемо-екранlesson-statesbackend
/learn/states/exit-confirmдемо-екранlesson-statesbackend
/learn/states/needs-help-sentдемо-екранlesson-statesbackend
/learn/states/practice-retryдемо-екранlesson-statesbackend
/lessons/lockedдемо-екранstudent-lesson-locked2backend
/mapдемо-екран
/mentor/analytics-hubдемо-екранmentor-analytics-hub4backend
/mentor/assessments/detailдемо-екранassessment-mentor-detail4
/mentor/assessments/queueдемо-екранassessment-mentor-queue1backend
/mentor/assignment-publishдемо-екранmentor-assignment-publish1backend
/mentor/assignments-hubдемо-екранmentor-assignments-hub1backend
/mentor/block-pickerдемо-екранmentor-block-picker
/mentor/communication-centerдемо-екранmentor-communication-center5backend
/mentor/instructionдемо-екранmentor-instruction
/mentor/intervention-notesдемо-екранmentor-intervention-notes1backend
/mentor/media-centerдемо-екранdev-wiring, mentor-media-center, shared9backend
/mentor/progress-reviewдемо-екранmentor-progress-review2backend
/mentor/student-detailдемо-екранmentor-student-detailbackend
/messagesдемо-екранdev-wiring, shared, student-messagesbackend
/messages/settingsдемо-екранstudent-message-settingsbackend
/my-learning/trajectoryдемо-екранstudent-subject-trajectory6backend
/onboardingдемо-екранonboarding
/onboarding/authдемо-екранonboarding-entrybackend
/onboarding/invitationдемо-екранonboarding-invitationbackend
/onboarding/registerдемо-екранonboarding-register, dev-wiringbackend
/portfolioдемо-екранdev-wiring, shared, student-portfolio
/portfolio/detailдемо-екранstudent-portfolio-detailbackend
/portraitдемо-екранdev-wiring, shared, student-portrait
/portrait/trajectoryдемо-екранstudent-portrait-trajectory
/privacyдемо-екран
/projectsдемо-екранdev-wiring, shared, student-projects2backend
/projects/detailдемо-екранstudent-project-detailbackend
/referral/confirmдемо-екранreferral-confirmbackend
/referral/conflictдемо-екранreferral-conflictbackend
/referral/contextдемо-екранreferral-contextbackend
/referral/invalidдемо-екранreferral-invalidbackend
/referral/inviteдемо-екранreferral-invitebackend
/referral/joint-setupдемо-екранreferral-joint-setupbackend
/referral/link-existingдемо-екранreferral-link-existingbackend
/referral/loginдемо-екранdev-wiring, referral-loginbackend
/referral/multi-childдемо-екранreferral-multi-childbackend
/referral/resolvingдемо-екранreferral-resolvingbackend
/referral/signupдемо-екранdev-wiring, referral-signup1backend
/referral/successдемо-екранreferral-successbackend
/referral/wrong-roleдемо-екранreferral-wrong-rolebackend
/staff/admin/loginдемо-екранauth-tech-admin-loginbackend
/staff/mentor/loginдемо-екранauth-tech-mentor-loginbackend
/staff/recoveryдемо-екранauth-tech-recoverybackend
/student-states/display-modeдемо-екранshared, student-states
/student-states/sidebarдемо-екранshared, student-states
/student-states/toastsдемо-екранshared, student-states
/system/accessдемо-екранsys-access1
/system/emptyдемо-екранsys-empty
/system/errorдемо-екранsys-errorbackend
/system/handoffдемо-екранsys-handoff
/system/loadingдемо-екранsys-loadingbackend
/system/mob-handoffдемо-екранsystem-mob-handoff
/system/route-mapдемо-екранsys-route-map
/termsдемо-екран
/trialдемо-екранstudent-trialbackend
/trial/endingдемо-екранstudent-trial-endingbackend
Поза розміткою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службова сторінка — не розмічає себе