Атестаційні завдання K2 ERP/Сайт курсів навчання: відмінності між версіями

Первинна публікація
 
Немає опису редагування
 
Рядок 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-файл
| Згенерований сертифікат
|}
 
== Особистий кабінет студента ==


Необхідно:
Кабінет студента є важливою частиною модуля.


* вести базу курсів і викладачів;
== Студент у кабінеті бачить ==
* організувати реєстрацію студентів на курси;
* відслідковувати прогрес студентів;
* приймати платежі і вести фінансовий облік.


== Основні завдання ==
* свої курси;
* статус оплати;
* прогрес навчання;
* доступні уроки;
* навчальні матеріали;
* домашні завдання;
* оцінки;
* коментарі викладача;
* розклад занять;
* сертифікати;
* історію оплат.


=== 1. Структура довідників ===
== Кабінет викладача ==


==== Довідник «Курси» ====
Кабінет викладача потрібен для управління навчальним процесом.
Поля довідника:


* назва курсу;
== Викладач у кабінеті бачить ==
* опис курсу;
* формат навчання:
** онлайн;
** офлайн;
* тривалість курсу:
** в годинах;
** в днях;
* вартість курсу;
* програма навчання — основні теми;
* викладач.


==== Довідник «Викладачі» ====
* свої курси;
Поля довідника:
* свої групи;
* список студентів;
* прогрес студентів;
* відвідуваність;
* здані домашні завдання;
* інструменти оцінювання;
* коментарі до робіт;
* календар занять.


* ПІБ;
== Календар курсів і занять ==
* спеціалізація;
* телефон;
* email;
* фото — опціонально;
* коротка біографія.


=== 2. База «Студенти» ===
Календар потрібен для планування стартів і live-занять.


==== Колонки бази ====
== У календарі потрібно бачити ==


* ПІБ;
* старт курсу;
* email;
* заняття групи;
* телефон;
* дедлайни завдань;
* дата народження;
* вебінари;
* статус:
* консультації;
** активний;
* завершення курсу;
** завершив;
* дати сертифікації.
** відрахований;
* додатково:
** посилання на профіль — особистий кабінет.


=== 3. База «Реєстрації на курси» ===
== Сповіщення ==


==== Колонки бази ====
Система має надсилати повідомлення студентам, викладачам і адміністраторам.


* студент;
== Події для сповіщень ==
 
* студент зареєструвався на курс;
* отримано оплату;
* відкрито доступ до матеріалів;
* курс починається завтра;
* заняття починається сьогодні;
* наближається дедлайн завдання;
* викладач перевірив завдання;
* студент завершив курс;
* сформовано сертифікат;
* оплата прострочена.
 
== Звіти ==
 
== Звіт «Студенти курсів» ==
 
У звіті потрібно відображати:
 
* курс;
* студента;
* групу;
* статус навчання;
* прогрес;
* статус оплати;
* дату реєстрації.
 
== Звіт «Оплати за курси» ==
 
У звіті потрібно відображати:
 
* дату оплати;
* студента;
* курс;
* курс;
* дата реєстрації;
* суму;
* статус навчання:
* спосіб оплати;
** в процесі;
* статус;
** завершено;
* борг.
** відраховано;
* прогрес — % виконання, якщо онлайн-курс;
* оплата:
** так;
** ні;
* сума сплати.


==== Функціонал ====
== Звіт «Прогрес студентів» ==


* онлайн-реєстрація через сайт;
У звіті потрібно відображати:
* прив’язка оплати до реєстрації;
* формування сертифіката після завершення курсу.


=== 4. Навчальні матеріали, опціонально ===
* студента;
* курс;
* кількість пройдених уроків;
* прогрес у відсотках;
* кількість зданих завдань;
* середню оцінку.


* файли і відео-уроки, прив’язані до курсу;
== Звіт «Відвідуваність» ==
* можливість відкривати доступ студенту тільки після оплати;
* відстеження:
** перегляду відео;
** пройдених тем.


=== 5. Фінанси ===
У звіті потрібно відображати:
Функціонал:


