Атестаційні завдання K2 ERP/Сайт курсів навчання: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Сайт курсів навчання}} | |||
= Модуль обліку навчальних курсів, студентів, реєстрацій і прогресу на сайті онлайн- або офлайн-навчання = | '''Атестаційне завдання K2 ERP — Сайт курсів навчання''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку навчальних курсів, студентів, викладачів, реєстрацій, оплат, прогресу навчання, матеріалів, розкладу занять і сертифікатів. | ||
Модуль має забезпечувати повний цикл роботи навчального центру або онлайн-школи: створення курсу, публікацію програми, реєстрацію студента, оплату, доступ до матеріалів, облік прогресу, оцінювання, формування сертифіката і звітність. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати модуль сайту курсів: курси, викладачі, студенти, групи, уроки, матеріали, реєстрації, оплати, прогрес навчання, домашні завдання, оцінки, календар занять, кабінет студента, кабінет викладача, сертифікати і звіти. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль обліку навчальних курсів, студентів, реєстрацій і прогресу на сайті онлайн- або офлайн-навчання'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для автоматизації роботи навчального центру, онлайн-школи, тренінгового центру, мовної школи, ІТ-академії або платформи курсів. | |||
Система повинна дозволяти: | |||
* вести курси; | |||
* вести категорії курсів; | |||
* вести викладачів; | |||
* вести студентів; | |||
* створювати навчальні групи; | |||
* налаштовувати формат навчання; | |||
* публікувати програму курсу; | |||
* створювати уроки; | |||
* додавати навчальні матеріали; | |||
* відкривати доступ до матеріалів після оплати; | |||
* реєструвати студентів на курси; | |||
* вести статус навчання; | |||
* відстежувати прогрес студентів; | |||
* вести відвідуваність для офлайн- або live-занять; | |||
* приймати оплати; | |||
* фіксувати часткові оплати; | |||
* формувати рахунки; | |||
* надсилати нагадування; | |||
* формувати сертифікати; | |||
* вести особистий кабінет студента; | |||
* вести кабінет викладача; | |||
* формувати звіти по курсах, студентах, оплатах і прогресу. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Студент має пройти зрозумілий шлях: вибір курсу → реєстрація → оплата → доступ до навчання → проходження уроків → оцінювання → завершення → сертифікат. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
Навчальний центр або онлайн-школа проводить курси для студентів. Курси можуть бути онлайн, офлайн або змішаними. | |||
** | |||
** онлайн; | Навчальний заклад повинен: | ||
* веде | |||
* | * публікувати курси на сайті; | ||
* | * приймати заявки студентів; | ||
* | * формувати групи; | ||
* вести розклад занять; | |||
* відкривати доступ до матеріалів; | |||
* контролювати оплату; | |||
* бачити прогрес студентів; | |||
* виставляти оцінки; | |||
* формувати сертифікати; | |||
* аналізувати ефективність курсів і викладачів. | |||
== Формати навчання == | |||
Модуль має підтримувати кілька форматів навчання: | |||
* онлайн-курс у записі; | |||
* онлайн-курс із живими заняттями; | |||
* офлайн-курс у класі; | |||
* змішаний формат; | |||
* індивідуальні заняття; | |||
* групові заняття; | |||
* інтенсив; | |||
* марафон; | |||
* корпоративне навчання. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи виглядає так: | |||
# адміністратор створює курс; | |||
# додає опис, програму, ціну і викладача; | |||
# створює уроки та навчальні матеріали; | |||
# публікує курс на сайті; | |||
# студент реєструється на курс; | |||
# система створює запис реєстрації; | |||
# студент оплачує курс повністю або частково; | |||
# після оплати студент отримує доступ до матеріалів; | |||
# студент проходить уроки; | |||
# система оновлює прогрес; | |||
# викладач перевіряє завдання або виставляє оцінки; | |||
# після завершення курсу студент отримує сертифікат; | |||
# адміністратор формує звіти. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Курси | |||
| Навчальні програми, які продаються або проводяться | |||
|- | |||
| Категорії курсів | |||
| Тематичне групування курсів | |||
|- | |||
| Викладачі | |||
| Автори або ведучі курсів | |||
|- | |||
| Студенти | |||
| Користувачі, які проходять навчання | |||
|- | |||
| Групи | |||
| Навчальні групи студентів | |||
|- | |||
| Уроки | |||
| Окремі теми або заняття курсу | |||
|- | |||
| Матеріали | |||
| Відео, файли, презентації, посилання, тести | |||
|- | |||
| Реєстрації | |||
| Записи студентів на курси | |||
|- | |||
| Оплати | |||
| Фінансові операції за навчання | |||
|- | |||
| Прогрес | |||
| Відсоток проходження курсу | |||
|- | |||
| Відвідуваність | |||
| Облік присутності на заняттях | |||
|- | |||
| Завдання | |||
| Домашні або практичні роботи | |||
|- | |||
| Оцінки | |||
| Результати навчання | |||
|- | |||
| Сертифікати | |||
| Документи про завершення курсу | |||
|- | |||
| Розклад | |||
| Календар занять і стартів курсів | |||
|- | |||
| Звіти | |||
| Аналітика навчання, оплат і результатів | |||
|} | |||
== Довідник «Категорії курсів» == | |||
Категорії допомагають структурувати курси на сайті. | |||
== Приклади категорій == | |||
* програмування; | |||
* дизайн; | |||
* маркетинг; | |||
* бізнес; | |||
* бухгалтерія; | |||
* іноземні мови; | |||
* управління; | |||
* фінанси; | |||
* особистий розвиток; | |||
* шкільні предмети; | |||
* підготовка до іспитів; | |||
* професійні курси. | |||
== Поля категорії == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва категорії | |||
| Наприклад: Програмування, Дизайн, Маркетинг | |||
|- | |||
| Опис | |||
| Короткий опис категорії | |||
|- | |||
| Батьківська категорія | |||
| Для багаторівневої структури | |||
|- | |||
| Статус | |||
| Активна або прихована | |||
|} | |||
== Довідник «Курси» == | |||
Довідник курсів містить навчальні програми. | |||
== Поля курсу == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва курсу | |||
| Назва навчальної програми | |||
|- | |||
| Категорія | |||
| Тематична група | |||
|- | |||
| Короткий опис | |||
| Для списку курсів | |||
|- | |||
| Повний опис | |||
| Детальний опис на сторінці курсу | |||
|- | |||
| Формат навчання | |||
| Онлайн, офлайн, змішаний | |||
|- | |||
| Тривалість | |||
| У годинах, днях, тижнях або місяцях | |||
|- | |||
| Вартість | |||
| Ціна курсу | |||
|- | |||
| Викладач | |||
| Основний викладач | |||
|- | |||
| Програма курсу | |||
| Теми або модулі | |||
|- | |||
| Дата старту | |||
| Якщо курс має конкретний старт | |||
|- | |||
| Максимальна кількість студентів | |||
| Для групового навчання | |||
|- | |||
| Статус | |||
| Чернетка, опубліковано, набір відкрито, завершено, архів | |||
|} | |||
== Статуси курсу == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Чернетка | |||
| Курс готується | |||
|- | |||
| Опубліковано | |||
| Курс доступний на сайті | |||
|- | |||
| Набір відкрито | |||
| Студенти можуть реєструватися | |||
|- | |||
| Набір закрито | |||
| Нові реєстрації не приймаються | |||
|- | |||
| Триває | |||
| Навчання вже почалося | |||
|- | |||
| Завершено | |||
| Курс завершений | |||
|- | |||
| Архів | |||
| Курс збережено для історії | |||
|} | |||
== Довідник «Викладачі» == | |||
Викладачі ведуть курси, перевіряють завдання та оцінюють студентів. | |||
== Поля викладача == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ | |||
| Повне ім’я викладача | |||
|- | |||
| Спеціалізація | |||
| Напрям навчання | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Email | |||
| Електронна адреса | |||
|- | |||
| Фото | |||
| Опціонально | |||
|- | |||
| Коротка біографія | |||
| Для сторінки курсу | |||
|- | |||
| Статус | |||
| Активний або архівний | |||
|} | |||
== База «Студенти» == | |||
Студенти — користувачі, які реєструються на навчання. | |||
== Поля студента == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ | |||
| Повне ім’я студента | |||
|- | |||
| Email | |||
| Основний логін або контакт | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Дата народження | |||
| Опціонально | |||
|- | |||
| Місто / країна | |||
| Опціонально | |||
|- | |||
| Статус | |||
| Активний, завершив, відрахований, архівний | |||
|- | |||
| Особистий кабінет | |||
| Посилання або обліковий запис | |||
|- | |||
| Коментар | |||
| Службові примітки | |||
|} | |||
== База «Групи» == | |||
Групи потрібні для курсів із конкретним стартом або офлайн-заняттями. | |||
== Поля групи == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва групи | |||
| Наприклад: Python-01, English-A2 | |||
|- | |||
| Курс | |||
| До якого курсу належить група | |||
|- | |||
| Викладач | |||
| Хто веде групу | |||
|- | |||
| Дата старту | |||
| Коли починається навчання | |||
|- | |||
| Дата завершення | |||
| Коли завершується | |||
|- | |||
| Максимум студентів | |||
| Обмеження кількості | |||
|- | |||
| Статус | |||
| Набір, навчається, завершена, скасована | |||
|} | |||
== Уроки курсу == | |||
Уроки або модулі формують структуру навчання. | |||
== Поля уроку == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Курс | |||
| До якого курсу належить урок | |||
|- | |||
| Назва уроку | |||
| Тема заняття | |||
|- | |||
| Номер уроку | |||
| Порядок у курсі | |||
|- | |||
| Опис | |||
| Короткий зміст | |||
|- | |||
| Тип уроку | |||
| Відео, текст, live-заняття, тест, практика | |||
|- | |||
| Тривалість | |||
| Орієнтовна тривалість | |||
|- | |||
| Доступ | |||
| Відкритий, після оплати, після попереднього уроку | |||
|- | |||
| Статус | |||
| Чернетка, опубліковано, приховано | |||
|} | |||
== Навчальні матеріали == | |||
Матеріали прив’язуються до курсу або уроку. | |||
== Типи матеріалів == | |||
* відеоурок; | |||
* PDF; | |||
* презентація; | |||
* текстовий конспект; | |||
* посилання; | |||
* файл для завантаження; | |||
* тест; | |||
* домашнє завдання; | |||
* шаблон; | |||
* архів із матеріалами. | |||
== Поля матеріалу == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва матеріалу | |||
| Назва файлу або ресурсу | |||
|- | |||
| Курс | |||
| До якого курсу належить | |||
|- | |||
| Урок | |||
| До якого уроку належить | |||
|- | |||
| Тип матеріалу | |||
| Відео, PDF, тест, файл, посилання | |||
|- | |||
| Файл або URL | |||
| Джерело матеріалу | |||
|- | |||
| Доступ | |||
| Для всіх, тільки після оплати, тільки для групи | |||
|- | |||
| Статус | |||
| Активний або прихований | |||
|} | |||
== База «Реєстрації на курси» == | |||
Реєстрація фіксує, що студент записався на курс. | |||
== Колонки журналу реєстрацій == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Студент | |||
| Хто навчається | |||
|- | |||
| Курс | |||
| На який курс записано | |||
|- | |||
| Група | |||
| Якщо курс груповий | |||
|- | |||
| Дата реєстрації | |||
| Коли студент записався | |||
|- | |||
| Статус навчання | |||
| В процесі, завершено, відраховано | |||
|- | |||
| Прогрес | |||
| Відсоток виконання | |||
|- | |||
| Оплата | |||
| Не оплачено, частково оплачено, оплачено | |||
|- | |||
| Сертифікат | |||
| Сформовано або ні | |||
|} | |||
== Поля реєстрації == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Студент | |||
| Користувач, який навчається | |||
|- | |||
| Курс | |||
| Навчальний курс | |||
|- | |||
| Група | |||
| Група навчання, якщо є | |||
|- | |||
| Дата реєстрації | |||
| Дата запису | |||
|- | |||
| Вартість | |||
| Ціна курсу для студента | |||
|- | |||
| Оплачено | |||
| Скільки студент оплатив | |||
|- | |||
| Борг | |||
| Залишок до оплати | |||
|- | |||
| Статус оплати | |||
| Не оплачено, частково оплачено, оплачено | |||
|- | |||
| Статус навчання | |||
| Зареєстрований, навчається, завершив, відрахований | |||
|- | |||
| Прогрес | |||
| Відсоток проходження | |||
|} | |||
== Статуси навчання == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Зареєстрований | |||
| Студент записався на курс | |||
|- | |||
| Очікує оплати | |||
| Доступ ще не відкрито | |||
|- | |||
| Навчається | |||
| Студент проходить курс | |||
|- | |||
| На паузі | |||
| Навчання тимчасово призупинено | |||
|- | |||
| Завершив | |||
| Студент завершив курс | |||
|- | |||
| Відрахований | |||
| Студент більше не навчається | |||
|- | |||
| Скасовано | |||
| Реєстрацію скасовано | |||
|} | |||
== Прогрес навчання == | |||
Прогрес показує, скільки курсу студент уже пройшов. | |||
== Варіанти розрахунку прогресу == | |||
* за кількістю переглянутих уроків; | |||
* за кількістю виконаних завдань; | |||
* за результатами тестів; | |||
* вручну викладачем; | |||
* комбіновано. | |||
== Формула прогресу == | |||
<pre> | |||
Прогрес = Кількість пройдених уроків / Загальна кількість уроків × 100% | |||
</pre> | |||
== Відвідуваність == | |||
Для офлайн-курсів або live-занять потрібно вести відвідуваність. | |||
== Поля відвідуваності == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Група | |||
| Навчальна група | |||
|- | |||
| Урок | |||
| Заняття | |||
|- | |||
| Студент | |||
| Хто має бути присутній | |||
|- | |||
| Дата заняття | |||
| Коли відбулося заняття | |||
|- | |||
| Статус | |||
| Присутній, відсутній, запізнився, поважна причина | |||
|- | |||
| Коментар | |||
| Примітка викладача | |||
|} | |||
== Домашні завдання == | |||
Домашні завдання дозволяють контролювати практичну частину навчання. | |||
== Поля завдання == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Курс | |||
| До якого курсу належить | |||
|- | |||
| Урок | |||
| До якого уроку належить | |||
|- | |||
| Назва завдання | |||
| Що потрібно виконати | |||
|- | |||
| Опис | |||
| Детальна інструкція | |||
|- | |||
| Дедлайн | |||
| Кінцева дата здачі | |||
|- | |||
| Максимальний бал | |||
| Якщо використовується оцінювання | |||
|} | |||
== Відповіді студентів == | |||
Студенти можуть здавати завдання через особистий кабінет. | |||
== Поля відповіді == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Студент | |||
| Хто здав завдання | |||
|- | |||
| Завдання | |||
| Яке завдання виконано | |||
|- | |||
| Файл або текст | |||
| Відповідь студента | |||
|- | |||
| Дата здачі | |||
| Коли здано | |||
|- | |||
| Статус | |||
| На перевірці, прийнято, потрібно доопрацювати | |||
|- | |||
| Оцінка | |||
| Бал або результат | |||
|- | |||
| Коментар викладача | |||
| Зворотний зв’язок | |||
|} | |||
== Оцінювання == | |||
Оцінювання може бути простим або розширеним. | |||
== Варіанти оцінювання == | |||
* зараховано / не зараховано; | |||
* бали; | |||
* відсоток; | |||
* оцінка за шкалою; | |||
* коментар викладача; | |||
* автоматичний результат тесту. | |||
== Фінанси == | |||
Модуль повинен підтримувати фінансовий облік оплат за курси. | |||
== Варіанти оплати == | |||
* повна оплата; | |||
* часткова оплата; | |||
* передоплата; | |||
* оплата частинами; | |||
* корпоративна оплата; | |||
* безкоштовний доступ; | |||
* промокод або знижка. | |||
== Способи оплати == | |||
* ручна оплата; | |||
* банківський переказ; | |||
* LiqPay; | |||
* Stripe; | |||
* PayPal; | |||
* інший платіжний шлюз. | |||
== Поля оплати == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Студент | |||
| Хто оплатив | |||
|- | |||
| Курс | |||
| За який курс оплата | |||
|- | |||
| Реєстрація | |||
| До якої реєстрації прив’язана | |||
|- | |||
| Дата оплати | |||
| Коли отримано оплату | |||
|- | |||
| Сума | |||
| Розмір оплати | |||
|- | |||
| Спосіб оплати | |||
| Ручна, картка, переказ, онлайн-шлюз | |||
|- | |||
| Статус | |||
| Очікує, оплачено, помилка, повернення | |||
|} | |||
== Доступ до матеріалів == | |||
Система повинна контролювати доступ студента до курсу. | |||
== Правила доступу == | |||
* безкоштовні матеріали доступні всім; | |||
* платні матеріали доступні після оплати; | |||
* наступний урок може відкриватися після проходження попереднього; | |||
* матеріали групи доступні тільки студентам цієї групи; | |||
* після завершення курсу доступ може залишатися або закриватися залежно від налаштувань. | |||
== Сертифікати == | |||
Сертифікат формується після завершення курсу. | |||
== Умови формування сертифіката == | |||
* студент оплатив курс; | |||
* прогрес досягнув потрібного рівня; | |||
* виконані обов’язкові завдання; | |||
* пройдено фінальний тест, якщо є; | |||
* викладач підтвердив завершення. | |||
== Поля сертифіката == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер сертифіката | |||
| Унікальний номер | |||
|- | |||
| Студент | |||
| Кому видано | |||
|- | |||
| Курс | |||
| Який курс завершено | |||
|- | |||
| Дата видачі | |||
| Коли сформовано | |||
|- | |||
| Викладач | |||
| Хто вів курс | |||
|- | |||
| Результат | |||
| Оцінка або статус завершення | |||
|- | |||
| PDF-файл | |||
| Згенерований сертифікат | |||
|} | |||
== Особистий кабінет студента == | |||
Кабінет студента є важливою частиною модуля. | |||
== Студент у кабінеті бачить == | |||
* свої курси; | |||
* статус оплати; | |||
* прогрес навчання; | |||
* доступні уроки; | |||
* навчальні матеріали; | |||
* домашні завдання; | |||
* оцінки; | |||
* коментарі викладача; | |||
* розклад занять; | |||
* сертифікати; | |||
* історію оплат. | |||
== | == Кабінет викладача == | ||
Кабінет викладача потрібен для управління навчальним процесом. | |||
== Викладач у кабінеті бачить == | |||
* свої курси; | |||
* свої групи; | |||
* список студентів; | |||
* прогрес студентів; | |||
* відвідуваність; | |||
* здані домашні завдання; | |||
* інструменти оцінювання; | |||
* коментарі до робіт; | |||
* календар занять. | |||
== Календар курсів і занять == | |||
Календар потрібен для планування стартів і live-занять. | |||
== | == У календарі потрібно бачити == | ||
* | * старт курсу; | ||
* | * заняття групи; | ||
* | * дедлайни завдань; | ||
* | * вебінари; | ||
* | * консультації; | ||
* завершення курсу; | |||
* | * дати сертифікації. | ||
* | |||
== | == Сповіщення == | ||
Система має надсилати повідомлення студентам, викладачам і адміністраторам. | |||
* студент; | == Події для сповіщень == | ||
* студент зареєструвався на курс; | |||
* отримано оплату; | |||
* відкрито доступ до матеріалів; | |||
* курс починається завтра; | |||
* заняття починається сьогодні; | |||
* наближається дедлайн завдання; | |||
* викладач перевірив завдання; | |||
* студент завершив курс; | |||
* сформовано сертифікат; | |||
* оплата прострочена. | |||
== Звіти == | |||
== Звіт «Студенти курсів» == | |||
У звіті потрібно відображати: | |||
* курс; | |||
* студента; | |||
* групу; | |||
* статус навчання; | |||
* прогрес; | |||
* статус оплати; | |||
* дату реєстрації. | |||
== Звіт «Оплати за курси» == | |||
У звіті потрібно відображати: | |||
* дату оплати; | |||
* студента; | |||
* курс; | * курс; | ||
* | * суму; | ||
* | * спосіб оплати; | ||
* статус; | |||
* | * борг. | ||
* | |||
== | == Звіт «Прогрес студентів» == | ||
У звіті потрібно відображати: | |||
* студента; | |||
* курс; | |||
* кількість пройдених уроків; | |||
* прогрес у відсотках; | |||
* кількість зданих завдань; | |||
* середню оцінку. | |||
== Звіт «Відвідуваність» == | |||
У звіті потрібно відображати: | |||
* | * групу; | ||
* | * дату заняття; | ||
* | * студента; | ||
* | * статус присутності; | ||
* | * коментар. | ||
== | == Звіт «Ефективність курсів» == | ||
* | У звіті потрібно відображати: | ||
* | |||
* | * курс; | ||
** | * кількість реєстрацій; | ||
** | * кількість оплат; | ||
* | * дохід; | ||
** | * кількість студентів, які завершили курс; | ||
** | * середній прогрес; | ||
** | * кількість виданих сертифікатів. | ||
** | |||
* | == Звіт «Робота викладачів» == | ||
** | |||
** | У звіті потрібно відображати: | ||
* | |||
* викладача; | |||
* кількість курсів; | |||
* кількість студентів; | |||
* кількість перевірених завдань; | |||
* середній прогрес студентів; | |||
* оцінки або відгуки, якщо реалізовано. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко і без перезавантаження сторінок. | |||
Через AJAX мають працювати: | |||
* реєстрація студента; | |||
* вибір курсу; | |||
* фільтрація курсів; | |||
* створення реєстрації; | |||
* фіксація оплати; | |||
* оновлення прогресу; | |||
* відкриття доступу до матеріалів; | |||
* здача домашнього завдання; | |||
* перевірка завдання; | |||
* виставлення оцінки; | |||
* формування сертифіката; | |||
* фільтрація звітів; | |||
* оновлення календаря. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі дії. | |||
Журнал змін має зберігати: | |||
* хто створив курс; | |||
* хто змінив вартість курсу; | |||
* хто додав урок; | |||
* хто додав матеріал; | |||
* хто зареєстрував студента; | |||
* хто зафіксував оплату; | |||
* хто відкрив доступ до курсу; | |||
* хто змінив прогрес; | |||
* хто виставив оцінку; | |||
* хто сформував сертифікат; | |||
* хто скасував реєстрацію; | |||
* хто експортував звіт; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати розмежування прав. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Адміністратор навчального центру | |||
| Керує курсами, студентами, викладачами, оплатами, групами і звітами | |||
|- | |||
| Менеджер | |||
| Реєструє студентів, фіксує оплати, працює з заявками і сповіщеннями | |||
|- | |||
| Викладач | |||
| Бачить свої курси, групи, студентів, завдання, прогрес і оцінки | |||
|- | |||
| Студент | |||
| Переглядає свої курси, матеріали, прогрес, завдання, оплати і сертифікати | |||
|- | |||
| Бухгалтер | |||
| Переглядає рахунки, оплати, борги і фінансові звіти | |||
|- | |||
| Адміністратор системи | |||
| Налаштовує права, довідники, шаблони сертифікатів і службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | |||
!Параметр | {| class="wikitable" style="width:100%;" | ||
!Опис | ! Параметр | ||
! Опис | |||
|- | |||
| Бекенд | |||
| K2 Cloud ERP на Python або PHP | |||
|- | |||
| База даних | |||
| PostgreSQL або MySQL | |||
|- | |||
| Фронтенд | |||
| HTML5, JavaScript | |||
|- | |- | ||
| | | AJAX | ||
| | | Fetch API або Axios | ||
|- | |- | ||
| | | UI-компоненти | ||
| | | DataTables для реєстрацій і студентів, Select2 для вибору курсів, FullCalendar для графіка курсів | ||
|- | |- | ||
| | | Матеріали | ||
| | | Завантаження PDF, відео, презентацій, файлів і посилань | ||
|- | |- | ||
| | | Оплати | ||
| | | Інтеграція з платіжними шлюзами, опціонально | ||
|- | |- | ||
|Друк | | Друк | ||
| | | PDF-сертифікати, рахунки, списки студентів | ||
|- | |||
| Експорт | |||
| Excel або PDF для звітів | |||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* категорії курсів; | |||
* курси; | |||
* викладачі; | |||
* студенти; | |||
* групи; | |||
* уроки; | |||
* навчальні матеріали; | |||
* реєстрації на курси; | |||
* оплати; | |||
* прогрес навчання; | |||
* відвідуваність; | |||
* домашні завдання; | |||
* відповіді студентів; | |||
* оцінки; | |||
* сертифікати; | |||
* розклад; | |||
* сповіщення; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити категорію курсів; | |||
# створити викладача; | |||
# створити курс; | |||
# додати програму курсу; | |||
# додати уроки; | |||
# додати навчальні матеріали; | |||
# створити студента; | |||
# зареєструвати студента на курс; | |||
# сформувати рахунок або суму до оплати; | |||
# зафіксувати часткову оплату; | |||
# зафіксувати повну оплату; | |||
# відкрити доступ до матеріалів після оплати; | |||
# оновити прогрес студента; | |||
# створити домашнє завдання; | |||
# здати відповідь від студента; | |||
# виставити оцінку; | |||
# завершити курс для студента; | |||
# сформувати сертифікат; | |||
# сформувати звіт по студентах; | |||
# сформувати звіт по оплатах; | |||
# сформувати звіт по прогресу; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |||
| Реалізація обліку курсів, студентів і викладачів | |||
| 20 | |||
| Категорії, курси, програма, уроки, викладачі, студенти, групи | |||
|- | |||
| Управління реєстраціями і прогресом навчання | |||
| 20 | |||
| Реєстрації, статуси навчання, прогрес, відвідуваність, завдання, оцінки | |||
|- | |||
| Фінансовий облік оплат курсів | |||
| 20 | |||
| Вартість, рахунки, часткові оплати, повні оплати, борги, статуси оплат | |||
|- | |- | ||
| | | Генерація сертифікатів про завершення | ||
|20 | | 20 | ||
| Умови завершення, сертифікат, PDF, номер сертифіката, дата видачі | |||
|- | |- | ||
| | | Інтерактивність через AJAX і особисті кабінети | ||
|20 | | 20 | ||
| AJAX-реєстрації, прогрес, завдання, оцінки, кабінет студента, кабінет викладача | |||
|- | |- | ||
| | ! Разом | ||
| | ! 100 | ||
! Максимальна оцінка | |||
|} | |||
== Шкала оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Бали | |||
! Рівень | |||
! Опис | |||
|- | |- | ||
| | | 90–100 | ||
| | | Відмінно | ||
| Модуль повністю працює: курси, викладачі, студенти, реєстрації, оплати, прогрес, матеріали, кабінети, сертифікати й звіти реалізовані коректно | |||
|- | |- | ||
| | | 75–89 | ||
| | | Добре | ||
| Основна логіка працює, є незначні недоліки, які не руйнують навчальний процес | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: курси, студенти, реєстрації, оплати, прогрес або сертифікати | |||
|} | |} | ||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити курс; | |||
* неможливо створити викладача; | |||
* неможливо створити студента; | |||
* неможливо зареєструвати студента на курс; | |||
* реєстрація не прив’язується до курсу; | |||
* реєстрація не прив’язується до студента; | |||
* оплата не прив’язується до реєстрації; | |||
* часткова оплата не змінює борг; | |||
* доступ до платних матеріалів відкривається без оплати, якщо це заборонено правилами; | |||
* прогрес не оновлюється; | |||
* завершення курсу не фіксується; | |||
* сертифікат формується без виконання умов завершення; | |||
* звіти не відповідають фактичним реєстраціям, оплатам і прогресу; | |||
* зміни курсів, оплат, прогресу і сертифікатів не логуються. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл навчання: курс → студент → реєстрація → оплата → доступ → прогрес → завершення → сертифікат → звіт. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений модуль сайту курсів навчання в K2 ERP. | |||
Модуль має підтримувати категорії курсів, курси, викладачів, студентів, групи, уроки, навчальні матеріали, реєстрації, оплати, прогрес, відвідуваність, домашні завдання, відповіді студентів, оцінки, сертифікати, розклад, сповіщення, особисті кабінети, звіти, AJAX-інтерактив і логування змін. | |||
== Примітка == | == Примітка == | ||
ERP для курсів навчання потрібна школам, тренінговим центрам, онлайн-академіям, мовним школам, ІТ-школам, автошколам і корпоративним навчальним центрам. | |||
Такий модуль дозволяє масштабувати навчання, контролювати оплату, бачити прогрес студентів, зменшити ручну роботу адміністратора і підвищити якість сервісу. | |||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль сайту курсів навчання | |||
|- | |||
| Які довідники потрібні? | |||
| Категорії курсів, курси, викладачі, студенти, групи | |||
|- | |||
| Який головний процес? | |||
| Реєстрація студента на курс, оплата, навчання, прогрес і сертифікат | |||
|- | |||
| Що потрібно для онлайн-курсу? | |||
| Уроки, матеріали, доступ після оплати, прогрес | |||
|- | |||
| Що потрібно для офлайн-курсу? | |||
| Групи, розклад, відвідуваність, викладач | |||
|- | |||
| Які фінанси потрібні? | |||
| Вартість курсу, рахунки, часткові оплати, повні оплати, борги | |||
|- | |||
| Які звіти потрібні? | |||
| Студенти, оплати, прогрес, відвідуваність, ефективність курсів, робота викладачів | |||
|- | |||
| Що є критичною вимогою? | |||
| Студент має отримати доступ, прогрес і сертифікат тільки за правильними правилами курсу | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Навчальний заклад]] | |||
* [[CRM]] | |||
* [[Каса]] | |||
* [[Сертифікат]] | |||
* [[Студент]] | |||
* [[Викладач]] | |||
* [[Курс]] | |||
* [[Розклад]] | |||
* [[Особистий кабінет]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Освіта]] | |||
[[Категорія:Онлайн-навчання]] | |||
[[Категорія:Курси]] | |||
[[Категорія:CRM]] | |||
[[Категорія:Корпоративна Wiki]] | |||
Поточна версія на 20:37, 1 травня 2026
Атестаційне завдання K2 ERP — Сайт курсів навчання — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку навчальних курсів, студентів, викладачів, реєстрацій, оплат, прогресу навчання, матеріалів, розкладу занять і сертифікатів.
Модуль має забезпечувати повний цикл роботи навчального центру або онлайн-школи: створення курсу, публікацію програми, реєстрацію студента, оплату, доступ до матеріалів, облік прогресу, оцінювання, формування сертифіката і звітність.
Коротко. Потрібно реалізувати модуль сайту курсів: курси, викладачі, студенти, групи, уроки, матеріали, реєстрації, оплати, прогрес навчання, домашні завдання, оцінки, календар занять, кабінет студента, кабінет викладача, сертифікати і звіти.
Назва завдання
Модуль обліку навчальних курсів, студентів, реєстрацій і прогресу на сайті онлайн- або офлайн-навчання.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи навчального центру, онлайн-школи, тренінгового центру, мовної школи, ІТ-академії або платформи курсів.
Система повинна дозволяти:
- вести курси;
- вести категорії курсів;
- вести викладачів;
- вести студентів;
- створювати навчальні групи;
- налаштовувати формат навчання;
- публікувати програму курсу;
- створювати уроки;
- додавати навчальні матеріали;
- відкривати доступ до матеріалів після оплати;
- реєструвати студентів на курси;
- вести статус навчання;
- відстежувати прогрес студентів;
- вести відвідуваність для офлайн- або live-занять;
- приймати оплати;
- фіксувати часткові оплати;
- формувати рахунки;
- надсилати нагадування;
- формувати сертифікати;
- вести особистий кабінет студента;
- вести кабінет викладача;
- формувати звіти по курсах, студентах, оплатах і прогресу.
Головний принцип. Студент має пройти зрозумілий шлях: вибір курсу → реєстрація → оплата → доступ до навчання → проходження уроків → оцінювання → завершення → сертифікат.
Реальний бізнес-контекст
Навчальний центр або онлайн-школа проводить курси для студентів. Курси можуть бути онлайн, офлайн або змішаними.
Навчальний заклад повинен:
- публікувати курси на сайті;
- приймати заявки студентів;
- формувати групи;
- вести розклад занять;
- відкривати доступ до матеріалів;
- контролювати оплату;
- бачити прогрес студентів;
- виставляти оцінки;
- формувати сертифікати;
- аналізувати ефективність курсів і викладачів.
Формати навчання
Модуль має підтримувати кілька форматів навчання:
- онлайн-курс у записі;
- онлайн-курс із живими заняттями;
- офлайн-курс у класі;
- змішаний формат;
- індивідуальні заняття;
- групові заняття;
- інтенсив;
- марафон;
- корпоративне навчання.
Основний бізнес-процес
Типовий процес роботи виглядає так:
- адміністратор створює курс;
- додає опис, програму, ціну і викладача;
- створює уроки та навчальні матеріали;
- публікує курс на сайті;
- студент реєструється на курс;
- система створює запис реєстрації;
- студент оплачує курс повністю або частково;
- після оплати студент отримує доступ до матеріалів;
- студент проходить уроки;
- система оновлює прогрес;
- викладач перевіряє завдання або виставляє оцінки;
- після завершення курсу студент отримує сертифікат;
- адміністратор формує звіти.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Курси | Навчальні програми, які продаються або проводяться |
| Категорії курсів | Тематичне групування курсів |
| Викладачі | Автори або ведучі курсів |
| Студенти | Користувачі, які проходять навчання |
| Групи | Навчальні групи студентів |
| Уроки | Окремі теми або заняття курсу |
| Матеріали | Відео, файли, презентації, посилання, тести |
| Реєстрації | Записи студентів на курси |
| Оплати | Фінансові операції за навчання |
| Прогрес | Відсоток проходження курсу |
| Відвідуваність | Облік присутності на заняттях |
| Завдання | Домашні або практичні роботи |
| Оцінки | Результати навчання |
| Сертифікати | Документи про завершення курсу |
| Розклад | Календар занять і стартів курсів |
| Звіти | Аналітика навчання, оплат і результатів |
Довідник «Категорії курсів»
Категорії допомагають структурувати курси на сайті.
Приклади категорій
- програмування;
- дизайн;
- маркетинг;
- бізнес;
- бухгалтерія;
- іноземні мови;
- управління;
- фінанси;
- особистий розвиток;
- шкільні предмети;
- підготовка до іспитів;
- професійні курси.
Поля категорії
| Поле | Опис |
|---|---|
| Назва категорії | Наприклад: Програмування, Дизайн, Маркетинг |
| Опис | Короткий опис категорії |
| Батьківська категорія | Для багаторівневої структури |
| Статус | Активна або прихована |
Довідник «Курси»
Довідник курсів містить навчальні програми.
Поля курсу
| Поле | Опис |
|---|---|
| Назва курсу | Назва навчальної програми |
| Категорія | Тематична група |
| Короткий опис | Для списку курсів |
| Повний опис | Детальний опис на сторінці курсу |
| Формат навчання | Онлайн, офлайн, змішаний |
| Тривалість | У годинах, днях, тижнях або місяцях |
| Вартість | Ціна курсу |
| Викладач | Основний викладач |
| Програма курсу | Теми або модулі |
| Дата старту | Якщо курс має конкретний старт |
| Максимальна кількість студентів | Для групового навчання |
| Статус | Чернетка, опубліковано, набір відкрито, завершено, архів |
Статуси курсу
| Статус | Значення |
|---|---|
| Чернетка | Курс готується |
| Опубліковано | Курс доступний на сайті |
| Набір відкрито | Студенти можуть реєструватися |
| Набір закрито | Нові реєстрації не приймаються |
| Триває | Навчання вже почалося |
| Завершено | Курс завершений |
| Архів | Курс збережено для історії |
Довідник «Викладачі»
Викладачі ведуть курси, перевіряють завдання та оцінюють студентів.
Поля викладача
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я викладача |
| Спеціалізація | Напрям навчання |
| Телефон | Контактний номер |
| Електронна адреса | |
| Фото | Опціонально |
| Коротка біографія | Для сторінки курсу |
| Статус | Активний або архівний |
База «Студенти»
Студенти — користувачі, які реєструються на навчання.
Поля студента
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я студента |
| Основний логін або контакт | |
| Телефон | Контактний номер |
| Дата народження | Опціонально |
| Місто / країна | Опціонально |
| Статус | Активний, завершив, відрахований, архівний |
| Особистий кабінет | Посилання або обліковий запис |
| Коментар | Службові примітки |
База «Групи»
Групи потрібні для курсів із конкретним стартом або офлайн-заняттями.
Поля групи
| Поле | Опис |
|---|---|
| Назва групи | Наприклад: Python-01, English-A2 |
| Курс | До якого курсу належить група |
| Викладач | Хто веде групу |
| Дата старту | Коли починається навчання |
| Дата завершення | Коли завершується |
| Максимум студентів | Обмеження кількості |
| Статус | Набір, навчається, завершена, скасована |
Уроки курсу
Уроки або модулі формують структуру навчання.
Поля уроку
| Поле | Опис |
|---|---|
| Курс | До якого курсу належить урок |
| Назва уроку | Тема заняття |
| Номер уроку | Порядок у курсі |
| Опис | Короткий зміст |
| Тип уроку | Відео, текст, live-заняття, тест, практика |
| Тривалість | Орієнтовна тривалість |
| Доступ | Відкритий, після оплати, після попереднього уроку |
| Статус | Чернетка, опубліковано, приховано |
Навчальні матеріали
Матеріали прив’язуються до курсу або уроку.
Типи матеріалів
- відеоурок;
- PDF;
- презентація;
- текстовий конспект;
- посилання;
- файл для завантаження;
- тест;
- домашнє завдання;
- шаблон;
- архів із матеріалами.
Поля матеріалу
| Поле | Опис |
|---|---|
| Назва матеріалу | Назва файлу або ресурсу |
| Курс | До якого курсу належить |
| Урок | До якого уроку належить |
| Тип матеріалу | Відео, PDF, тест, файл, посилання |
| Файл або URL | Джерело матеріалу |
| Доступ | Для всіх, тільки після оплати, тільки для групи |
| Статус | Активний або прихований |
База «Реєстрації на курси»
Реєстрація фіксує, що студент записався на курс.
Колонки журналу реєстрацій
| Колонка | Опис |
|---|---|
| Студент | Хто навчається |
| Курс | На який курс записано |
| Група | Якщо курс груповий |
| Дата реєстрації | Коли студент записався |
| Статус навчання | В процесі, завершено, відраховано |
| Прогрес | Відсоток виконання |
| Оплата | Не оплачено, частково оплачено, оплачено |
| Сертифікат | Сформовано або ні |
Поля реєстрації
| Поле | Опис |
|---|---|
| Студент | Користувач, який навчається |
| Курс | Навчальний курс |
| Група | Група навчання, якщо є |
| Дата реєстрації | Дата запису |
| Вартість | Ціна курсу для студента |
| Оплачено | Скільки студент оплатив |
| Борг | Залишок до оплати |
| Статус оплати | Не оплачено, частково оплачено, оплачено |
| Статус навчання | Зареєстрований, навчається, завершив, відрахований |
| Прогрес | Відсоток проходження |
Статуси навчання
| Статус | Значення |
|---|---|
| Зареєстрований | Студент записався на курс |
| Очікує оплати | Доступ ще не відкрито |
| Навчається | Студент проходить курс |
| На паузі | Навчання тимчасово призупинено |
| Завершив | Студент завершив курс |
| Відрахований | Студент більше не навчається |
| Скасовано | Реєстрацію скасовано |
Прогрес навчання
Прогрес показує, скільки курсу студент уже пройшов.
Варіанти розрахунку прогресу
- за кількістю переглянутих уроків;
- за кількістю виконаних завдань;
- за результатами тестів;
- вручну викладачем;
- комбіновано.
Формула прогресу
Прогрес = Кількість пройдених уроків / Загальна кількість уроків × 100%
Відвідуваність
Для офлайн-курсів або live-занять потрібно вести відвідуваність.
Поля відвідуваності
| Поле | Опис |
|---|---|
| Група | Навчальна група |
| Урок | Заняття |
| Студент | Хто має бути присутній |
| Дата заняття | Коли відбулося заняття |
| Статус | Присутній, відсутній, запізнився, поважна причина |
| Коментар | Примітка викладача |
Домашні завдання
Домашні завдання дозволяють контролювати практичну частину навчання.
Поля завдання
| Поле | Опис |
|---|---|
| Курс | До якого курсу належить |
| Урок | До якого уроку належить |
| Назва завдання | Що потрібно виконати |
| Опис | Детальна інструкція |
| Дедлайн | Кінцева дата здачі |
| Максимальний бал | Якщо використовується оцінювання |
Відповіді студентів
Студенти можуть здавати завдання через особистий кабінет.
Поля відповіді
| Поле | Опис |
|---|---|
| Студент | Хто здав завдання |
| Завдання | Яке завдання виконано |
| Файл або текст | Відповідь студента |
| Дата здачі | Коли здано |
| Статус | На перевірці, прийнято, потрібно доопрацювати |
| Оцінка | Бал або результат |
| Коментар викладача | Зворотний зв’язок |
Оцінювання
Оцінювання може бути простим або розширеним.
Варіанти оцінювання
- зараховано / не зараховано;
- бали;
- відсоток;
- оцінка за шкалою;
- коментар викладача;
- автоматичний результат тесту.
Фінанси
Модуль повинен підтримувати фінансовий облік оплат за курси.
Варіанти оплати
- повна оплата;
- часткова оплата;
- передоплата;
- оплата частинами;
- корпоративна оплата;
- безкоштовний доступ;
- промокод або знижка.
Способи оплати
- ручна оплата;
- банківський переказ;
- LiqPay;
- Stripe;
- PayPal;
- інший платіжний шлюз.
Поля оплати
| Поле | Опис |
|---|---|
| Студент | Хто оплатив |
| Курс | За який курс оплата |
| Реєстрація | До якої реєстрації прив’язана |
| Дата оплати | Коли отримано оплату |
| Сума | Розмір оплати |
| Спосіб оплати | Ручна, картка, переказ, онлайн-шлюз |
| Статус | Очікує, оплачено, помилка, повернення |
Доступ до матеріалів
Система повинна контролювати доступ студента до курсу.
Правила доступу
- безкоштовні матеріали доступні всім;
- платні матеріали доступні після оплати;
- наступний урок може відкриватися після проходження попереднього;
- матеріали групи доступні тільки студентам цієї групи;
- після завершення курсу доступ може залишатися або закриватися залежно від налаштувань.
Сертифікати
Сертифікат формується після завершення курсу.
Умови формування сертифіката
- студент оплатив курс;
- прогрес досягнув потрібного рівня;
- виконані обов’язкові завдання;
- пройдено фінальний тест, якщо є;
- викладач підтвердив завершення.
Поля сертифіката
| Поле | Опис |
|---|---|
| Номер сертифіката | Унікальний номер |
| Студент | Кому видано |
| Курс | Який курс завершено |
| Дата видачі | Коли сформовано |
| Викладач | Хто вів курс |
| Результат | Оцінка або статус завершення |
| PDF-файл | Згенерований сертифікат |
Особистий кабінет студента
Кабінет студента є важливою частиною модуля.
Студент у кабінеті бачить
- свої курси;
- статус оплати;
- прогрес навчання;
- доступні уроки;
- навчальні матеріали;
- домашні завдання;
- оцінки;
- коментарі викладача;
- розклад занять;
- сертифікати;
- історію оплат.
Кабінет викладача
Кабінет викладача потрібен для управління навчальним процесом.
Викладач у кабінеті бачить
- свої курси;
- свої групи;
- список студентів;
- прогрес студентів;
- відвідуваність;
- здані домашні завдання;
- інструменти оцінювання;
- коментарі до робіт;
- календар занять.
Календар курсів і занять
Календар потрібен для планування стартів і live-занять.
У календарі потрібно бачити
- старт курсу;
- заняття групи;
- дедлайни завдань;
- вебінари;
- консультації;
- завершення курсу;
- дати сертифікації.
Сповіщення
Система має надсилати повідомлення студентам, викладачам і адміністраторам.
Події для сповіщень
- студент зареєструвався на курс;
- отримано оплату;
- відкрито доступ до матеріалів;
- курс починається завтра;
- заняття починається сьогодні;
- наближається дедлайн завдання;
- викладач перевірив завдання;
- студент завершив курс;
- сформовано сертифікат;
- оплата прострочена.
Звіти
Звіт «Студенти курсів»
У звіті потрібно відображати:
- курс;
- студента;
- групу;
- статус навчання;
- прогрес;
- статус оплати;
- дату реєстрації.
Звіт «Оплати за курси»
У звіті потрібно відображати:
- дату оплати;
- студента;
- курс;
- суму;
- спосіб оплати;
- статус;
- борг.
Звіт «Прогрес студентів»
У звіті потрібно відображати:
- студента;
- курс;
- кількість пройдених уроків;
- прогрес у відсотках;
- кількість зданих завдань;
- середню оцінку.
Звіт «Відвідуваність»
У звіті потрібно відображати:
- групу;
- дату заняття;
- студента;
- статус присутності;
- коментар.
Звіт «Ефективність курсів»
У звіті потрібно відображати:
- курс;
- кількість реєстрацій;
- кількість оплат;
- дохід;
- кількість студентів, які завершили курс;
- середній прогрес;
- кількість виданих сертифікатів.
Звіт «Робота викладачів»
У звіті потрібно відображати:
- викладача;
- кількість курсів;
- кількість студентів;
- кількість перевірених завдань;
- середній прогрес студентів;
- оцінки або відгуки, якщо реалізовано.
AJAX-інтерактив
Інтерфейс має працювати швидко і без перезавантаження сторінок.
Через AJAX мають працювати:
- реєстрація студента;
- вибір курсу;
- фільтрація курсів;
- створення реєстрації;
- фіксація оплати;
- оновлення прогресу;
- відкриття доступу до матеріалів;
- здача домашнього завдання;
- перевірка завдання;
- виставлення оцінки;
- формування сертифіката;
- фільтрація звітів;
- оновлення календаря.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив курс;
- хто змінив вартість курсу;
- хто додав урок;
- хто додав матеріал;
- хто зареєстрував студента;
- хто зафіксував оплату;
- хто відкрив доступ до курсу;
- хто змінив прогрес;
- хто виставив оцінку;
- хто сформував сертифікат;
- хто скасував реєстрацію;
- хто експортував звіт;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Адміністратор навчального центру | Керує курсами, студентами, викладачами, оплатами, групами і звітами |
| Менеджер | Реєструє студентів, фіксує оплати, працює з заявками і сповіщеннями |
| Викладач | Бачить свої курси, групи, студентів, завдання, прогрес і оцінки |
| Студент | Переглядає свої курси, матеріали, прогрес, завдання, оплати і сертифікати |
| Бухгалтер | Переглядає рахунки, оплати, борги і фінансові звіти |
| Адміністратор системи | Налаштовує права, довідники, шаблони сертифікатів і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для реєстрацій і студентів, Select2 для вибору курсів, FullCalendar для графіка курсів |
| Матеріали | Завантаження PDF, відео, презентацій, файлів і посилань |
| Оплати | Інтеграція з платіжними шлюзами, опціонально |
| Друк | PDF-сертифікати, рахунки, списки студентів |
| Експорт | Excel або PDF для звітів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- категорії курсів;
- курси;
- викладачі;
- студенти;
- групи;
- уроки;
- навчальні матеріали;
- реєстрації на курси;
- оплати;
- прогрес навчання;
- відвідуваність;
- домашні завдання;
- відповіді студентів;
- оцінки;
- сертифікати;
- розклад;
- сповіщення;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити категорію курсів;
- створити викладача;
- створити курс;
- додати програму курсу;
- додати уроки;
- додати навчальні матеріали;
- створити студента;
- зареєструвати студента на курс;
- сформувати рахунок або суму до оплати;
- зафіксувати часткову оплату;
- зафіксувати повну оплату;
- відкрити доступ до матеріалів після оплати;
- оновити прогрес студента;
- створити домашнє завдання;
- здати відповідь від студента;
- виставити оцінку;
- завершити курс для студента;
- сформувати сертифікат;
- сформувати звіт по студентах;
- сформувати звіт по оплатах;
- сформувати звіт по прогресу;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація обліку курсів, студентів і викладачів | 20 | Категорії, курси, програма, уроки, викладачі, студенти, групи |
| Управління реєстраціями і прогресом навчання | 20 | Реєстрації, статуси навчання, прогрес, відвідуваність, завдання, оцінки |
| Фінансовий облік оплат курсів | 20 | Вартість, рахунки, часткові оплати, повні оплати, борги, статуси оплат |
| Генерація сертифікатів про завершення | 20 | Умови завершення, сертифікат, PDF, номер сертифіката, дата видачі |
| Інтерактивність через AJAX і особисті кабінети | 20 | AJAX-реєстрації, прогрес, завдання, оцінки, кабінет студента, кабінет викладача |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: курси, викладачі, студенти, реєстрації, оплати, прогрес, матеріали, кабінети, сертифікати й звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують навчальний процес |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: курси, студенти, реєстрації, оплати, прогрес або сертифікати |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити курс;
- неможливо створити викладача;
- неможливо створити студента;
- неможливо зареєструвати студента на курс;
- реєстрація не прив’язується до курсу;
- реєстрація не прив’язується до студента;
- оплата не прив’язується до реєстрації;
- часткова оплата не змінює борг;
- доступ до платних матеріалів відкривається без оплати, якщо це заборонено правилами;
- прогрес не оновлюється;
- завершення курсу не фіксується;
- сертифікат формується без виконання умов завершення;
- звіти не відповідають фактичним реєстраціям, оплатам і прогресу;
- зміни курсів, оплат, прогресу і сертифікатів не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл навчання: курс → студент → реєстрація → оплата → доступ → прогрес → завершення → сертифікат → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль сайту курсів навчання в K2 ERP.
Модуль має підтримувати категорії курсів, курси, викладачів, студентів, групи, уроки, навчальні матеріали, реєстрації, оплати, прогрес, відвідуваність, домашні завдання, відповіді студентів, оцінки, сертифікати, розклад, сповіщення, особисті кабінети, звіти, AJAX-інтерактив і логування змін.
Примітка
ERP для курсів навчання потрібна школам, тренінговим центрам, онлайн-академіям, мовним школам, ІТ-школам, автошколам і корпоративним навчальним центрам.
Такий модуль дозволяє масштабувати навчання, контролювати оплату, бачити прогрес студентів, зменшити ручну роботу адміністратора і підвищити якість сервісу.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль сайту курсів навчання |
| Які довідники потрібні? | Категорії курсів, курси, викладачі, студенти, групи |
| Який головний процес? | Реєстрація студента на курс, оплата, навчання, прогрес і сертифікат |
| Що потрібно для онлайн-курсу? | Уроки, матеріали, доступ після оплати, прогрес |
| Що потрібно для офлайн-курсу? | Групи, розклад, відвідуваність, викладач |
| Які фінанси потрібні? | Вартість курсу, рахунки, часткові оплати, повні оплати, борги |
| Які звіти потрібні? | Студенти, оплати, прогрес, відвідуваність, ефективність курсів, робота викладачів |
| Що є критичною вимогою? | Студент має отримати доступ, прогрес і сертифікат тільки за правильними правилами курсу |