Порядок денний · зустріч із розробкою

LMS English Prime: що входить у здачу до вересня

Ми прочитали код обох репозиторіїв, щоб прийти на зустріч із конкретикою, а не з відчуттями. Це не перевірка роботи й не список претензій: зроблено значно більше, ніж здається збоку. Мета одна — вийти зі зустрічі з письмовим переліком того, що вважається зданим у вересні, і з іменами під кожним пунктом.

5 серпня 2026 Андрій + команда розробки стан коду на 23.07.2026

Три рішення, без яких зустріч марна

головне
РІШЕННЯ 01

Оплати входять у вересень?

Якщо так — хто робить інтеграцію платіжної системи і за який строк. Якщо ні — фіксуємо письмово «оплати вносить адміністратор вручну» і прибираємо непрацюючі кнопки та сторінку оплати для абітурієнта.

РІШЕННЯ 02

Коли зливаємо 177 комітів?

Основні гілки застаріли на два-три місяці. Це найбільша технічна подія залишку, і вона не може стояти на останній тиждень серпня. Потрібна дата злиття і відповідь, хто перевірятиме результат руками.

РІШЕННЯ 03

Хто добиває залишок?

Два ключові автори не комітять з травня й червня, зараз тягне одна людина. Це питання про строк більше, ніж будь-яке інше: за шість тижнів одна людина закриває мінімум, не повний обсяг.

Де ми зараз

за кодом, не за трекером
≈85%готово за обсягом робіт
8 / 10доменів завершені й у продакшні
1велика діра: оплати
177комітів не влиті в основну гілку
0автотестів на 7 300 нових рядків
Платформа не напівпорожня. Навчальне ядро працює і щодня допилюється на живих групах: онлайн-урок, відеозв'язок, домашні, іспити, корекції, групи й потоки, відвідуваність, бібліотеки, заміна викладача, чати й підтримка. Незакритий по суті один великий напрямок — прийом оплат. Реальна загроза для вересня не в коді, а в тому, що команда розійшлася.

Що вже закрито

з цього починаємо розмову
Онлайн-урокВідеозв'язок JitsiДомашні завдання ІспитиКорекціїГрупи й потоки ВідвідуваністьБібліотеки контентуЗаміна викладача Чати й підтримкаЗаявки абітурієнтівРолі й права

Що не закрито

чотири напрямки
НапрямокРеальний стан за кодомЩо вирішуємо на зустрічі
Оплатиписати з нуля У базі змодельовано все: тарифи, аванси, акції, сімейна знижка, ключі LiqPay. Але коду прийому платежу немає ніде: підпис не формується, callback-адреси не існує, платіжного SDK у залежностях нема. «Транзакції» — бухгалтерський журнал, оплату заводить адмін вручну постфактум. Сторінка оплати для абітурієнта — макет із цінами, вписаними просто в код. Останній коміт по модулю: 21 січня 2026. Це окремий спринт, а не доробка. Або замовляємо інтеграцію, або офіційно лишаємо ручні оплати і прибираємо намальовані кнопки.
Налаштуванняпереважно макети Серверного модуля налаштувань не існує взагалі. З чотирьох вкладок працює одна — вибір віджетів дашборда. «Загальні» і «Повідомлення» нічого не зберігають, «Фінанси» пишуть у консоль замість бази. Пункт меню при цьому видно всім ролям. Тут спершу потрібне рішення, а не робота: що саме має бути в налаштуваннях. Або доробляємо перелік, або ховаємо вкладки до наступного етапу.
Сповіщеннямеханізм є, подій нема Сама труба працює: миттєва доставка, дровер, спливні. Але шлються лише з двох місць — заміна викладача і нове повідомлення в чаті. Жодного навчального сповіщення: «домашнє перевірено», «урок завтра», «є заборгованість». Пошта тільки для реєстрації та пароля, пушів немає. Найдешевша помітна цінність для школи. Потрібен перелік подій від школи, далі це підключення до готового механізму.
Опитуванняпрацює, бракує зведення Опитування зроблені, просто без окремого пункту меню: адмін створює їх у бібліотеках, студенту спливають модалкою, тригери після уроку та навколо іспиту працюють. Немає зведення результатів — адмін бачить лише останню відповідь окремого студента. Тригер «за датою» у формі є, на сервері не реалізований. Чи потрібна адміністраторам зведена аналітика. Якщо так — це невелика частина, а не модуль.

Що зупинить запуск

дешево зробити, дорого пропустити

Відеозв'язок працює через тестовий сервер

блокер

Адреса відеосервера вписана прямо в код і вказує на тимчасовий тестовий інстанс. У продакшні платформа залежатиме від сервера, який ніхто не обслуговує як бойовий. Потрібен свій сервер і адреса в налаштуваннях, а не в коді.

Історія платежів віддається без фільтра за користувачем

3–5 год

У профілі студента сервер повертає рахунки всіх людей школи. Це персональні дані, і це найдорожче з усього списку, якщо спливе після здачі.

Чужі сповіщення й корекції можна прочитати

кілька рядків

Шість каналів реального часу пропускають будь-кого без перевірки: залогінений користувач може підписатися на сповіщення й корекції іншої людини. Поруч — два старі Zoom-запити в API взагалі без авторизації, в одному лишився налагоджувальний виклик, що обриває процес.

