ТЕХНІЧНЕ ЗАВДАННЯ (ТЗ)
на розробку платформи для онлайн-навчання англійської мови
1. Загальний опис проєкту
Мета: створити навчальну платформу для вивчення англійської мови, яка дозволяє:
- проходити учню уроки з учителем (онлайн Zoom);
- проходити учню самостійно уроки, без учителя;
- учителю продавати рівні англійської мови (A1–C1) окремо;
- продавати спеціальні курси;
- дозволяютье учням проходити уроки поступово;
- автоматично перевіряти тести;
- бронювати заняття з вчителем;
- підключати автоматичні платежі;
- бачити прогрес учня у кабінеті викладача.
2. Функціонал користувачів
2.1. Учень
Має можливість:
- створити свій акаунт;
- переглядати куплені курси і рівні;
- проходити уроки (тести, аудіо, відео, завдання) після оплати за "рівні англійської мови (A1–C1)"
- бачити свій прогрес;
- бронювати уроки з учителем після оплати "індивідуальні уроки";
- виконувати домашнє завдання з автоматичною перевіркою;
- повторювати пройдений матеріал;
- отримувати автоматичні перевірки тестів та завдань;
- отримувати email-повідомлення у разі необхідності;
- купувати нові уроки/рівні/пакети.
2.2. Учитель
Може:
- переглядати прогрес кожного учня;
- переглядати правильні/неправильні відповіді;
- переглядати стадію проходження уроків;
- відкривати безкоштовний доступ окремим учням;
- додавати/редагувати уроки;
- додавати тести, аудіо, відео, зображення;
- створювати домашні завдання;
- відкривати нові уроки вручну чи автоматично.
2.3. Адміністратор
Може (без програміста):
- змінювати ціни;
- змінювати тривалість уроків;
- змінювати доступність спеціальних курсів ;
- змінювати сторінки сайту;
- інтегрувати нові курси;
- переглядати всі транзакції;
- керувати оплатами;
- налаштовувати обмеження доступу.
2.4. Система бронювання занять
Функціонал:
- учитель створює доступні слоти;
- учень після покупки "індивідувльних уроків" бачить вільні слоти;
- учитель підтверджує бронювання;
- учителю надходить email;
- учню надходить email;
- у кабінеті показується дата і час уроку;
- можливість перенести/скасувати;
- автоматичне списання 1 уроку після підтвердження.
3. Структура уроків
Окремий урок = окрема довга сторінка:
- блок із відео;
- блок з аудіо;
- блок з поясненням правил;
- інтерактивні тести з автоперевіркою;
- вправи drag & drop, вибір ABCD, введення тексту, matching;
- кнопка «Завершити» → перевірка → запис результату.
Додається приклад на фото*
- має бути можливість у учня додавати слова до особистого словника з уроків. При натискання на кожне слово в уроці є переклад та "+" з мождивістю додати в свій словник. А потім учень може працювати зі словником окремо.
Після основного уроку:
- через певний час (60хв) відкривається сторінка «Домашнє завдання» (сторінка з меншим обсягом завдань).
4. Доступи
Доступ відкривається:
- після оплати;
- вручну викладачем;
- або за спеціальним промо.
5. Курси та рівні
Рівні: A1, A2, A2+, B1, B1+, B2, B2+, C1.
Кожен рівень:
- купується окремо;
- містить 8 розділів по 4 уроки в кожному, зі сторінкою контрольної після кожного 4 уроку ;
- має сторінку прогресу;
- має доступ до календаря бронювання.
Спеціальні курси:
- можуть бути платними/безкоштовними;
- адміністратор сам додає оплату або прибирає.
6. Платформа уроків
Потрібно створити конструктор уроків з такими блоками:
- текст,
- фото,
- аудіо,
- відео,
- тест (різні типи),
- PDF-вставка.
Тести повинні:
- автоматично перевірятися,
- зберігати відповіді,
- показувати статистику викладачу.
7. Прогрес учня
Повинен містити:
- % завершення курсу;
- правильні/неправильні відповіді на кожному уроці;
- історію уроків;
- результати домашки;
- дату проходження.
8. Email-сповіщення
Повідомлення мають надходити:
- про покупку;
- про бронювання уроку;
- про нагадування уроку;
- про відкриття домашнього завдання;
- про завершення кожного розділу у рівні з результатом прогресу.
9. Технології
Можливі варіанти:
- WordPress + кастомні модулі (рекомендовано);
- або Laravel + Vue/React;
- або інша CMS з адмінкою.
Вимоги:
- швидкість роботи;
- стабільність;
- можливість розширювати без програміста.
10. Оплати через API (детально)
Платіжні етапи:
1. Покупка рівня(А1-С1)
2. Покупка уроків індивідуальних на кожні пів-рівня. (по 16 уроків, всього їх 32 у рівні) .
3. Після оплати → відкриття доступу.
4. Webhook → перевірка → запис транзакції.
5. Email підтвердження.
Потрібно реалізувати:
- Payment Init API.
- Payment Callback/Webhook API.
- Payment History для адміна.
- Refund API (опційно).
Безпека:
- HTTPS,
- цифровий підпис,
- ключі в .env.
11. Календар занять
- внутрішня система або інтеграція через API;
- створення слотів учителем;
- бронювання індивідуальних уроків тільки після оплати;
- можливість переносу.
12. Особистий кабінет
Учень:
- Мої курси
- Мої уроки
- Прогрес
- Домашні завдання
- Бронювання
- Оплати
- Тощо
Учитель:
- Статистика учнів
- Журнал уроків
- Відповіді по тестах
- Управління уроками
- Тощо
Адмін:
- Ціни
- Курси
- Користувачі
- Оплати
- Налаштування
- Тощо
13. Дизайн
- мінімалістичний,
- адаптивний,
- у стилі поточного сайту ivanenglish.com (далі доопрацювати) .
Кольори можна взяти з поточного сайту. Фото додається.
14. Вимоги до програміста
- зробити все «під ключ»;
- вся система має бути простою для редагування;
- жодних залежностей від розробника;
- документація з користування адмінкою.