Інтернет-конференції НУБіП України, ТЕОРЕТИЧНІ ТА ПРИКЛАДНІ АСПЕКТИ РОЗРОБКИ КОМП’ЮТЕРНИХ СИСТЕМ '2024

Розмір шрифту: 
ІНФОРМАЦІЙНА СИСТЕМА З НАВЧАЛЬНИМИ КУРСАМИ WAZERCODE
Богдан Володимирович Кічак

Остання редакція: 22-04-2024

Тези доповіді


У наш час все більше людей прагнуть змінити професію та вивчати нові технології, отримувати актуальні знання, або вчасно актуалізувати власні навички та отримувати сертифікацію навичок, які вони використовують під час роботи. Для цього використовуються онлайн навчальні платформи, які постійно потребують нових можливостей для збільшення кількості потенційних студентів та якості надаваних послуг.

Розробка інформаційної системи з навчальними курсами дозволяє виконати попередній аналіз інших бізнес-моделей, як це було виконано іншими компаніями, які є популярними на ринку. При розробці проєкту, використано “best-practice” з правил розробки та організації простору та методів розробки програмного забезпечення. Особливу увагу потрібно звернути на оптимізацію платформи для великої кількості користувачів та оптимізацію завантаження, кешування, особливості розгортання платформи та зменшення затримок під час виконання дій користувачами. Алгоритми обробки інформації мають бути виконані з метою оптимізації, адже чим більше користувачів – тим більш потужний сервер, або комплект серверного обладнання може знадобитись для подальшої підтримки діяльності платформи.

Впровадження даної платформи на базі закладів освіти, або у приватній практиці надає переваги у порівнянні з іншими наявними навчальними платформами. Розроблювана платформа може надавати швидкий та зручний доступ до навчальних матеріалів, з можливістю їх перегляду, подальшого опрацювання, виконання поставлених завдань, можливістю студентам ставити питання до матеріалів (відеоматеріалу) тощо.

Виходячи з цього, розроблена інформаційна система дозволяє отримати якісні послуги для слухача курсів та покращить рівень взаємодії з викладачем, платформою та у результаті підвищить навчальні досягнення студента.

У роботі розглянуто декілька категорій кінцевих користувачів, у результаті вибудовані функціональні вимоги для кожної з них.

  1. Менеджер:
  • Менеджер має можливість виконувати додавати користувачів, видаляти їх, переглядати статистику замовлень, списку користувачів, статистику придбання курсів,  виконувати створення курсів(додавати секції, змінювати посилання, додавати інформацію про курс, змінювати наповнення), перегляд списку користувачів, змінювати наповнення сайту (FAQ, Категорії, Головну сторінку, посилання),
  1. Користувач:
    • Реєстрація на платформі (використовуючи різні методи), придбання курсів, перегляд навчальних матеріалів, виконання завдань, додавання запитань до навчальних матеріалів, редагування профілю користувача.
  2. Викладач:
    • Викладач має право редагування курсу, власного профілю та вилучення студентів з навчального курсу.

Розробка навчальної платформи відбувається завдяки стеку MERN [2], в якому використовується Front, Back End розробка та додається база даних. Базою даних (БД) виступає MongoDB, для побудови Back-End використовується Express.js, Node.js, TypeScript, та інші технології, наприклад Routing. Для кешування використовується REDIS з Upstash, також до виконання залучено Redux ToolKit та Socket.IO.

Основна мова програмування – це TypeScript – типізована версія JavaScript, що дозволяє виконувати сувору типізацію з метою оптимізації та попереднього виключення проблем з типами даних, особливо під час роботи з БД. Для FrontEnd використовується бібліотека React з додатковими модулями, які дозволяють виконувати побудову різних компонентів програмного забезпечення. Наприклад, для виконання проєктування графічного інтерфейсу використовується Tailwind CSS [1], що є досить зручним завдяки модульності.  Також під час розробки програмного забезпечення використовується принцип “Responsive Design”. Завдяки цьому зовнішній вигляд додатка пасує будь-якому пристрою користувача. Не втрачаючи можливості отримати необхідну інформацію.

На рис. 1 наведена діаграма прецедентів, яка відображає основні взаємодії між акторами (користувачами системи) та самою системою. React є дуже популярною та ефективною бібліотекою, що дозволяє створити гнучке програмне забезпечення з можливістю спростити розробку завдяки зручним бібліотекам. До прикладу, бібліотека з іконками, які відображаються користувачу може використовуватись за допомогою імпортування та подальшого використання без великої кількості коду та з можливістю дублювання під час подальшої розробки.

Для більшого розуміння, докладаю рис. 1, на якому можна побачити діаграму розгортання проєкту.

 

 

Рис. 1 Діаграма розгортання проєкту

На діаграмі можемо побачити основні компоненти системи, які використовуються для її роботи. Також на ній зображено відокремлені вузли, які є API та базою даних.

Для справної роботи системи необхідно будувати програмне забезпечення використовуючи технології, які є популярними, протестованими та стабільно робочими. Під час розробки інформаційної системи було використано сучасні технології, які дозволяють використовувати підходи, які компанії можуть почати використовувати лише через кілька років, із-за високої гнучкості та високої швидкості розробки та подальшої роботи програмного забезпечення.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. 7 Reasons Why You Should Use Tailwind CSS Right Now [Електронний ресурс] – Режим доступу: https://www.material-tailwind.com/blog/7-reasons-why-you-should-use-tailwind-css

2. MERN Stack Explained [Електронний ресурс] – Режим доступу: https://www.mongodb.com/mern-stack

3. The React Framework for the Web [Електронний ресурс] – Режим доступу: https://nextjs.org/