* генерація рахунків за курси;
* групу;
* оплата:
* дату заняття;
** онлайн через LiqPay, Stripe, PayPal або інший шлюз;
* студента;
** вручну;
* статус присутності;
* статистика платежів за курси.
* коментар.


=== 6. Додаткові функції ===
== Звіт «Ефективність курсів» ==


* робота через AJAX для швидкої реєстрації і оновлення прогресу;
У звіті потрібно відображати:
* календар старту курсів і занять — FullCalendar;
 
* автоматичне нагадування студентам:
* курс;
** про початок курсу;
* кількість реєстрацій;
** про дедлайни завдань;
* кількість оплат;
* особистий кабінет студента:
* дохід;
** мої курси;
* кількість студентів, які завершили курс;
** прогрес навчання;
* середній прогрес;
** оплати;
* кількість виданих сертифікатів.
** завантаження сертифікатів;
 
* кабінет викладача:
== Звіт «Робота викладачів» ==
** список курсів і студентів;
 
** оцінювання студентів;
У звіті потрібно відображати:
** комунікація зі студентами.
 
* викладача;
* кількість курсів;
* кількість студентів;
* кількість перевірених завдань;
* середній прогрес студентів;
* оцінки або відгуки, якщо реалізовано.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко і без перезавантаження сторінок.
 
Через AJAX мають працювати:
 
* реєстрація студента;
* вибір курсу;
* фільтрація курсів;
* створення реєстрації;
* фіксація оплати;
* оновлення прогресу;
* відкриття доступу до матеріалів;
* здача домашнього завдання;
* перевірка завдання;
* виставлення оцінки;
* формування сертифіката;
* фільтрація звітів;
* оновлення календаря.
 
== Логування змін ==
 
Модуль повинен фіксувати важливі дії.
 
Журнал змін має зберігати:
 
* хто створив курс;
* хто змінив вартість курсу;
* хто додав урок;
* хто додав матеріал;
* хто зареєстрував студента;
* хто зафіксував оплату;
* хто відкрив доступ до курсу;
* хто змінив прогрес;
* хто виставив оцінку;
* хто сформував сертифікат;
* хто скасував реєстрацію;
* хто експортував звіт;
* дату й час дії;
* старе та нове значення, якщо це можливо.
 
== Права доступу ==
 
Модуль має підтримувати розмежування прав.
 
{| class="wikitable" style="width:100%;"
! Роль
! Можливості
|-
| Адміністратор навчального центру
| Керує курсами, студентами, викладачами, оплатами, групами і звітами
|-
| Менеджер
| Реєструє студентів, фіксує оплати, працює з заявками і сповіщеннями
|-
| Викладач
| Бачить свої курси, групи, студентів, завдання, прогрес і оцінки
|-
| Студент
| Переглядає свої курси, матеріали, прогрес, завдання, оплати і сертифікати
|-
| Бухгалтер
| Переглядає рахунки, оплати, борги і фінансові звіти
|-
| Адміністратор системи
| Налаштовує права, довідники, шаблони сертифікатів і службові параметри
|}


