Кожен екран і кожен значущий блок платформи: що він робить, чи працює зараз, чого бракує і скільки коштує доробка. Складено читанням коду двох репозиторіїв, звіркою фронтенду з сервером. 125 блоків.
Безпека, критичні дефекти, прибрати макети з очей користувача. Приблизно 3–4 тижні роботи одного розробника.
Мінімум плюс усі функціональні діри, крім платіжної системи. Оплати лишаються ручними. Близько 2 місяців.
Разом із наскрізною онлайн-оплатою і майстром для абітурієнта. 2,5–4 місяці роботи одного розробника.
До вересня лишається близько шести тижнів. Одна людина за цей час закриває мінімум для здачі — і це реалістично. Повний обсяг з онлайн-оплатою за цей строк не закривається навіть теоретично. Тобто рішення не «встигнемо чи ні», а що саме входить у здачу: або віддаємо платформу з ручними оплатами і чесно це фіксуємо, або переносимо строк, або додаємо людей.
| Блок | Маршрут | Хто бачить | Що робить | Стан | Чого бракує | Годин |
|---|---|---|---|---|---|---|
| Онлайн-урок — головний екран | /lessons/{id} | студент, викладач, адмін | Живий урок: ліворуч матеріали й вкладки, праворуч відеодзвінок, знизу панель дій. | працює | — | — |
| Відеодзвінок (Jitsi) | у складі уроку | усі учасники | Вбудований відеозв'язок на власному сервері: камера, мікрофон, демонстрація екрана, кімнати для підгруп. | працює | Адреса відеосервера вписана в код і вказує на тестовий інстанс — перед продом винести в налаштування. | 2–4 |
| Кнопка «Закрити всі кімнати» | у складі відео | викладач | Одним кліком повертає всіх студентів із міні-кімнат у головну. | працює | — | — |
| Демонстрація екрана | у складі відео | викладач | Під час показу екрана відеовікно ховається в банер «Ви показуєте екран» з кнопкою зупинки. | працює | — | — |
| Зміна ширини відеопанелі | у складі уроку | усі | Панель відео розтягується мишкою від чверті до двох третин екрана. | працює | — | — |
| Таймер уроку | у складі відео | усі | Зворотний відлік до кінця заняття. | частково | Коли час вийшов — не відбувається нічого. Немає попередження за 5 хвилин і автозавершення. Значення рахується один раз при відкритті. | 3–6 |
| Вкладка «Теми уроку» | у складі уроку | усі | Усі частини заняття списком: теорія, відео, ідіоми, слова, шаблони речень, розмовна тема, домашнє. Окремо — непройдене з минулих уроків. | працює | — | — |
| Відмітки «Пройдено» біля блоків | у складі уроку | викладач | Мали б відмічати, які частини заняття пройдено. | мертве | Чекбокси не з'являються взагалі — умова їх появи спирається на параметр адреси, якого на сторінці уроку немає. Навіть якби з'явились, стан жив би лише в пам'яті вкладки: ні збереження, ні поля в базі. | 8–14 |
| Картки слів із вимовою | у складі уроку | усі | Слово, переклад, картинка, визначення, приклад, дві транскрипції і кнопки озвучення. | працює | — | — |
| Трансляція звуку учням | у складі уроку | викладач → студенти | Викладач вмикає озвучення — і той самий файл програється у браузері кожного учня, без ехо та втрат. | частково | Працює лише для карток слів. У презентації слайдів звук грає локально — учні нічого не чують. Команда «зупинити» не надсилається взагалі. | 5–9 |
| Картки шаблонів речень, ідіом, малих слів | у складі уроку | усі | Викладач бачить додатковий блок «для викладача», студент — теорію для себе. | працює | — | — |
| Відеоматеріали уроку | у складі уроку | усі | Плеєр із відео заняття та кадром-прев'ю. | працює | — | — |
| Коментарі викладача до матеріалів | у складі уроку | викладач пише, усі бачать | Коментар до конкретного слова, ідіоми чи цілого розділу зберігається і показується плашкою. | частково | Немає видалення коментаря. Вікно не перекладене. На сервері помилка пошуку існуючої нотатки — коментар до розділу може перезаписати чужий. | 4–7 |
| Вкладка «Студенти» на уроці | у складі уроку | викладач | Список учнів із позначкою «онлайн» і випадачкою статусу відвідування, що зберігається одразу. | Позначка «онлайн» рахується за ідентифікатором візиту замість студента — підсвічує не тих. Показник часу на уроці закоментований, хоча сервер його віддає. | 3–5 | |
| Нотатки на уроці | у складі уроку | усі | Особистий блокнот із форматуванням, нотатки приватні. | працює | — | — |
| Чат уроку | у складі уроку | усі | Чат групи в реальному часі; викладач може перемкнутись на приватну розмову з окремим студентом. | працює | — | — |
| Чат-шторка на телефоні | у складі уроку | усі | Той самий чат висувною панеллю, щоб не займати екран на мобільному. | працює | — | — |
| Показ слайдів | у складі уроку | викладач | Повноекранний показ шаблонів речень, ідіом, домашнього завдання, розмовної теми з перегортанням. | працює | — | — |
| Конструктор речень | у складі слайдів | викладач демонструє | Слова перетягуються в пропуски речення. | частково | Це лише демонстрація: правильність не перевіряється, результат не зберігається, студент зі свого пристрою нічого не перетягує — бачить тільки через показ екрана. | 12–20 |
| Презентація слів | у складі уроку | викладач | Повноекранна презентація словникових блоків із вкладками на кожну групу слів. | працює | — | — |
| Показ слайда слова | у складі презентації | викладач | Клік поступово відкриває слово → переклад → визначення → приклад → транскрипції, далі гортає далі. | частково | Звук транскрипції чує лише той, хто клацнув. Заголовки блоків захардкоджені українською. | 4–7 |
| Вкладка «Повторення» | у складі презентації | викладач | Суцільний список усіх слів заняття для швидкого повторення. | працює | — | — |
| Малювання поверх слайда | у складі презентації | викладач | Олівець із кольорами, гумка, скасувати-повернути, текстові наліпки, які можна пересувати. | працює | Анотації локальні: учні бачать їх лише через показ екрана, при закритті все стирається. | — |
| Пам'ятки «Правила» | у складі уроку | усі | Дві статичні картинки-підказки для роботи зі словами і шаблонами. | працює | — | — |
| Завершення уроку | у складі уроку | викладач | Вікно, де можна відмітити непройдені теми для переносу на наступний урок і оновити домашнє, після чого урок закривається. | працює | — | — |
| Вихід студента з уроку | у складі уроку | студент | Перехоплює всі посилання й кнопку «назад», питає підтвердження і фіксує вихід на сервері. | працює | — | — |
| Перехід у режим корекцій | у складі уроку | викладач | На останньому уроці циклу викладач переводить заняття в режим перевірки корекцій; студенти отримують сповіщення наживо. | працює | — | — |
| День корекцій — екран викладача | режим корекції | викладач | Список студентів, їхні виправлення, оцінювання, коментарі, зміна статусу; відповіді прилітають наживо. | працює | — | — |
| День корекцій — екран студента | режим корекції | студент | Студент бачить помилки, вписує виправлення, відправляє на перевірку і бачить статус. | частково | Кілька написів захардкоджені українською, зокрема тестовий рядок «Завдання Номер 4» підставляється замість реального номера. | 2–4 |
| Список занять | /lessons | усі | Розклад по днях із вкладками поточні/майбутні/минулі, фільтром, копіюванням посилання і входом в урок. | працює | — | — |
| Підготовка до уроку | /lessons/preview/… | викладач | Перед стартом показує всі матеріали і список студентів; кнопка «Почати урок» створює кімнату. | частково | Перевірку часу на кнопці «Почати урок» закоментовано — урок можна стартувати будь-коли й будь-кому, у кого є посилання. На сервері теж немає перевірки ролі. | 4–8 |
| Офлайн-урок | /lessons/offline/{id} | викладач | Той самий урок без відео: матеріали, відвідуваність, нотатки, оцінки, коментарі. | частково | Немає чату й трансляції звуку. Підвкладки «Нотатки» та «Оцінки» неробочі. | 8–14 |
| Табель відвідуваності офлайн | ?preview=students | викладач | Таблиця учнів із присутністю, статусом домашки, часом на уроці й коментарем. | працює | — | — |
| Нотатки на офлайн-уроці | ?preview=notes | викладач | Має показувати нотатку до заняття. | частково | Компонент викликається без даних — завжди порожній. На екрані результатів той самий блок викликається правильно. | 0,5–1 |
| Вкладка «Оцінки» | ?preview=marks | студент, викладач | Має показувати бали студента за частинами іспиту. | макет | Повністю намальована заглушка: 5 частин і 3 завдання генеруються циклом, бал жорстко вписаний «24,75 / 25», жодного запиту до сервера. Це бачить і студент. | 12–20 |
| Підсумок уроку | /lessons/summary/{id} | викладач | Викладач лишає коментар для студентів і окремо для адміністрації. | працює | — | — |
| Результати проведеного уроку | /lessons/results/… | усі | Матеріали заняття в режимі читання плюс студенти, нотатки, коментарі, оцінки. | частково | Вкладка «Оцінки» — заглушка. У режимі читання не всюди приховані кнопки додавання коментаря. | 4–8 |
| Відпрацювання пропущеного | /lessons/working-out/{id} | студент | Студент самостійно проходить матеріали пропущеного заняття і тисне «Вважати пройденим». | частково | Нотатка зберігається лише якщо студент реально щось надрукував. Немає жодної перевірки, що матеріали справді переглянуто. | 3–6 |
| Конструктор уроку (10 кроків) | /lesson | адмін, методист | Майстер створення заняття: основне, теорія, відеослова, ідіоми, слова, домашнє або іспит, шаблони, розмовна тема, вправи. | працює | — | — |
| Наповнення дня корекцій | /lessons/correction/{id} | викладач | Той самий конструктор, прив'язаний до дати в календарі. | працює | — | — |
| Залишки Zoom у застосунку | — | — | Старий код відеозв'язку до переходу на Jitsi. | мертве | Два файли не використовуються, три Zoom-пакети висять у залежностях (десятки мегабайт у збірці), папка досі зветься «zoom-part». | 2–4 |
| Залишки Zoom на сервері | — | — | Старі Zoom-запити в API. | мертве | Обидва запити без перевірки авторизації — доступні неавторизованому користувачу, і в одному стоїть налагоджувальний виклик, що обриває процес. | 1–3 |
| Картка «слова з відео» | — | — | Дубль картки слова для відеоблоку. | мертве | Компонент не використовується ніде, всередині порожній блок замість опису. | 0,5 |
| Заготовка таблиці відвідуваності | — | — | Порожня заготовка компонента. | мертве | Повертає порожній блок, експортується, ніде не використовується. | 0,5 |
| Блок | Маршрут | Хто бачить | Що робить | Стан | Чого бракує | Годин |
|---|---|---|---|---|---|---|
| Мої завдання | /assignments | студент | Картки домашок та іспитів із фільтром за статусом і мовою, з посторінковим гортанням. | працює | — | — |
| Список груп | /assignments | викладач, адмін | Замість домашок викладач бачить свої групи за рівнями; клік веде в журнал. | працює | — | — |
| Фільтри над списком завдань | /assignments | усі | Панель фільтрів: тип навчання, рівень, форма, мова, філія. | частково | У студента жоден фільтр не застосовується до запиту, а вибір мови ще й ховає вкладки мов. У викладача не передаються рівень і філія. | 4–8 |
| Журнал завдань групи | /assignments/group/{id} | викладач, адмін | Таблиця «студенти × уроки»: статус домашки, відсоток, дата, відвідуваність. | частково | Немає гортання по студентах і уроках, немає легенди статусів — порожні клітинки без пояснення. | 6–10 |
| Рядок «Середня оцінка» в журналі | /assignments/group/{id} | викладач, адмін | Має показувати середню оцінку по кожному уроку. | макет | Замість значень стоїть текст «Н/Д 1», «Н/Д 2»… На сервері поля середньої оцінки взагалі немає. | 10–16 |
| Ручна зміна статусу домашки | /assignments/group/{id} | викладач | Випадайка прямо в клітинці журналу для офлайн-студента. | працює | — | — |
| Оцінка за офлайн-іспит | /assignments/group/{id} | викладач | Модалка з усною та письмовою частинами, сума рахується автоматично. | працює | — | — |
| Сторінка домашнього завдання | /assignments/homework/{id} | студент, викладач | Головний екран домашки: завдання, відповіді, корекції, чат, кнопка здачі. | працює | — | — |
| Заповнення відповідей | у складі домашки | студент | Текстовий редактор, набір полів або поля під фото. | працює | — | — |
| Автозбереження чернетки | у складі домашки | студент | Кожні пів секунди зберігає введене і відновлює при поверненні. | частково | Чернетка живе лише в браузері — з іншого пристрою її не видно. Індикатор «збережено» закоментований, тому студент не бачить, що робота збереглась. | 8–14 |
| Здача домашнього завдання | у складі домашки | студент | Кнопка «Здати» з підтвердженням, робота йде на перевірку. | частково | Кнопка показується і тоді, коли здавати вже не можна — студент отримує технічну помилку замість зрозумілого пояснення. | 3–5 |
| Перевірка домашки викладачем | у складі домашки | викладач | Коментар і вибір результату: виконано / доопрацювати / корекція, з подвійним підтвердженням. | працює | — | — |
| Правки прямо у відповіді | у складі домашки | викладач | Викладач виділяє шматок тексту і ставить правку, закреслення чи коментар просто в тексті. | працює | — | — |
| Спливне вікно коментаря | у складі домашки | студент, викладач | Клік по підсвіченому фрагменту показує коментар; викладач може його видалити. | працює | — | — |
| Бали за кожну відповідь у домашці | у складі домашки | викладач | Мало б дозволяти ставити бал за кожну відповідь, як в іспиті. | мертве | Інтерфейсу немає взагалі. Через це при завершенні перевірки сервер записує кожному завданню повний бал — цифри успішності в базі несправжні. | 12–20 |
| Створення корекції | у складі домашки | викладач | Редактор, де викладач формулює завдання на переробку; зроблені в тексті правки підтягуються самі. | працює | — | — |
| Ланцюжок корекцій | у складі домашки | студент, викладач | «Пінг-понг»: кожен раунд — завдання викладача і відповідь студента; чия черга, визначає статус. | частково | На сторінці іспиту ланцюжок не показується взагалі. Статус «Корекція» прибрано з фільтрів списку, тож знайти такі домашки важко. | 8–14 |
| Кнопка «Надіслати» в корекції | у складі домашки | викладач | Має відкривати новий раунд і повертати роботу студенту. | частково | Якщо викладач лише розмітив текст, але не написав коментар — сервер не відкриває раунд, а мовчки закриває весь ланцюг зі статусом «Виконано». | 3–6 |
| Минулі раунди тільки для читання | у складі домашки | студент, викладач | Редагувати можна лише останній раунд і лише коли твоя черга. | працює | — | — |
| Стара одиночна корекція | у складі домашки | — | Попередній варіант однієї корекції на домашку. | мертве | Поле, від якого залежить зв'язок, ніде не заповнюється — блок ніколи не з'являється. Дублює логіку ланцюга. | 2–3 |
| Чат по домашці | у складі домашки | студент, викладач | Приватне листування по конкретному завданню з історією й оновленням наживо. | працює | — | — |
| Нотатка викладача до домашки | у складі домашки | студент | Показує прикріплену до заняття нотатку тільки для читання. | працює | — | — |
| Сторінка іспиту | /assignments/exam/{id} | студент, викладач | Іспит на 5 частин із вкладками, відповідями, оцінюванням і підсумковим звітом. | працює | — | — |
| Іспит під час живого уроку | /lessons/exam/{id} | студент, викладач | Той самий іспит, але з відеоблоком і чатом групи збоку. | частково | Ознака «останній урок» не передається, тому блок усної частини під час заняття не з'являється. | 4–6 |
| Попередження про незаповнене | у складі іспиту | студент | Перед здачею перелічує частини, де лишились пропуски. | працює | — | — |
| Бали за кожну відповідь в іспиті | у складі іспиту | викладач | Бал за кожне поле, поруч рахується підсумок по завданню. | працює | — | — |
| Оцінка усної частини | у складі іспиту | викладач | Повзунки за критеріями мовлення: граматика, словниковий запас та інші. | частково | Інструкція захардкоджена українською. Повзунки блокуються без пояснення, якщо статус не «на перевірці». | 2–4 |
| Підсумковий звіт за іспит | у складі іспиту | студент, викладач | Півколо з відсотком, загальний бал і розбивка по частинах. | працює | — | — |
| Корекція в іспиті | у складі іспиту | викладач | Викладач може дописати корекцію в кінці іспиту. | частково | Студент її не побачить — блок ланцюга в іспиті не показується. До того ж іспит завжди позначається «виконано повністю», навіть якщо корекцію видано. | 6–10 |
| Чат на сторінці іспиту | у складі іспиту | студент, викладач | Має відкривати чат по іспиту. | частково | У чат передається не те поле — сервер шукає групу за номером чату, тож або помилка, або підключення до чужої групи. | 2–4 |
| Таймер іспиту | — | — | Мав би обмежувати час на іспит. | мертве | Компонент ніде не підключений, а сам лічильник рахує вгору від нуля при кожному відкритті — це не обмеження часу. | 10–16 |
| Прогрес студента | /progress/{id} | викладач, адмін | Таблиця занять студента: відвідуваність, час на уроці, результат тесту, статус домашки. | частково | Підсвітка вкладок рівнів завжди лишається на першому, хоча дані підвантажуються правильні. | 2–3 |
| Нотатки | /notes | усі | Створення власних нотаток і перегляд нотаток з уроків. | частково | Немає редагування й видалення, хоча на сервері обидві дії існують. Створена нотатка завжди особиста — тип не вибирається. | 4–6 |
| Профіль | /profile | усі | Особисті дані, інформація про навчання, вихід з акаунту. | частково | Кнопки збереження в шапці закоментовані — на комп'ютері зберегти зміни ніяк, залишилась лише мобільна панель. | 3–5 |
| Історія оплат у профілі | /profile | студент | Таблиця рахунків студента: сума, дата, статус. | частково | Витік даних. Фільтр за користувачем не передається, а сервер без фільтра віддає рахунки всіх користувачів школи. | 3–5 |
| Головна сторінка | / | усі | Набір віджетів під роль плюс бічний календар. | частково | Частина віджетів неробоча — див. нижче. | — |
| Віджет «Домашні завдання» | у складі головної | студент | Останні чотири домашки зі статусом. | частково | Рядки не клікабельні, стрілка праворуч — кнопка без дії, «Дивитись всі» веде на головну замість розділу завдань. | 2–4 |
| Віджет «Оплати» | у складі головної | студент | Має показувати останні рахунки. | макет | Сервер віддає одні поля, а віджет читає інші — рядки рендеряться порожніми. | 3–5 |
| Віджет «Акційні пропозиції» | у складі головної | студент | Картки акцій зі знижкою і ціною. | частково | Ціна тягнеться з жорстко вписаного курсу, дата підставляється поточна замість реальної, «Дивитись всі» веде на головну. | 4–8 |
| Картка «Курси, за якими я навчаю» | у складі головної | усі | Має показувати курси викладача. | макет | Дані вигадані в коді — два однакові «Elementary». Картка показується всім ролям, а посилання веде на розділ, якого в застосунку не існує. | 6–10 |
| Онбординг-підказки | у складі головної | усі | Мали б проводити нового користувача по інтерфейсу. | мертве | Список підказок повністю закоментований, компонент завжди повертає порожнечу. | 6–10 |
| Кабінет абітурієнта | / | абітурієнт | Має бути стартовим екраном людини, яка ще не почала навчання. | макет | Ролі не видано жодного дозволу, у конфігурації віджетів її немає взагалі. Абітурієнт бачить лише фейкову картку курсів. Якщо це реальний сценарій продажу — це окремий шматок робіт. | 20–30 |
| Опитування «оціни урок» зірочками | модалка | студент | Після заняття мала б спливати оцінка від 1 до 5 зірочок. | мертве | Інтерфейс і збереження готові, але сервер жорстко повертає порожній список активних опитувань — вікно не з'являється ніколи, а в журналі групи зірочка завжди порожня. | 4–8 |
| Блок | Маршрут | Хто бачить | Що робить | Стан | Чого бракує | Годин |
|---|---|---|---|---|---|---|
| Користувачі — список | /users | адмін | Таблиця всіх людей школи з вкладками студенти / викладачі / адміни / абітурієнти / видалені, фільтрами й масовими діями. | працює | Колонка «Групи» завжди показує прочерк. Колонки статусів навчання, оплати й опитувань вирізані, хоча код їх виводу лишився. | 4–8 |
| Створення користувача | /users/create | адмін | Двокроковий майстер: особисті дані, потім навчальна або викладацька інформація. | працює | — | — |
| Картка користувача — особисті дані | /users/{id} | адмін | Редагування контактів, фото, дати народження, видалення акаунту. | працює | — | — |
| Картка — навчальна інформація | /users/{id} | адмін | Прив'язка до групи, рівня, мови, форми навчання. | працює | Для абітурієнта вкладку закоментовано — налаштувати його з картки неможливо. | 6–10 |
| Картка — історія платежів | /users/{id} | адмін | Рахунки студента і кнопка «Виставити рахунок». | працює | Створений рахунок нікуди не веде — оплатити його онлайн неможливо. | — |
| Картка — коментарі | /users/{id} | адмін | Внутрішні нотатки про студента чи викладача. | працює | — | — |
| Мої студенти | /students | викладач | Список студентів викладача зі статусами навчання й оплати, останньою відповіддю в опитуванні, друком у PDF. | працює | Колонка «Групи» так само захардкоджена прочерком. | 2–4 |
| Групи — список | /groups | адмін, викладач | Перелік груп із пошуком, фільтрами і створенням нової. | працює | — | — |
| Картка групи | /groups/{id} | адмін, викладач | Дані групи, прогрес, склад, додавання студентів, зміна статусів, заявка на заміну викладача, друк списку. | працює | — | — |
| Картка групи — календар і домашні | /groups/{id} | адмін, викладач | Розклад занять групи та журнал домашніх завдань. | працює | — | — |
| Заявки — дошка лідів | /requests | адмін | Канбан зі статусами: колонки створюються й перейменовуються, заявки перетягуються мишкою. | працює | — | — |
| Створення та картка заявки | /requests/… | адмін | Форма нового ліда та редагування з переведенням у інший статус. | працює | — | — |
| Бібліотеки — довідники школи | /libs | адмін | Форми й типи навчання, рівні, філії, джерела, мови, статуси, теми тікетів, ролі з правами, особливості учнів. | працює | Розділ статусів навчання паралельно тягне ще й статуси домашок — зайвий запит ламає гортання. | 3–5 |
| Бібліотеки — тарифи та аванс | /libs | адмін | Прайс на рівні навчання зі старою й новою ціною, мінімальні суми авансу, історія змін. | частково | Пошук по розділу вимкнено — при сотні тарифів шукати нема як. | 3–5 |
| Бібліотеки — платіжні акаунти | /libs | адмін | Зберігання ключів платіжної системи та прив'язка до групи. | частково | Ключі зберігаються, але ніде не використовуються — на сервері немає жодного платіжного виклику. Це довідник «у стіл». | входить в оплату |
| Опитування — конструктор | /libs | адмін | Створення опитування: питання, варіанти з іконками, вкладені додаткові питання, поле коментаря. | працює | — | — |
| Опитування — запуск за тригером | модалка з /libs | адмін | Запуск за подією: номер заняття, до іспиту, після іспиту, за датою, прямо зараз. | частково | Тригер «за датою» — фікція. Дати зберігаються, але сервер їх не обробляє: адміністратор натисне «активувати» і буде впевнений, що опитування піде — воно не піде, мовчки. Немає й деактивації. | 8–12 |
| Опитування — проходження студентом | модалка | студент | При вході спливає активне опитування з ланцюжком питань і коментарем. | працює | Крок «назад» перестрибує через питання. | 2–3 |
| Опитування — відповідь у таблиці | /students, /groups/{id} | адмін, викладач | У таблиці студента видно останню відповідь про продовження навчання та дату. | працює | — | — |
| Опитування — зведена аналітика | не існує | — | Мала б показувати розподіл відповідей по опитуванню, групі, періоду. | мертве | Екрана немає, і сервер його не витягне — запиту, що повертає список результатів, у схемі не існує взагалі. Дані збираються «в нікуди». | 20–30 |
| Бібліотеки — навчальний контент | /libs | адмін | Слова, списки слів, ідіоми, малі слова, відеослова, шаблони речень: перегляд, пошук, видалення. | працює | — | — |
| Редактор словникової одиниці | /libs/{edit} | адмін | Повноекранна форма створення й редагування слова, ідіоми, шаблона речення. | працює | — | — |
| Транзакції — журнал платежів | /transactions | адмін | Реєстр усіх рахунків школи: сума, тип оплати, дата, платник, статус. | частково | Кнопки «Сплатити» і «Завантажити PDF» не мають жодного обробника — обіцяють дію, якої немає. Змінити статус рахунку з цього екрана теж не можна. | див. оплату + 12–20 |
| Оплата — крок 1 «Акції» | /payment | абітурієнт, студент | Вибір пакета на 1–3 рівні зі знижкою. | макет | Усі ціни й знижки вписані в код. Реальні тарифи вже є в довіднику — майстер їх просто не читає. | 10–16 |
| Оплата — крок 2 «Рівні» | /payment | абітурієнт, студент | Вибір рівня або кількох рівнів навчання. | частково | Рівні тягнуться з сервера, але вибір ніде не зберігається. | 8–12 |
| Оплата — крок 3 «Категорія» | /payment | абітурієнт, студент | Повна оплата, часткова або аванс, із вибором суми. | макет | Суми курсу, залишку й авансу вписані в код, довідник авансів не використовується, вибір нікуди не передається. | 10–16 |
| Оплата — крок 4 «Спосіб оплати» | /payment | абітурієнт, студент | Вибір: карткою або банківським переказом. | макет | Перемикачі без стану, кнопки «Оплатити» немає, жодного збереження. Це фінальний крок майстра, який не робить нічого. | 30–40 |
| Оплата — крок 5 «Зв'язок з менеджером» | /payment | абітурієнт, студент | Форма зворотного дзвінка: ім'я, телефон, зручний час. | макет | Заявка нікуди не відправляється — на сервері немає відповідної дії. | 8–12 |
| Оплата — навігація майстром | /payment | абітурієнт, студент | Кнопки «Назад» і «Наступний крок». | частково | Умова кнопки «Назад» інвертована — повернутись на попередній крок неможливо, лише через бічне меню. | 2–4 |
| Налаштування — «Загальні» | /settings | усі ролі | Мали б задавати мову інтерфейсу, назви та базові параметри школи. | макет | Збереження порожнє, поля підписані заглушками, три поля мають однакове ім'я, кнопки «Зберегти» немає. На сервері таких налаштувань не існує взагалі. | 16–24 |
| Налаштування — «Повідомлення» | /settings | усі ролі | Мали б вмикати й вимикати типи сповіщень. | макет | Дев'ять однакових перемикачів із текстом-заглушкою, збереження порожнє, на сервері полів немає. | 16–24 |
| Налаштування — «Віджети» | /settings | усі ролі | Вмикає й вимикає блоки головної сторінки; перемикач зберігається одразу. Єдина робоча вкладка. | працює | — | — |
| Налаштування — «Фінанси» | /settings | усі ролі | Мали б містити реквізити ФОП і рахунків школи. | макет | Список — два однакові вигадані ФОП із фейковим рахунком у коді. Редагування й видалення закоментовані, додавання пише дані в консоль. Сутності на сервері немає. | 20–30 |
| Сповіщення | бічна панель | усі ролі | Список сповіщень із вкладками, позначення прочитаним, спливні повідомлення, оновлення наживо. | частково | Джерел подій лише два: заміна викладача і нове повідомлення в чаті. Оплати, дедлайни, нові заявки й тікети не сповіщають. Кнопки «прочитати всі» й «видалити» описані, але ніде не викликаються. | 24–40 + 4–6 |
| Навчання (курси, акції, тести) | /learning | адмін, викладач | Каталог навчальних матеріалів школи. | частково | Вкладки всього розділу закоментовані — доступний лише список уроків. Курси, акції й тести мають повний сервер і готові підключення, але недосяжні, ще й приховані на рівні конструктора ролей. | 16–24 |
| Календар школи | /calendar | адмін, викладач | Загальний розклад занять із фільтрами. | працює | — | — |
| Повідомлення (чати) | /messages | усі | Список чатів, кімната з історією, надсилання тексту й файлів, статус «онлайн». | працює | — | — |
| Підтримка — реєстр тікетів | /support | усі | Тікети з вкладками всі / мої / архів, фільтрами і створенням нового. | працює | — | — |
| Підтримка — картка тікета | /support/{id} | адмін, автор | Переписка, взяття в роботу, передача в іншу філію, закриття. | працює | Створення тікета не породжує сповіщення — виклик закоментований на сервері. | 2–4 |
| Історія дій | /history | адмін | Журнал усіх дій у системі: що зроблено, коли і ким. | працює | Поруч лежить невикористаний тестовий масив — сміття. | 0,5 |
| Розділ «Викладання» | маршруту немає | — | Заглушка з вкладками і таблицею. | мертве | Модуль недосяжний, у таблиці колонки «QQ» і «WW», рядки «row_1», «row_2». Прибрати разом із посиланням у списку сторінок. | 1–2 |
Гірше за відсутню функцію те, що виглядає робочим і підводить непомітно. Тут таких випадків чотири: опитування «за датою», яке адміністратор запускає, а воно не йде; бали за домашки, які записуються повними автоматично; кнопка «Надіслати» в корекції, що замість нового раунду закриває ланцюг; і кнопки «Сплатити», які просто нічого не роблять. Ці чотири речі створюють хибну впевненість у школи — і їх варто закрити раніше за красиві доробки.
Карта складена читанням коду — це дає точну картину структури, але не поведінки. Щоб довести її до стану «перевірено», потрібні три тестові акаунти (студент, викладач, адміністратор) на dev-стенді. Перевірки, які без цього неможливі: реальна робота кімнат для підгруп у відеозв'язку, фактична доставка звуку учням, поведінка чату на сторінці іспиту та повний прохід оплати абітурієнта.