Ми прочитали код обох репозиторіїв, щоб прийти на зустріч із конкретикою, а не з відчуттями. Це не перевірка роботи й не список претензій: зроблено значно більше, ніж здається збоку. Мета одна — вийти зі зустрічі з письмовим переліком того, що вважається зданим у вересні, і з іменами під кожним пунктом.
Якщо так — хто робить інтеграцію платіжної системи і за який строк. Якщо ні — фіксуємо письмово «оплати вносить адміністратор вручну» і прибираємо непрацюючі кнопки та сторінку оплати для абітурієнта.
Основні гілки застаріли на два-три місяці. Це найбільша технічна подія залишку, і вона не може стояти на останній тиждень серпня. Потрібна дата злиття і відповідь, хто перевірятиме результат руками.
Два ключові автори не комітять з травня й червня, зараз тягне одна людина. Це питання про строк більше, ніж будь-яке інше: за шість тижнів одна людина закриває мінімум, не повний обсяг.
| Напрямок | Реальний стан за кодом | Що вирішуємо на зустрічі |
|---|---|---|
| Оплатиписати з нуля | У базі змодельовано все: тарифи, аванси, акції, сімейна знижка, ключі LiqPay. Але коду прийому платежу немає ніде: підпис не формується, callback-адреси не існує, платіжного SDK у залежностях нема. «Транзакції» — бухгалтерський журнал, оплату заводить адмін вручну постфактум. Сторінка оплати для абітурієнта — макет із цінами, вписаними просто в код. Останній коміт по модулю: 21 січня 2026. | Це окремий спринт, а не доробка. Або замовляємо інтеграцію, або офіційно лишаємо ручні оплати і прибираємо намальовані кнопки. |
| Налаштуванняпереважно макети | Серверного модуля налаштувань не існує взагалі. З чотирьох вкладок працює одна — вибір віджетів дашборда. «Загальні» і «Повідомлення» нічого не зберігають, «Фінанси» пишуть у консоль замість бази. Пункт меню при цьому видно всім ролям. | Тут спершу потрібне рішення, а не робота: що саме має бути в налаштуваннях. Або доробляємо перелік, або ховаємо вкладки до наступного етапу. |
| Сповіщеннямеханізм є, подій нема | Сама труба працює: миттєва доставка, дровер, спливні. Але шлються лише з двох місць — заміна викладача і нове повідомлення в чаті. Жодного навчального сповіщення: «домашнє перевірено», «урок завтра», «є заборгованість». Пошта тільки для реєстрації та пароля, пушів немає. | Найдешевша помітна цінність для школи. Потрібен перелік подій від школи, далі це підключення до готового механізму. |
| Опитуванняпрацює, бракує зведення | Опитування зроблені, просто без окремого пункту меню: адмін створює їх у бібліотеках, студенту спливають модалкою, тригери після уроку та навколо іспиту працюють. Немає зведення результатів — адмін бачить лише останню відповідь окремого студента. Тригер «за датою» у формі є, на сервері не реалізований. | Чи потрібна адміністраторам зведена аналітика. Якщо так — це невелика частина, а не модуль. |
Адреса відеосервера вписана прямо в код і вказує на тимчасовий тестовий інстанс. У продакшні платформа залежатиме від сервера, який ніхто не обслуговує як бойовий. Потрібен свій сервер і адреса в налаштуваннях, а не в коді.
У профілі студента сервер повертає рахунки всіх людей школи. Це персональні дані, і це найдорожче з усього списку, якщо спливе після здачі.
Шість каналів реального часу пропускають будь-кого без перевірки: залогінений користувач може підписатися на сповіщення й корекції іншої людини. Поруч — два старі Zoom-запити в API взагалі без авторизації, в одному лишився налагоджувальний виклик, що обриває процес.
Без перевірки ролі й належності до групи. Студент із посиланням теоретично стартує або завершує урок, відкриває чужу домашку. На фронтенді немає перевірки маршрутів: студент, який вручну введе адресу адмінського розділу, побачить сторінку.
Ключі відеосервера прописані як значення за замовчуванням у конфігурації, у прикладі налаштувань фронтенду — секрет Google. Усе це в історії Git, тож старі ключі вважаємо скомпрометованими.
Скрипт початкового заповнення створює ролі в іншому регістрі, ніж очікує код, і сіє 56 прав замість 80. Права отримає лише адміністратор. На чинному сервері це не видно — проявиться рівно тоді, коли платформу піднімуть на новому.
| Хто | Частка коду | Останній внесок | Стан |
|---|---|---|---|
| Автор бекенду | 92% | 16.06.2026 | мовчить понад місяць |
| Автор фронтенду | 62% | травень 2026 | 3 коміти за три місяці |
| Хто тягне зараз | одна людина | 23.07.2026 | за всю історію 7 комітів на бекенді |
| Обсяг | Години | Однією людиною | Що всередині |
|---|---|---|---|
| Мінімум | 90–150 | 3–4 тижні | Безпека, критичні дефекти, прибрати макети з очей користувача |
| Без онлайн-оплати | 280–420 | ≈2 місяці | Усі функціональні діри, крім платіжної системи. Оплати лишаються ручними |
| Повний | 390–630 | 2,5–4 місяці | Разом із наскрізною онлайн-оплатою і майстром для абітурієнта |
Якщо так — хто робить інтеграцію і за який строк. Якщо ні — фіксуємо письмово і прибираємо непрацюючі елементи.
Хто і як перевірятиме результат, якщо автотестів немає.
Два ключові автори не комітять з травня й червня. Це питання про строк більше, ніж будь-яке інше.
Хто його адмініструє і чи витримає він реальну кількість одночасних уроків.
Три з чотирьох вкладок — макети. Треба або перелік того, що доробляємо, або рішення сховати.
Механізм готовий, бракує списку подій. Це рішення школи, не розробника.
Зараз сторонній може прочитати чужі сповіщення й корекції, а секрети лежать в історії репозиторію.
Дані збираються, але подивитись їх разом неможливо.
Зараз їх нуль, а зливається 7 300 рядків змін.
Потрібен письмовий перелік, під яким підписуються обидві сторони. Без нього трекер поповнюватиметься нескінченно.