== Технічні вимоги ==
== Технічні вимоги ==
{| class="wikitable"
 
!Параметр
{| class="wikitable" style="width:100%;"
!Опис
! Параметр
! Опис
|-
| Бекенд
| K2 Cloud ERP на Python або PHP
|-
| База даних
| PostgreSQL або MySQL
|-
| Фронтенд
| HTML5, JavaScript
|-
|-
|Бекенд
| AJAX
|K2 Cloud ERP на Python або PHP
| Fetch API або Axios
|-
|-
|БД
| UI-компоненти
|PostgreSQL або MySQL
| DataTables для реєстрацій і студентів, Select2 для вибору курсів, FullCalendar для графіка курсів
|-
|-
|Фронтенд
| Матеріали
|HTML5, JavaScript, AJAX, Fetch API або Axios
| Завантаження PDF, відео, презентацій, файлів і посилань
|-
|-
|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-реєстрації, прогрес, завдання, оцінки, кабінет студента, кабінет викладача
|-
|-
|Фінансовий облік оплат курсів
! Разом
|20
! 100
! Максимальна оцінка
|}
 
== Шкала оцінювання ==
 
{| class="wikitable" style="width:100%;"
! Бали
! Рівень
! Опис
|-
|-
|Генерація сертифікатів про завершення
| 90–100
|20
| Відмінно
| Модуль повністю працює: курси, викладачі, студенти, реєстрації, оплати, прогрес, матеріали, кабінети, сертифікати й звіти реалізовані коректно
|-
|-
|Інтерактивність через AJAX і особисті кабінети
| 75–89
|20
| Добре
| Основна логіка працює, є незначні недоліки, які не руйнують навчальний процес
|-
| 60–74
| Зараховано
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: курси, студенти, реєстрації, оплати, прогрес або сертифікати
|}
|}
== Критичні помилки ==
Критичними помилками вважаються ситуації, коли:
* неможливо створити курс;
* неможливо створити викладача;
* неможливо створити студента;
* неможливо зареєструвати студента на курс;
* реєстрація не прив’язується до курсу;
* реєстрація не прив’язується до студента;
* оплата не прив’язується до реєстрації;
* часткова оплата не змінює борг;
* доступ до платних матеріалів відкривається без оплати, якщо це заборонено правилами;
* прогрес не оновлюється;
* завершення курсу не фіксується;
* сертифікат формується без виконання умов завершення;
* звіти не відповідають фактичним реєстраціям, оплатам і прогресу;
* зміни курсів, оплат, прогресу і сертифікатів не логуються.
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл навчання: курс → студент → реєстрація → оплата → доступ → прогрес → завершення → сертифікат → звіт.
</div>
== Очікуваний результат ==
У результаті виконання атестаційного завдання має бути створений модуль сайту курсів навчання в K2 ERP.
Модуль має підтримувати категорії курсів, курси, викладачів, студентів, групи, уроки, навчальні матеріали, реєстрації, оплати, прогрес, відвідуваність, домашні завдання, відповіді студентів, оцінки, сертифікати, розклад, сповіщення, особисті кабінети, звіти, AJAX-інтерактив і логування змін.


== Примітка ==
== Примітка ==
ERP для курсів навчання — критично важлива для масштабування:


* шкіл;
ERP для курсів навчання потрібна школам, тренінговим центрам, онлайн-академіям, мовним школам, ІТ-школам, автошколам і корпоративним навчальним центрам.
* тренінгових центрів;
 
* онлайн-освітніх проектів.
Такий модуль дозволяє масштабувати навчання, контролювати оплату, бачити прогрес студентів, зменшити ручну роботу адміністратора і підвищити якість сервісу.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль сайту курсів навчання
|-
| Які довідники потрібні?
| Категорії курсів, курси, викладачі, студенти, групи
|-
| Який головний процес?
| Реєстрація студента на курс, оплата, навчання, прогрес і сертифікат
|-
| Що потрібно для онлайн-курсу?
| Уроки, матеріали, доступ після оплати, прогрес
|-
| Що потрібно для офлайн-курсу?
| Групи, розклад, відвідуваність, викладач
|-
| Які фінанси потрібні?
| Вартість курсу, рахунки, часткові оплати, повні оплати, борги
|-
| Які звіти потрібні?
| Студенти, оплати, прогрес, відвідуваність, ефективність курсів, робота викладачів
|-
| Що є критичною вимогою?
| Студент має отримати доступ, прогрес і сертифікат тільки за правильними правилами курсу
|}
 
== Див. також ==


Вона дозволяє:
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Навчальний заклад]]
* [[CRM]]
* [[Каса]]
* [[Сертифікат]]
* [[Студент]]
* [[Викладач]]
* [[Курс]]
* [[Розклад]]
* [[Особистий кабінет]]
* [[AJAX]]


* зручно керувати учнями;
[[Категорія:K2 ERP]]
* ефективно моніторити успішність;
[[Категорія:Атестаційні завдання K2]]
* забезпечувати якісний сервіс.
[[Категорія:Освіта]]
[[Категорія:Онлайн-навчання]]
[[Категорія:Курси]]
[[Категорія:CRM]]
[[Категорія:Корпоративна Wiki]]