проект команди "a completely Untitled Project"
Назва проекту: Освітній платформа "SkillHub"
Опис проекту: Мета проекту - створити онлайн-освітню платформу, де користувачі зможуть навчатися та викладати навчальні курси. Платформа надає можливість створення облікових записів, переглядати доступні курси, записуватися на курси, вивчати матеріали, завершувати завдання та отримувати сертифікати після успішного завершення курсів. Проект має адаптивний веб-інтерфейс, що підходить для настільних і мобільних пристроїв.
Ролі в команді:
Менеджер проекту: відповідає за планування та керування проектом.
Backend Developer (1-2 особи): розробка серверної частини з використанням .Net. Включає в себе створення API для управління курсами та користувачами.
Frontend Developer (2-3 людини): розробка інтерфейсу користувача з використанням технології React. Включає в себе створення платформи для перегляду та навчання.
Інженер із забезпечення якості: відповідає за тестування платформи та виявлення помилок.
Технічний автор: створює навчальні матеріали та документацію для користувачів та розробників.
Стек технологій: Backend: .NET, EF Core, RESTful API, SQL Server, MongoDb. Frontend: React, Material UI, Axios, адаптивний дизайн.
Основні етапи проекту:
Проектування та архітектурне проектування.
Розробка бекенда: створення API для управління курсами та користувачами, інтеграція з базою даних.
Розробка зовнішнього інтерфейсу: створення інтерфейсу користувача для перегляду та навчання на курсах.
Тестування гарантії якості: тестування платформи та виявлення помилок.
Розгортання: розгортання платформи у робочому середовищі та забезпечення її безперебійної роботи.
Документація: створення навчальних матеріалів для користувачів та технічної документації для розробників.
Результати проекту:
Повнофункціональна освітня платформа з адаптивним веб-інтерфейсом.
Навчальні матеріали для користувачів.
Технічна документація для розробників.
Інструкції з розгортання для виробничого середовища.
Цей проект може стати важливим інструментом для навчання та розвитку користувачів у різних галузях.-
Розробка веб-застосунку для розміщення навчальних курсів. Передбачаються наступні ролі - адмін, викладач, студент, гість. Використання технологій .NET, React.js, SQL Server та MongoDB дозволить реалізувати та розгорнути великий та складний проєкт, відповідно до трендів та актуальності часу Чіткий список пунктів з плану розробки цього сайту, розбитий на підпункти зі сторі поінтами для оцінки складності та тривалості:
- Аналіз та Планування (8 сторі поінтів) • Вивчення вимог і узгодження функціональності з замовником. • Створення специфікації вимог для кожної ролі (адмін, викладач, студент, гість). • Планування та розподіл завдань між командою розробників.
- Реалізація Базового Інфраструктурного Каркасу (12 сторі поінтів) • Створення проекту .NET для серверної частини. • Налаштування React.js додатку для клієнтської частини. • Налаштування зв'язку з SQL Server і MongoDB.
- Автентифікація та Авторизація (10 сторі поінтів) • Реалізація системи реєстрації та входу для користувачів. • Налаштування прав доступу для ролей (адмін, викладач, студент, гість).
- Управління Контентом (15 сторі поінти) • Створення панелі адміністратора для додавання та редагування курсів. • Розробка інтерфейсу для викладачів для додавання матеріалів до курсів.
- Навчальний Процес (23 сторі поінти) • Розробка функціональності для студентів для реєстрації на курси. • Створення системи для відстеження прогресу студентів на курсах.
- Форум та Взаємодія (19 сторі поінти) • Реалізація форуму для спілкування між користувачами. • Додавання можливості коментування курсів та матеріалів.
- Дизайн та Інтерфейс (15 сторі поінти) • Розробка інтерфейсу для користувачів з урахуванням вимог до дизайну. • Тестування та оптимізація інтерфейсу для різних пристроїв.
- Тестування та Відлагодження (14 сторі поінти) • Проведення модульних та інтеграційних тестів серверної та клієнтської частин. • Виправлення помилок та оптимізація продукту.
- Розгортання та Підтримка (8 сторі поінти) • Розгортання додатку на сервері з використанням .NET і React.js. • Підготовка до публікації та початок обслуговування користувачів.
- Документація та Навчання (5 сторі поінти) • Створення технічної документації для команди розробників та адміністраторів. • Навчання адміністраторів та підтримуючого персоналу роботі з системою.
- Тестування на Запит Користувача (5 сторі поінтів) • Внутрішнє тестування всіх функціональностей. • Опитування користувачів та виправлення зауважень.
- Масштабування та Подальший Розвиток (5 сторі поінтів) • Розгляд можливостей масштабування системи. • Розробка плану подальшого розвитку та додавання нових функцій.
Ось загальний перелік ролей та кількість людей, які можуть бути потрібні для розробки і підтримки проекту відповідно до попереднього опису:
-
Проектний Менеджер (1): Відповідальність за керування проектом, планування, розподіл завдань та спілкування з замовником.
-
Архітектор ПЗ (1): Розробка архітектури системи, вибір технологій та визначення структури бази даних.
-
Розробники .NET (1): Відповідальність за серверну частину додатку на платформі .NET.
-
Розробник React.js (1): Відповідальність за клієнтську частину додатку на React.js.
-
Тестувальники (1): Відповідальність за тестування системи та виявлення помилок.
-
Дизайнер і Бізнес Аналітик (1): Створення дизайну інтерфейсу для користувачів, аналіз ринку, специфікація вимог та критерій прийнятності нововведень у продукті. Це загальний розподіл ролей та кількості осіб у команді. Кількість розробників і тестувальників може змінюватися в залежності від обсягу робіт і термінів проекту. Також важливо розглянути можливість залучення спеціалістів у випадку потреби, наприклад, в графічного дизайнера чи додаткових розробників у разі збільшення обсягу функціональності.
-
Зарплати та витрати на персонал (60-70% від загальних витрат): • Розробники .NET і React.js: Оплата розробників залежить від рівня досвіду і регіональних ринкових умов. Приблизно 2-3 розробники кожного типу можуть отримувати від $20 000 до $40 000 на рік кожен. • Архітектор ПЗ: Він також може отримувати від $50 000 до $70,000 на рік. • Тестувальники: Від $15 000 до $30,000 на рік кожен. • Дизайнер: Він може отримувати від $20,000 до $40,000 на рік.
-
Інфраструктурні витрати (20-30% від загальних витрат): • Серверне обладнання та хостинг: Витрати на обслуговування серверів можуть складати від $5,000 до $10,000 на місяць, залежно від обсягу та потреби в масштабуванні. • Ліцензії та програмне забезпечення: Вартість ліцензій для .NET та інших програмних продуктів може залежати від обсягу використання.
-
Інші витрати (10% від загальних витрат): • Маркетинг та реклама: Якщо потрібно просувати продукт на ринку, то витрати на маркетинг можуть становити значну частину бюджету. • Додаткові послуги: Наприклад, юридичні послуги для створення договорів або аудиторські послуги. Загальна сума інвестицій буде залежати від тривалості проекту. Розподіл бюджету може бути різним, і важливо врахувати можливість збільшення витрат на фазі тестування та оптимізації, а також на підтримці та масштабуванні після запуску. Загальну суму інвестицій в проект можна оцінити як суму всіх вищезазначених витрат. Наприклад, для проекту з командою розробників (2 .NET, 2 React.js), тестувальниками (2), архітектором, дизайнером, адміністратором та технічною підтримкою, а також інфраструктурними витратами у розмірі $5,000 на місяць і іншими витратами у розмірі $15,000 на місяць, на перший рік роботи проекту може бути потрібно від $300,000 до $500,000 або більше.
Етапи тестування:
- Тестування реєстрації та входу: • Перевірка можливості створення облікового запису користувача: • Відкриття сторінки реєстрації. • Введення інформації для реєстрації (ім'я, електронна пошта, пароль). • Натискання кнопки "Зареєструватися". • Перевірка, чи користувач успішно зареєструвався і отримав підтвердження. • Перевірка можливості входу в систему з вже існуючим обліковим записом: • Відкриття сторінки входу. • Введення інформації (електронна пошта, пароль). • Натискання кнопки "Увійти". • Перевірка, чи користувач успішно увійшов в систему. • Валідація введених даних: • Введення невірної електронної пошти або пароля та перевірка на наявність відповідного повідомлення про помилку. • Введення неправильного формату електронної пошти та перевірка на наявність відповідного повідомлення про помилку.
- Тестування управління курсами: • Перевірка можливості створення нового курсу вчителем: • Увійдіть в систему як вчителем. • Перейдіть на сторінку створення нового курсу. • Заповніть всі обов'язкові поля (назва курсу, опис, матеріали). • Натисніть кнопку "Створити курс". • Переконайтесь, що курс був успішно створений. • Перевірка можливості перегляду списку доступних курсів для користувача: • Увійдіть в систему як користувач. • Перейдіть на сторінку списку доступних курсів. • Перевірте, чи відображаються всі доступні курси для користувача. • Тестування можливості запису користувача на курс: • Увійдіть в систему як користувач. • Перейдіть на сторінку курсу, на який користувач бажає записатися. • Натисніть кнопку "Записатися на курс". • Переконайтесь, що користувач успішно записаний на курс. • Перевірка функції відміни запису на курс: • Увійдіть в систему як користувач, який вже записаний на певний курс. • Перейдіть на сторінку курсу, на який користувач бажає відмінити свою участь. • Натисніть кнопку "Відмінити запис на курс". • Переконайтесь, що користувач був успішно відмінений.
- Тестування навчання і завершення курсу: • Перевірка доступу до навчальних матеріалів курсу: • Увійдіть в систему як користувач, записаний на певний курс. • Перейдіть на сторінку курсу та переконайтесь, що всі матеріали доступні для перегляду. • Виконання завдань та перевірка їх правильності: • Виконайте завдання, які надаються в рамках курсу. • Перевірте правильність виконання та відповідність результатів очікуваним результатам. • Перевірка можливості завершення курсу та отримання сертифіката: • Завершіть всі завдання та виконайте умови завершення курсу. • Перейдіть на сторінку отримання сертифіката. • Переконайтесь, що користувач може успішно отримати сертифікат.
- Тестування інтерфейсу користувача: • Перевірка адаптивності інтерфейсу: • Відкриття платформи на різних пристроях (настільних комп'ютерах, планшетах, смартфонах). • Перевірка, як інтерфейс адаптується до різних розмірів екрану і орієнтацій. • Перевірка коректності та зручності взаємодії: • Перевірка роботи всіх кнопок, панелей і форм на сторінках. • Впевненість, що користувач може взаємодіяти з інтерфейсом без перешкод та зручно.
- Тестування безпеки: • Перевірка вразливостей в системі: • Проведення тестів на вразливості, такі як SQL-ін'єкції та XSS-атаки. • Виявлення можливих шляхів атаки та відповідні заходи безпеки. • Валідація та обробка даних користувачів: • Перевірка, як система валідує та оброблює дані, які надходять від користувачів. • Переконання, що небезпечні дані коректно фільтруються та не впливають на безпеку. • Перевірка належного зберігання паролів: • Перевірка, як паролі користувачів зберігаються в базі даних та як вони захищені від незаконного доступу.
- Тестування сумісності: • Перевірка сумісності з різними браузерами: • Тестування платформи на різних веб-браузерах, таких як Chrome, Firefox, Safari та Edge. • Переконання, що інтерфейс коректно відображається і працює в усіх браузерах. • Тестування на різних операційних системах: • Перевірка роботи платформи на різних операційних системах, таких як Windows, macOS і Linux, для настільних пристроїв.
- Тестування витривалості: • Перевірка стійкості платформи: • Запуск платформи під великим навантаженням, включаючи багато користувачів і запити. • Моніторинг роботи системи під час навантаження та виявлення можливих перебоїв чи витоків ресурсів.
- Регресійне тестування: • Перевірка відсутності нових помилок: • Повторне виконання тестів, які були успішно пройдені раніше. • Перевірка, чи не виникли нові помилки після внесення змін до системи.
- Тестування відповідно до вимог і специфікацій: • Перевірка відповідності функціональності вимогам і специфікаціям проекту: • Порівняння результатів тестів із вимогами і специфікаціями для підтвердження відповідності.
База даних:
Загальний опис: База даних "SkillHub" є основним компонентом онлайн-освітньої платформи "SkillHub". Її ціль - забезпечити ефективну організацію та управління усіма аспектами навчального процесу. Платформа дозволяє користувачам реєструватися, переглядати доступні курси, записуватися на курси, вивчати навчальний матеріал, виконувати завдання та отримувати сертифікати після успішного завершення курсів. Завдяки базі даних, всі ці функції виконуються ефективно і забезпечують користувачам зручність та доступність.
Опис таблиць:
- Таблиця "Users" (Користувачі): • Ця таблиця зберігає дані про всіх користувачів платформи, включаючи їхні особисті дані, такі як ім'я та email, а також зашифровані паролі для входу на платформу. Кожен користувач має унікальний ідентифікатор та дату реєстрації.
- Таблиця "Roles" (Ролі): • Таблиця для зберігання ролей для користувачів
- Таблиця "Courses" (Курси): • У цій таблиці зберігаються дані про всі доступні курси, включаючи назву, опис, дати початку та закінчення кожного курсу. Кожен курс має унікальний ідентифікатор та пов'язаний з інструктором, який його створив.
- Таблиця "CourseEnrollments" (Записи на курси): • Ця таблиця служить для відстеження записів користувачів на конкретні курси. Вона містить інформацію про користувачів, які записалися на курси, та дату запису.
- Таблиця "CourseMaterials" (Матеріали курсу): • Тут зберігаються матеріали для кожного окремого курсу, включаючи назву та зміст матеріалу. Це допомагає організувати доступ до навчального контенту.
- Таблиця "Assignments" (Завдання): • У цій таблиці зберігаються завдання, пов'язані з кожним курсом, включаючи назву, опис та крайній термін виконання. Це дозволяє відстежувати та оцінювати виконання завдань користувачами.
- Таблиця "UserProgress" (Прогрес користувача): • Вона служить для відстеження прогресу кожного користувача в навчанні та виконанні завдань. Інформація про статус завершення завдань зберігається тут.
- Таблиця "Certificates" (Сертифікати): • Ця таблиця містить дані про видані сертифікати користувачам, які успішно завершили курси, включаючи дату видачі сертифіката.
- Таблиця "Instructors" (Інструктори): • Таблиця для інструкторів містить інформацію про осіб, які створюють та ведуть курси на платформі "SkillHub". Кожен запис включає ім'я інструктора, email та коротку біографію або опис, що допомагає користувачам знайти відповідних інструкторів для курсів.
Ця база даних створена з метою оптимізації функціонування та надання користувачам усіх можливостей для навчання та саморозвитку на платформі "SkillHub". Вона дозволяє зберігати, організовувати та відстежувати всю необхідну інформацію, необхідну для ефективної роботи освітнього ресурсу.
Для створення освітньої платформи нам потрібно розробити декілька ключових сторінок, щоб відобразити основні функціональні можливості. Ось приклади сторінок, які ми можемо розробити:
-
Головна сторінка:
- Презентація платформи.
- Пошукова стрічка для пошуку курсів.
- Вибірка популярних курсів.
- Вхід/Реєстрація.
-
Сторінка реєстрації/входу:
- Форма реєстрації для нових користувачів.
- Форма входу для існуючих користувачів.
-
Сторінка перегляду курсів:
- Список доступних курсів з фільтрацією та сортуванням.
- Деталі кожного курсу (опис, викладач, відгуки тощо).
-
Сторінка деталей курсу:
- Опис курсу.
- Відео та матеріали до уроків.
- Кнопка запису на курс.
-
Сторінка навчання:
- Відеоурок.
- Матеріали до уроку.
- Тести та завдання для перевірки знань.
-
Сторінка профілю користувача:
- Інформація про користувача.
- Список курсів, на які користувач записаний.
- Сертифікати про завершення курсів.
-
Адаптивність: Кожна сторінка має бути адаптована для перегляду на настільних та мобільних пристроях.