Дії з уроком і домашками перевіряють лише «чи ти залогінений»

12–20 год

Без перевірки ролі й належності до групи. Студент із посиланням теоретично стартує або завершує урок, відкриває чужу домашку. На фронтенді немає перевірки маршрутів: студент, який вручну введе адресу адмінського розділу, побачить сторінку.

Секрети лежать у репозиторії

перевипуск

Ключі відеосервера прописані як значення за замовчуванням у конфігурації, у прикладі налаштувань фронтенду — секрет Google. Усе це в історії Git, тож старі ключі вважаємо скомпрометованими.

Розгортання з нуля дасть непрацездатні права

сідер

Скрипт початкового заповнення створює ролі в іншому регістрі, ніж очікує код, і сіє 56 прав замість 80. Права отримає лише адміністратор. На чинному сервері це не видно — проявиться рівно тоді, коли платформу піднімуть на новому.

Головний ризик — не код

темп
ХтоЧастка кодуОстанній внесокСтан
Автор бекенду92%16.06.2026мовчить понад місяць
Автор фронтенду62%травень 20263 коміти за три місяці
Хто тягне заразодна людина23.07.2026за всю історію 7 комітів на бекенді
Це і є відповідь на питання «чому немає кінця». Продукт не сирий, просто темп впав у кілька разів, бо його майже нікому тягнути. Плюс борг релізу: у робочих гілках висить 177 комітів, близько 7 300 доданих рядків і 9 незастосованих змін бази — уся сучасна перевірка домашніх завдань. Автотестів немає, тож перевірятимуть руками.

Порядок дій до вересня

послідовність важлива
  1. Злити напрацьоване в основні гілки та прогнати зміни бази — на тестовому середовищі.Найбільша технічна подія залишку. Робити зараз, поки є час на відкат, а не перед здачею.
  2. Ухвалити рішення про оплати.Або окремий спринт на інтеграцію, або письмово фіксуємо ручні оплати і прибираємо непрацюючі елементи з очей користувача.
  3. Закрити безпеку.Перевипустити ключі, закрити канали реального часу й відкриті запити, полагодити скрипт ролей, прибрати налагоджувальний виклик і мертву інтеграцію з паролем у коді.
  4. Перевести відеозв'язок на бойовий сервері винести його адресу в налаштування.
  5. Визначити перелік подій для сповіщеньі підключити їх до готового механізму. Найдешевша помітна цінність для школи.
  6. Вирішити долю налаштувань:доробити потрібні вкладки або сховати їх до наступного етапу.
  7. Додати зведення результатів опитуваньі оживити оцінку уроку. Обидва майже готові, бракує невеликої частини.
  8. Прибирання перед здачею:видалити мертвий модуль і залишки минулої відеоплатформи, прибрати тестові дані, дописати 170 неперекладених рядків англійської версії.

Три сценарії здачі

до вересня ≈6 тижнів
ОбсягГодиниОднією людиноюЩо всередині
Мінімум90–1503–4 тижніБезпека, критичні дефекти, прибрати макети з очей користувача
Без онлайн-оплати280–420≈2 місяціУсі функціональні діри, крім платіжної системи. Оплати лишаються ручними
Повний390–6302,5–4 місяціРазом із наскрізною онлайн-оплатою і майстром для абітурієнта
Питання не «встигнемо чи ні», а що саме входить у здачу. Мінімум до вересня одна людина закриває реалістично. Повний обсяг з онлайн-оплатою за цей строк не закривається навіть теоретично. Оцінки годин — наші прикидки ззовні; ви краще знаєте код, тож на зустрічі звіряємо їх із вашим відчуттям.

Питання, по яких проходимо пунктами

10 · відповіді записуємо тут же
01

Оплати входять у те, що ми здаємо у вересні?

Якщо так — хто робить інтеграцію і за який строк. Якщо ні — фіксуємо письмово і прибираємо непрацюючі елементи.

02

Чому 177 комітів досі не в основній гілці і коли злиття?

Хто і як перевірятиме результат, якщо автотестів немає.

03

Хто зараз реально в команді і хто добиватиме залишок?

Два ключові автори не комітять з травня й червня. Це питання про строк більше, ніж будь-яке інше.

04

Коли переходимо з тестового відеосервера на бойовий?

Хто його адмініструє і чи витримає він реальну кількість одночасних уроків.

05

Що саме має бути в «Налаштуваннях»?

Три з чотирьох вкладок — макети. Треба або перелік того, що доробляємо, або рішення сховати.

06

Які події мають надсилати сповіщення і чи потрібна пошта?

Механізм готовий, бракує списку подій. Це рішення школи, не розробника.

07

Коли закриваємо відкриті канали й перевипускаємо ключі?

Зараз сторонній може прочитати чужі сповіщення й корекції, а секрети лежать в історії репозиторію.

08

Чи потрібна адміністраторам зведена аналітика опитувань?

Дані збираються, але подивитись їх разом неможливо.

09

Чи буде хоча б мінімальний набір тестів перед релізом?

Зараз їх нуль, а зливається 7 300 рядків змін.

10

Що конкретно вважається «здано» у вересні?

Потрібен письмовий перелік, під яким підписуються обидві сторони. Без нього трекер поповнюватиметься нескінченно.

Якщо треба довести цифру

повний розбір