Зріз стану навчальної платформи за фактичним кодом двох репозиторіїв, а не за відчуттями. Мета — побачити межу робіт і піти на розмову з розробником з конкретними питаннями.
Платформа не напівпорожня — вона майже готова. Ядро навчання працює і щодня допилюється на живих групах. Незакритий по суті один великий напрямок — прийом оплат. Реальна загроза для вересня — не код, а те, що команда розійшлася.
Це не обіцянки з таблиці — це підтверджено кодом. Домени нижче мають повні моделі даних, API та інтерфейс, а частину з них видно за індексами під навантаження та моніторингом, тобто вони реально експлуатуються.
Проведення уроку, слайди й презентація, конструктор речень, малювання по екрану, трансляція аудіо викладача студентам, чат уроку.
Вбудований дзвінок з JWT, демонстрація екрана з банером, кімнати для підгруп і кнопка «закрити всі», ім'я учасника з профілю.
Здача з автозбереженням чернетки, перевірка викладачем, поінпутне оцінювання, коментарі, чат студент↔викладач.
П'ять частин, оцінка за комунікацію, автопідрахунок балів, блокування роботи після здачі, звіт.
Найзріліша частина: ланцюжок «викладач править → студент відповідає → викладач підтверджує», інлайн-анотації, окремий день корекцій.
Потоки по рівнях, склад груп, розклад із канікулами, філії, історія викладачів, статуси навчання й оплати студента в групі.
Автоматична відмітка присутності й запізнення, облік входів-виходів із уроку, ручна корекція викладачем.
Слова з визначеннями по рівнях, малі слова з теорією для студента, моделі речень, ідіоми, відео. Списки переюзуються між уроками.
Календар подій, масовий зсув розкладу, окремий тип «день корекцій», перерахунок порядку уроків.
Студент, викладач, адмін, абітурієнт. Гранулярні права, меню під роль, заявки й активація акаунтів.
Повний цикл із подвійним погодженням: викладач → адмін, з відмовами, повторами та історією.
Особисті та групові чати з вкладеннями, тікети підтримки з передачею між філіями. Усе в реальному часі.
Чотири напрямки з таблиці вашої команди. Аудит коду підтвердив діагноз і уточнив глибину: два з них суттєво ближчі до готовності, ніж здавалось, а один — насправді глибший.
Це головна і єдина по-справжньому велика діра. У базі все змодельовано — тарифи, аванси, акції, сімейна знижка, статуси, навіть ключі LiqPay. Але коду прийому платежу немає ніде: підпис для платіжки не формується, callback-адреси не існує, жодного платіжного SDK у залежностях.
6900 / 12420 / 16560 ₴ вписані просто в код, вибір нікуди не зберігається, кнопки лише гортають кроки.Це окремий спринт, а не доробка. Останній коміт по модулю — 21 січня 2026.
Окремого модуля налаштувань на сервері не існує взагалі. В інтерфейсі є чотири вкладки, з них працює одна — вибір віджетів дашборда.
Тут спершу потрібне рішення, а не робота: що саме має бути в налаштуваннях — і або доробити, або сховати вкладки до наступного етапу.
Приємна новина: сам механізм працює — сповіщення приходять миттєво, є дровер з вкладками й спливні повідомлення. Проблема не в трубі, а в тому, що в неї майже нічого не надходить.
Робота тут зрозуміла й обмежена: скласти перелік подій і підключити їх до готового механізму.
Ще одна приємна новина: опитування зроблені, просто їх легко не помітити — вони не мають окремого пункту меню. Адмін створює їх у бібліотеках, студенту опитування спливає модалкою автоматично.
Це не «допилювання», а речі, які треба закрити до того, як платформу можна назвати зданою. Вони дешеві в роботі, але дорогі, якщо їх пропустити.
Адреса відеосервера вписана прямо в код і вказує на тимчасовий тестовий інстанс. У продакшні платформа буде залежати від сервера, який ніхто не обслуговує як бойовий. Це блокер: потрібен свій відеосервер і адреса в налаштуваннях, а не в коді.
Шість каналів реального часу пропускають будь-кого без перевірки. Технічно це означає, що залогінений користувач може підписатися на сповіщення й корекції іншої людини. Виправлення — кілька рядків, але зробити це треба до здачі.
Ключі відеосервера прописані як значення за замовчуванням у файлі конфігурації, а в прикладі налаштувань фронтенду — секрет Google. Усе це в історії Git. Ключі треба перевипустити, старі — вважати скомпрометованими.
Скрипт початкового заповнення створює ролі в іншому регістрі, ніж очікує код. Права отримає лише адміністратор, викладачі та студенти залишаться ні з чим. На чинному сервері це не видно — проявиться рівно тоді, коли платформу піднімуть на новому.
У бойовому API живе запит-налагоджувач, який обриває процес. Поруч — мертва інтеграція минулої відеоплатформи з чиєюсь особистою поштою і паролем у коді. Події календаря позначаються завершеними за 30 хвилин до реального кінця. На фронтенді немає перевірки маршрутів: студент, який вручну введе адресу адмінського розділу, побачить сторінку.
Це і є справжня відповідь на питання «чому немає кінця». Продукт не сирий — просто темп впав у кілька разів, бо його майже нікому тягнути.
| Хто | Частка коду | Останній внесок | Стан |
|---|---|---|---|
| Автор бекенду | 92% | 16.06.2026 | мовчить понад місяць |
| Автор фронтенду | 62% | травень 2026 | 3 коміти за три місяці |
| Хто тягне зараз | одна людина | 23.07.2026 | за всю історію 7 комітів на бекенді |
| Період | Комітів | Що відбувалось |
|---|---|---|
| 2024 · III–IV кв. | 534 | побудова ядра платформи |
| 2025 · II кв. | 741 | пік: комунікації та інфраструктура |
| 2025 · IV кв. | 478 | друга хвиля: організаційна модель школи |
| 2026 · II кв. | 205 | точкове допилювання |
| 2026 · липень | 16 | за 23 дні, силами однієї людини |
Основні гілки обох репозиторіїв застаріли на два-три місяці. У робочих гілках висить 177 комітів, близько 7 300 доданих рядків і 9 незастосованих змін бази даних — уся сучасна перевірка домашніх завдань. Це окрема ризикована подія, яку не можна ставити на останній тиждень серпня. Автотестів немає, тож перевірятимуть руками.
Послідовність важлива: спершу знімаємо ризики, потім закриваємо функціонал. Найгірший сценарій — залишити злиття гілок і рішення про оплати на кінець серпня.
Головне, що варто винести з цього документа: перелік, по якому можна пройтися пунктами і почути конкретні відповіді.