Атестаційні завдання K2 ERP/Сайт курсів навчання
Атестаційне завдання 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 для курсів навчання потрібна школам, тренінговим центрам, онлайн-академіям, мовним школам, ІТ-школам, автошколам і корпоративним навчальним центрам.
Такий модуль дозволяє масштабувати навчання, контролювати оплату, бачити прогрес студентів, зменшити ручну роботу адміністратора і підвищити якість сервісу.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль сайту курсів навчання |
| Які довідники потрібні? | Категорії курсів, курси, викладачі, студенти, групи |
| Який головний процес? | Реєстрація студента на курс, оплата, навчання, прогрес і сертифікат |
| Що потрібно для онлайн-курсу? | Уроки, матеріали, доступ після оплати, прогрес |
| Що потрібно для офлайн-курсу? | Групи, розклад, відвідуваність, викладач |
| Які фінанси потрібні? | Вартість курсу, рахунки, часткові оплати, повні оплати, борги |
| Які звіти потрібні? | Студенти, оплати, прогрес, відвідуваність, ефективність курсів, робота викладачів |
| Що є критичною вимогою? | Студент має отримати доступ, прогрес і сертифікат тільки за правильними правилами курсу |