Основною метою проекту є розробка освітньої платформи, що надає функціонал, схожий тому, що пропонує Moodle. Ви можете ознайомитися з роботою їх системи, перейшовши за цим посиланням, щоб отримати глибше розуміння завдань, що стоять перед вами.
Оцінка проекту буде проводитися за такими критеріями:
-
Функціональність, стабільність та коректність роботи платформи.
-
Якість коду, його чистота.
-
Командна робота при використанні git для контролю версій (див. нефункціональні вимоги).
-
Якість документації.
-
** Ефективне використання дизайн-патернів і технологій.
-
** Рівень покриття коду тестами.
-
** UI (інтерфейс користувача вашого веб-додатка має бути привабливим) та UX (досвід користувача повинен забезпечувати зручність та легкість використання веб-додатка)
** - завдання підвищеної складності, не обов’язкові до виконання, але які будуть оцінюватися додатковими балами
Технології:
-
Frontend: Можна використовувати будь-які доступні технології для розробки інтерфейсу.
-
Backend: Необхідно дотримуватися принципів об'єктно-орієнтованого програмування.
-
База даних: Ви маєте можливість використовувати будь-яку з доступних технологій для створення та управління базами даних.
Ваше завдання полягає у реалізації функціоналу, описаного далі, проте вам надається гнучкість у підході: ви маєте повну свободу додавати новий функціонал, модифікувати існуючий або відмовлятися від деяких вимог, якщо вважаєте, що ваші зміни зроблять систему більш ефективною та зручною для кінцевого користувача. Ваша креативність та інноваційний підхід не тільки вітаються, але й будуть відповідно оціненими. Ми заохочуємо вас думати нестандартно і розробляти рішення, які максимально відповідають потребам користувачів та викликам сучасної освіти.
Наша програма складається із:
-
Викладач (teacher)
-
Викладач-Керівник (chief-teacher)
-
Учень (student)
-
Предмет (subject)
-
Навчально-облікові матеріали (study-account materials )
Авторизація
-
Логін форма з email та password
-
Користувачі поділяються на: teacher, chief-teacher, student.
Головна сторінка
-
Перелік Предметів із сортуванням по назвах
-
Перелік Викладачів із сортуванням по прізвищах
-
Кількість класів та кількість Учнів
-
** Досягнення Учнів
-
** Досягнення Вчителів
Викладач
-
Перелік Предметів, що викладає Викладач
-
Може додавати або видаляти Учнів у Предметі
-
Може виставляти оцінки Учням по Предметах у журналі оцінок
-
Перегляд (сортування по прізвищах) та пошук доступних Викладачів
-
** Досягнення Викладача
Викладач-Керівник
-
Доручає Викладачеві викладання Предмету
-
Може додавати або видаляти Викладачів
Предмет
-
Клас (класи) викладання Предмету
-
Перелік Учнів, які вивчають Предмет
-
Перегляд (сортування по назвах та по класах) та пошук Предметів
-
** Навчальні матеріали по Предмету (pdf, word, …, картинки, текст, посилання на відео матеріали)
-
** Завдання по Предмету (тести з однією чи кількома правильними відповідями які може створювати викладач)
-
** Викладач може додавати та видаляти навчальні матеріали та створювати власні тести у конструкторі тестів
Учень
-
Предмети, що вивчає Учень
-
Успішність (перелік оцінок та середній бал)
-
Перегляд (сортування по прізвищах, по класах, по успішності) всіх учнів
-
Пошук по учнях
-
** Досягнення Учня (переможець/призер олімпіад, конкурсів, турнірів, змагань)
Навчально-облікові матеріали
-
Розклад занять з представленням у формі календаря;
-
Журнал оцінок (дата - оцінка (або відсутність/запізнення))
-
Учень може бачити тільки свою статистику оцінок
-
Викладач може бачити статистику по всіх учнях для своїх Предметів
GitHub
Проект має бути викладений на публічному репозиторії GitHub
** Має бути історія розробки, створення віків, комітів, пул-ріквестів та активності всіх членів команди
Архітектура
Проект повинен включати базу даних, бекенд та інтерфейс, розроблені з дотриманням загальноприйнятих принципів програмування.
Використання ООП;
Документація та Інструкція
Документація (Readme.md) по проекту.
Докладна покрокова інструкція із локального розгортання проекту. Викласти спосіб розгортання всіх його компонентів (включно із базою даних). Важливо розробити зрозумілий підхід: якщо членам журі не вдасться запустити проект, він оцінюватися не буде.
Стабільність
Проект повинен працювати без помилок та багів.
** Тестування
Забезпечити тести покриття коду, включаючи інтеграцію з плагіном для відстеження тестів покриття.
Сторінка (pdf) з описом команди та ролі в команді
Посилання на публічний репозиторій на GitHub.
Відеозапис демонстрації функціоналу проекту
** - завдання підвищеної складності, не обов'язкові до виконання, але які будуть оцінюватися додатковими балами
УВАГА! Подати завдання турніру можна до 15 червня до 00.00