Атестаційні завдання K2 ERP/Навчальний заклад
Атестаційне завдання K2 ERP — Навчальний заклад — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку студентів, викладачів, курсів, груп, розкладів, відвідуваності, оцінок, навчальних документів і, за потреби, оплат за навчання.
Модуль має забезпечувати повний цикл роботи навчального закладу: реєстрацію студентів, створення курсів і груп, формування розкладу, облік відвідуваності, виставлення оцінок, формування виписок, сертифікатів, дипломів, сповіщення учасників навчального процесу та роботу особистих кабінетів студентів і викладачів.
Коротко. Потрібно реалізувати модуль для навчального закладу: студенти, викладачі, курси, групи, аудиторії, розклад занять, відвідуваність, оцінки, навчальні документи, особисті кабінети, сповіщення та, опціонально, фінансовий облік навчання.
Назва завдання
Модуль обліку студентів, курсів, розкладів і оцінок для навчального закладу.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації навчального процесу школи, коледжу, університету, академії, навчального центру або онлайн-школи.
Система повинна дозволяти:
- вести студентів;
- вести викладачів;
- вести курси;
- створювати навчальні групи;
- закріплювати студентів за групами;
- закріплювати викладачів за курсами;
- вести аудиторії;
- формувати розклад занять;
- контролювати конфлікти в розкладі;
- вести облік відвідуваності;
- виставляти оцінки;
- рахувати середній бал;
- формувати виписки про навчання;
- формувати сертифікати або дипломи;
- підтримувати особистий кабінет студента;
- підтримувати особистий кабінет викладача;
- надсилати сповіщення про зміни розкладу, оцінки й пропуски;
- вести облік оплат за навчання, якщо фінансовий блок реалізується;
- формувати звіти по студентах, групах, відвідуваності, оцінках, викладачах і фінансах.
Головний принцип. Навчальний заклад має бачити весь навчальний процес в одній системі: хто навчається, у якій групі, за яким курсом, коли заняття, хто був присутній, які оцінки отримав і які документи можна сформувати.
Реальний бізнес-контекст
Навчальний заклад працює з великою кількістю учасників навчального процесу: студентами, викладачами, адміністраторами, кураторами груп, бухгалтерами та керівництвом.
Система потрібна для:
- шкіл;
- коледжів;
- університетів;
- академій;
- приватних навчальних центрів;
- мовних шкіл;
- IT-шкіл;
- курсів підвищення кваліфікації;
- онлайн-академій;
- корпоративного навчання.
У реальній роботі потрібно швидко знайти студента, побачити його групу, розклад, відвідуваність, оцінки, навчальну історію, фінансовий стан і документи. Викладачам потрібен зручний інтерфейс для відміток відвідуваності та виставлення оцінок. Студентам потрібен кабінет із розкладом, оцінками, матеріалами й повідомленнями.
Основний бізнес-процес
Типовий процес роботи навчального закладу виглядає так:
- адміністратор створює студентів;
- адміністратор створює викладачів;
- створюються курси;
- створюються аудиторії;
- формуються навчальні групи;
- студенти зараховуються до груп;
- викладачі закріплюються за курсами;
- формується розклад занять;
- викладач проводить заняття;
- викладач відмічає відвідуваність;
- викладач виставляє оцінки;
- студент бачить оцінки й розклад у кабінеті;
- адміністрація аналізує успішність і відвідуваність;
- за потреби формуються виписки, сертифікати або дипломи;
- якщо навчання платне — система формує рахунки й контролює оплату.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Студенти | Особи, які проходять навчання |
| Викладачі | Працівники, які проводять заняття |
| Курси | Навчальні дисципліни або програми |
| Групи | Об’єднання студентів для проходження курсу |
| Аудиторії | Приміщення або онлайн-кімнати для занять |
| Розклад | Дати, час, аудиторії, викладачі та групи |
| Відвідуваність | Присутність або відсутність студентів на заняттях |
| Оцінки | Результати навчання студентів |
| Навчальні матеріали | Файли, презентації, посилання, завдання |
| Документи | Виписки, сертифікати, дипломи |
| Оплати | Рахунки, платежі та борги за навчання, якщо реалізовано |
| Кабінети | Особисті кабінети студентів і викладачів |
| Сповіщення | Повідомлення про розклад, оцінки, пропуски, оплату |
| Звіти | Аналітика по навчанню, відвідуваності, успішності й фінансах |
Довідник «Студенти»
Довідник студентів містить усіх осіб, які навчаються або навчалися в закладі.
Поля студента
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я студента |
| Дата народження | Для ідентифікації та документів |
| Телефон | Контактний номер |
| Адреса для кабінету і сповіщень | |
| Адреса | Опціонально |
| Фото | Опціонально |
| Дата вступу | Коли студент почав навчання |
| Статус | Навчається, випустився, відрахований, академічна відпустка |
| Група | Поточна навчальна група |
| Примітки | Додаткова інформація |
Статуси студента
| Статус | Значення |
|---|---|
| Навчається | Студент активно проходить навчання |
| Випустився | Навчання завершено |
| Відрахований | Студент припинив навчання |
| Академічна відпустка | Навчання тимчасово призупинене |
| Кандидат | Особа подала заявку, але ще не зарахована |
Довідник «Викладачі»
Довідник викладачів містить працівників, які проводять заняття.
Поля викладача
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я викладача |
| Спеціалізація | Напрям або дисципліна |
| Телефон | Контактний номер |
| Електронна адреса | |
| Фото | Опціонально |
| Статус | Активний, неактивний, звільнений |
| Примітки | Додаткова інформація |
Довідник «Курси»
Курс — це навчальна дисципліна, програма або окремий модуль навчання.
Поля курсу
| Поле | Опис |
|---|---|
| Назва курсу | Наприклад: Математика, Програмування, Англійська мова |
| Опис | Короткий зміст курсу |
| Тривалість у годинах | Загальна кількість навчальних годин |
| Викладач | Основний викладач курсу |
| Вартість навчання | Опціонально, якщо курс платний |
| Формат | Очно, онлайн, змішано |
| Статус | Активний, завершений, архівний |
Довідник «Аудиторії»
Аудиторія — це місце проведення заняття.
Аудиторією може бути:
- фізичний кабінет;
- лекційна зала;
- лабораторія;
- комп’ютерний клас;
- онлайн-кімната;
- Zoom-посилання;
- Google Meet-посилання.
Поля аудиторії
| Поле | Опис |
|---|---|
| Назва аудиторії | Наприклад: 204, Лекційна зала, Online Room 1 |
| Місткість | Скільки студентів може розміститися |
| Корпус | Місцезнаходження |
| Поверх | Опціонально |
| Тип аудиторії | Лекційна, лабораторія, онлайн, комп’ютерний клас |
| Статус | Активна, недоступна, ремонт |
Групи
Група об’єднує студентів, які проходять навчання разом.
Поля групи
| Поле | Опис |
|---|---|
| Назва групи | Наприклад: Python-2025-01 або Група А-12 |
| Курс | Основний курс або програма |
| Викладач | Основний викладач або куратор |
| Дата початку | Початок навчання |
| Дата завершення | Планове завершення |
| Статус | Набір, активна, завершена, архівна |
| Максимальна кількість студентів | Обмеження по групі |
Зарахування студентів у групу
Система повинна дозволяти додавати студентів у групу.
Дані зарахування
| Поле | Опис |
|---|---|
| Студент | Хто зараховується |
| Група | До якої групи зараховано |
| Дата зарахування | Коли студент доданий у групу |
| Статус | Навчається, завершив, відрахований |
| Коментар | Примітки адміністратора |
Розклад занять
Розклад визначає, коли, де і з ким проходить заняття.
Поля заняття в розкладі
| Поле | Опис |
|---|---|
| Група | Для якої групи заняття |
| Курс | Який курс або предмет |
| Викладач | Хто проводить заняття |
| Дата | Дата заняття |
| Час початку | Початок заняття |
| Час завершення | Завершення заняття |
| Аудиторія | Де проходить заняття |
| Формат | Очно, онлайн, змішано |
| Тема заняття | Опціонально |
| Статус | Заплановано, проведено, скасовано, перенесено |
Контроль конфліктів у розкладі
Система повинна попереджати про конфлікти.
Конфліктами вважаються ситуації, коли
- один викладач призначений на два заняття одночасно;
- одна аудиторія зайнята двома групами одночасно;
- група має два заняття в один і той самий час;
- кількість студентів у групі перевищує місткість аудиторії;
- заняття призначено в недоступну аудиторію.
Критично. Система не повинна створювати розклад із конфліктом викладача, групи або аудиторії без попередження.
Облік відвідуваності
Відвідуваність фіксується по кожному заняттю і студенту.
Стани відвідуваності
| Стан | Значення |
|---|---|
| Присутній | Студент був на занятті |
| Відсутній | Студент не був на занятті |
| Запізнився | Студент прийшов із запізненням |
| Поважна причина | Відсутність із підтвердженою причиною |
| Онлайн | Студент був присутній дистанційно |
Поля відмітки відвідуваності
| Поле | Опис |
|---|---|
| Заняття | До якого заняття належить відмітка |
| Студент | Хто відмічається |
| Стан | Присутній, відсутній, запізнився тощо |
| Причина | Хвороба, поважна причина, без причини |
| Коментар | Примітка викладача |
| Хто відмітив | Викладач або адміністратор |
Оцінки
Оцінки фіксують результати навчання студентів.
Типи оцінок
- поточна оцінка;
- контрольна робота;
- домашнє завдання;
- тест;
- іспит;
- залік;
- фінальна оцінка;
- проєктна робота.
Поля оцінки
| Поле | Опис |
|---|---|
| Студент | Хто отримав оцінку |
| Курс | За який курс виставлено оцінку |
| Заняття | До якого заняття належить оцінка, якщо потрібно |
| Тип оцінки | Тест, іспит, домашнє завдання тощо |
| Бал | Значення оцінки |
| Максимальний бал | Для шкали оцінювання |
| Дата | Коли оцінку виставлено |
| Викладач | Хто виставив оцінку |
| Коментар | Пояснення або примітка |
Середній бал
Система повинна вміти рахувати середній бал студента.
Середній бал = Сума оцінок / Кількість оцінок
Для складнішої моделі можна реалізувати вагові коефіцієнти для різних типів оцінок.
Навчальні матеріали
Опціонально модуль може підтримувати матеріали курсу.
Приклади матеріалів
- PDF-файли;
- презентації;
- відео;
- посилання;
- домашні завдання;
- шаблони;
- тести;
- додаткові матеріали.
Особистий кабінет студента
Кабінет студента потрібен для самостійного перегляду навчальної інформації.
Функції кабінету студента
Студент повинен мати можливість:
- переглядати свій профіль;
- бачити групу;
- переглядати розклад;
- бачити зміни в розкладі;
- переглядати відвідуваність;
- переглядати оцінки;
- бачити середній бал;
- завантажувати навчальні матеріали;
- отримувати сповіщення;
- бачити рахунки й оплату, якщо фінансовий блок реалізовано;
- завантажувати сертифікати або виписки, якщо доступно.
Особистий кабінет викладача
Кабінет викладача потрібен для ведення занять.
Функції кабінету викладача
Викладач повинен мати можливість:
- переглядати свій розклад;
- бачити список груп;
- бачити список студентів у групі;
- відмічати відвідуваність;
- виставляти оцінки;
- додавати коментарі до оцінок;
- завантажувати матеріали курсу;
- бачити статистику по групі;
- отримувати повідомлення про зміни в розкладі.
Фінансовий облік навчання
Фінансовий блок є опціональним, але бажаним для приватних навчальних закладів.
Що має підтримувати фінансовий блок
- вартість курсу;
- вартість семестру;
- індивідуальні знижки;
- рахунки на оплату;
- часткові оплати;
- повну оплату;
- заборгованість;
- нагадування про оплату;
- звіт по оплатах.
Поля рахунку за навчання
| Поле | Опис |
|---|---|
| Студент | Кому виставлено рахунок |
| Курс або група | За що виставлено рахунок |
| Період | Місяць, семестр або весь курс |
| Сума | Сума до оплати |
| Знижка | Якщо застосовується |
| Статус | Виставлений, частково оплачений, оплачений, прострочений |
Документи
Модуль має формувати навчальні документи.
Типи документів
- виписка про навчання;
- академічна довідка;
- сертифікат про проходження курсу;
- диплом;
- довідка про зарахування;
- довідка про відвідування.
Дані документа
Документ може містити:
- ПІБ студента;
- назву курсу або програми;
- групу;
- період навчання;
- оцінки;
- середній бал;
- кількість годин;
- дату видачі;
- підпис відповідальної особи.
Сповіщення
Система має підтримувати сповіщення студентів і викладачів.
Події для сповіщень
- створено нове заняття;
- змінено розклад;
- заняття скасовано;
- виставлено нову оцінку;
- зафіксовано пропуск;
- додано новий матеріал курсу;
- наближається іспит;
- виставлено рахунок;
- є борг по оплаті.
Звітність
Звіт «Студенти по групах»
Звіт показує склад груп.
У звіті потрібно відображати:
- групу;
- курс;
- викладача;
- кількість студентів;
- активних студентів;
- відрахованих студентів;
- студентів, які завершили навчання.
Звіт «Відвідуваність»
Звіт показує присутність студентів.
У звіті потрібно відображати:
- студента;
- групу;
- кількість занять;
- кількість присутностей;
- кількість пропусків;
- відсоток відвідуваності.
Звіт «Успішність»
Звіт показує результати навчання.
У звіті потрібно відображати:
- студента;
- курс;
- кількість оцінок;
- середній бал;
- фінальну оцінку;
- статус проходження курсу.
Звіт «Розклад занять»
Звіт показує заняття за період.
У звіті потрібно відображати:
- дату;
- час;
- групу;
- курс;
- викладача;
- аудиторію;
- статус заняття.
Звіт «Навантаження викладачів»
Звіт показує кількість занять у викладачів.
У звіті потрібно відображати:
- викладача;
- кількість занять;
- кількість груп;
- кількість годин;
- кількість студентів.
Звіт «Оплати за навчання»
Якщо фінансовий блок реалізовано, звіт показує стан оплат.
У звіті потрібно відображати:
- студента;
- групу або курс;
- суму нарахувань;
- суму оплат;
- заборгованість;
- статус оплати.
AJAX-інтерактив
Інтерфейс має працювати швидко та зручно для адміністратора, викладача і студента.
Через AJAX мають працювати:
- пошук студента;
- пошук викладача;
- додавання студента в групу;
- створення заняття в розкладі;
- зміна розкладу;
- відмітка відвідуваності;
- виставлення оцінок;
- оновлення середнього балу;
- завантаження матеріалів;
- перегляд кабінету студента;
- перегляд кабінету викладача;
- фільтрація звітів.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив студента;
- хто змінив статус студента;
- хто створив викладача;
- хто створив курс;
- хто створив групу;
- хто додав студента в групу;
- хто створив або змінив заняття;
- хто відмітив відвідуваність;
- хто виставив або змінив оцінку;
- хто сформував документ;
- хто виставив рахунок;
- хто зареєстрував оплату;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Студент | Переглядає розклад, оцінки, відвідуваність, матеріали, документи й оплату |
| Викладач | Переглядає групи, веде відвідуваність, виставляє оцінки, додає матеріали |
| Адміністратор навчального процесу | Створює студентів, викладачів, курси, групи, розклад і документи |
| Бухгалтер | Веде рахунки, оплати, борги і фінансові звіти |
| Куратор групи | Переглядає студентів групи, відвідуваність, успішність і повідомлення |
| Керівник | Переглядає звіти по навчальному процесу, викладачах, групах і фінансах |
| Адміністратор системи | Налаштовує права, довідники, шаблони документів і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables, Select2, FullCalendar для розкладу занять |
| Файли | Фото студентів, фото викладачів, навчальні матеріали |
| Друк | PDF-виписки, сертифікати, дипломи, рахунки |
| Сповіщення про розклад, оцінки, пропуски, оплату | |
| Експорт | Excel або PDF для звітів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- студенти;
- викладачі;
- курси;
- аудиторії;
- групи;
- студенти груп;
- заняття;
- розклад;
- відвідуваність;
- оцінки;
- типи оцінок;
- навчальні матеріали;
- документи;
- шаблони документів;
- рахунки за навчання;
- оплати;
- сповіщення;
- особисті кабінети;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити студентів;
- створити викладачів;
- створити курси;
- створити аудиторії;
- створити групу;
- додати студентів у групу;
- закріпити викладача за курсом;
- створити розклад занять;
- перевірити конфлікти розкладу;
- провести заняття;
- відмітити відвідуваність студентів;
- виставити оцінки;
- перевірити середній бал студента;
- переглянути розклад у кабінеті студента;
- переглянути розклад у кабінеті викладача;
- додати навчальний матеріал;
- сформувати виписку про навчання;
- сформувати сертифікат або диплом;
- створити рахунок за навчання, якщо фінансовий блок реалізовано;
- зареєструвати оплату;
- сформувати звіт відвідуваності;
- сформувати звіт успішності;
- сформувати звіт навантаження викладачів;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація обліку студентів, викладачів і курсів | 20 | Студенти, викладачі, курси, аудиторії, статуси, прив’язки |
| Формування розкладів і груп | 20 | Групи, зарахування студентів, заняття, аудиторії, контроль конфліктів |
| Виставлення оцінок і облік відвідуваності | 20 | Відвідуваність, оцінки, середній бал, журнали занять |
| Фінансовий облік навчання | 20 | Рахунки, оплати, борги, знижки, фінансові звіти, якщо блок реалізовано |
| Інтерактивність через AJAX і особисті кабінети | 20 | Кабінет студента, кабінет викладача, AJAX-оцінки, відвідуваність, розклад і сповіщення |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: студенти, викладачі, курси, групи, розклад, відвідуваність, оцінки, документи, кабінети й звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують навчальний процес |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: студенти, групи, розклад, відвідуваність, оцінки або кабінети |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити студента;
- неможливо створити викладача;
- неможливо створити курс;
- неможливо створити групу;
- студент не додається в групу;
- неможливо створити заняття в розкладі;
- система не попереджає про конфлікт викладача, групи або аудиторії;
- неможливо відмітити відвідуваність;
- неможливо виставити оцінку;
- оцінка не прив’язується до студента і курсу;
- середній бал рахується неправильно;
- студент бачить чужі оцінки або чужі фінансові дані;
- викладач може змінювати чужі курси без прав;
- документи не формуються, якщо ця функція заявлена;
- фінансові борги не рахуються, якщо фінансовий блок заявлений;
- звіти не відповідають фактичним даним;
- зміни оцінок і відвідуваності не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл навчального закладу: студент → група → курс → розклад → заняття → відвідуваність → оцінка → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль навчального закладу в K2 ERP.
Модуль має підтримувати студентів, викладачів, курси, аудиторії, групи, розклад, заняття, відвідуваність, оцінки, середній бал, навчальні матеріали, особисті кабінети, документи, сповіщення, фінансовий облік навчання, звіти, AJAX-інтерактив і логування змін.
Примітка
ERP для навчального закладу потрібна школам, коледжам, університетам, академіям, навчальним центрам і онлайн-школам.
Така система підвищує прозорість навчального процесу, дисципліну студентів, зручність роботи викладачів, оперативність адміністрації та якість управлінських рішень.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль обліку навчального закладу |
| Які довідники потрібні? | Студенти, викладачі, курси, аудиторії, групи |
| Який головний процес? | Формування груп, розкладу, облік відвідуваності й оцінок |
| Що має бачити студент? | Розклад, оцінки, відвідуваність, матеріали, документи й оплату |
| Що має робити викладач? | Вести заняття, відмічати відвідуваність, виставляти оцінки |
| Які документи потрібні? | Виписки, сертифікати, дипломи, довідки |
| Які звіти потрібні? | Студенти по групах, відвідуваність, успішність, розклад, навантаження викладачів |
| Що є критичною вимогою? | Повний цикл: група → розклад → заняття → відвідуваність → оцінки |