Skip to content

ik0zukeda/testing-platform

 
 

Repository files navigation

Техническое задание (ТЗ) на разработку системы тестирования знаний

1. Объект автоматизации:

Система веб-тестирования, позволяющая администраторам, преподавателям и студентам управлять процессом проведения тестирования. Платформа обеспечивает создание организаций и учебных групп, добавление студентов и преподавателей, назначение тестов и ведение статистики.

2. Бизнес-цели проекта:

  • Автоматизация процесса тестирования знаний для студентов.
  • Облегчение взаимодействия между преподавателями и студентами через организационную структуру.
  • Снижение трудозатрат на создание и администрирование тестов.
  • Улучшение контроля над результатами тестирования и успеваемостью студентов.

3. Задачи проекта:

  • Обеспечение удобного интерфейса для создания организаций, преподавателей и студентов.
  • Разработка механизма создания тестов на основе различных тем и вопросов.
  • Внедрение персонализированных приглашений для регистрации студентов.
  • Возможность ограничения количества попыток тестирования.
  • Ведение статистики и истории прохождения тестов.

4. Основные функции системы:

  1. Администратор:

    • Добавление организаций.
    • Управление преподавателями и студентами.
  2. Преподаватель:

    • Добавление студентов в учебные группы через именные пригласительные ссылки.
    • Создание тем тестов (разделов).
    • Добавление и удаление вопросов для каждой темы.
    • Назначение тестов учебным группам студентов с возможностью задания количества попыток.
    • Просмотр статистики по каждому тесту.
  3. Студент:

    • Регистрация через именную пригласительную ссылку (ФИО и учебная группа).
    • Введение личных данных (почта, пароль) для завершения регистрации.
    • Прохождение тестов по доступным темам.
    • Просмотр личной статистики по каждому тесту (результаты и попытки).
  4. Тестирование:

    • Вопросы для каждого теста выбираются случайным образом из банка вопросов по заданной теме.
    • Преподаватель устанавливает количество вопросов и попыток для каждого теста.
    • Хранение данных о каждой попытке прохождении теста (время, результат).

5. Use Case:

Use Case 1: Добавление незарегистрированного студента в организацию

  1. Создать именную ссылку – преподаватель создаёт персонализированную ссылку для студента.
  2. Форма введения данных студента (ФИО и учебная группа) – преподаватель вводит данные студента, такие как его имя, фамилию и учебную группу.
  3. Ввод данных студента – данные студента отправляются в систему.
  4. Добавление студента в список со статусом "неактивированный" – система добавляет студента в список, присваивая ему статус "неактивированный".
  5. Персональная ссылка для регистрации студента – система генерирует ссылку для регистрации студента.
  6. Передача ссылки лично – преподаватель передаёт студенту ссылку.
  7. Переход по ссылке – студент переходит по полученной ссылке.
  8. Форма введения почты и пароля – студент заполняет форму с электронной почтой и паролем для регистрации.
  9. Ввод почты и пароля – данные отправляются в систему.
  10. Смена статуса студента на "активированный" – система изменяет статус студента на "активированный".
  11. Уведомление об успехе – система уведомляет об успешной регистрации.

Use Case 2: Добавление зарегистрированного студента в организацию

  1. Создать именную ссылку – преподаватель создаёт персонализированную ссылку для студента.
  2. Форма введения данных студента (ФИО и учебная группа) – преподаватель вводит имя студента, его фамилию и учебную группу.
  3. Ввод данных студента – данные отправляются в систему.
  4. Добавление студента в список со статусом "неактивированный" – система добавляет студента в список, присваивая статус "неактивированный".
  5. Персональная ссылка для регистрации студента – система генерирует персонализированную ссылку для регистрации.
  6. Передача ссылки лично – преподаватель передаёт студенту сгенерированную ссылку.
  7. Переход по ссылке – студент переходит по полученной ссылке.
  8. Смена статуса студента на "активированный" – после перехода система меняет статус студента на "активированный".
  9. Уведомление об успехе – система уведомляет об успешной активации студента.

Use Case 3: Создание новой темы преподавателем

  1. Создать новую тему – преподаватель инициирует процесс создания новой темы.
  2. Форма заполнения темы (название и организация) – преподаватель вводит название темы и информацию об организации.
  3. Ввод данных темы – введённые данные отправляются в систему.
  4. Сообщение об успешном создании темы – система уведомляет преподавателя об успешном создании темы.

Шаги 5-8 выполняются многократно:

  1. Добавление вопроса – преподаватель начинает добавление вопроса к созданной теме.
  2. Форма ввода данных для вопроса (формулировка и ответы) – преподаватель вводит формулировку вопроса и варианты ответов.
  3. Ввод данных вопроса – введённые данные отправляются в систему.
  4. Сообщение об успешном добавлении вопроса – система уведомляет об успешном добавлении вопроса.

Use Case 4: Создание теста преподавателем

  1. Создать новый тест – преподаватель инициирует создание нового теста в системе.
  2. Форма заполнения теста – преподаватель заполняет форму с основными данными для теста, такими как: тема теста, количество вопросов, количество попыток прохождения, учебная группа студентов, для которой назначен тест.
  3. Ввод данных теста – введённые данные отправляются в систему для обработки.
  4. Назначение теста всем студентам учебной группы – система автоматически назначает тест всем студентам, принадлежащим указанной учебной группе.
  5. Сообщение об успешном создании теста – система уведомляет преподавателя об успешном создании теста и его назначении учебной группе студентов.

Use Case 5: Просмотр статистики по тесту

  1. Выбор вкладки "Статистика тестов" – преподаватель выбирает вкладку, чтобы перейти к статистике по своим тестам.
  2. Перенаправление на страницу со списком тестов преподавателя – система автоматически перенаправляет преподавателя на страницу, где отображён список всех созданных им тестов.
  3. Выбор теста – преподаватель выбирает конкретный тест, по которому хочет получить статистику.
  4. Предоставление статистики по тесту – система выводит статистику по выбранному тесту, включая: cредний результат студентов, cреднее время прохождения теста, cписок всех попыток прохождения теста студентами

Use Case 6: Прохождение теста студентом

  1. Выбор опции "Активные тесты" – студент выбирает пункт меню, чтобы перейти к списку тестов, которые доступны для прохождения.
  2. Список тестов, доступных для прохождения – система отображает список активных тестов, которые доступны для студента.
  3. Выбор определённого теста для прохождения – студент выбирает нужный тест из списка.
  4. Перенаправление на страницу теста – система перенаправляет студента на страницу выбранного теста.

Шаги 5-6 выполняются многократно: 5. Выбор ответа(ов) на вопрос теста – студент отвечает на текущий вопрос. 6. Следующий вопрос теста – система переходит к следующему вопросу теста.

  1. Завершение теста – студент завершает прохождение теста.
  2. Отображение результата пройденного теста – система выводит результат прохождения теста

Use Case 7: Добавление организации Администратором

  1. Выбор опции "Добавить организацию" – администратор переходит в раздел управления организациями и выбирает опцию для добавления новой организации.
  2. Форма для добавления организации – система отображает форму, в которой администратор вводит данные о новой организации, такие как: название организации, контактные данные (адрес, телефон, электронная почта), ответственное лицо
  3. Ввод данных организации – администратор заполняет необходимые поля и отправляет данные.
  4. Добавление организации в систему – система проверяет введённые данные и добавляет новую организацию в базу данных.
  5. Уведомление об успешном добавлении организации – система уведомляет администратора об успешном добавлении организации.

Use Case 8: Добавление незарегистрированного преподавателя в организацию

  1. Администратор выбирает опцию "Добавить нового преподавателя" – администратор переходит в раздел управления пользователями, выбирая опцию для добавления нового преподавателя.
  2. Создание именной пригласительной ссылки с ФИО преподавателя – администратор вводит данные нового преподавателя, такие как его фамилия, имя и отчество (ФИО), выбирает нужную организацию
  3. Персональная ссылка для регистрации преподавателя - система генерирует персонализированную пригласительную ссылку
  4. Преподаватель появляется в организации в статусе "неактивированный" – система добавляет преподавателя в организацию с временным статусом "неактивированный".
  5. Передача ссылки преподавателю – администратор передает преподавателю приглашение (например, по электронной почте или другим способом).
  6. Преподаватель переходит по ссылке – преподаватель получает ссылку и переходит по ней для завершения процесса регистрации.
  7. Форма для регистрации преподавателя – система отображает форму для данных преподавателя (электронную почту и пароль)
  8. Ввод данных преподавателя - преподаватель вводит в форму необходимые данные
  9. Смена статуса преподавателя на "активированный" – после успешного ввода данных и их подтверждения система меняет статус преподавателя на "активированный".
  10. Уведомление об успешной активации – система уведомляет преподавателя об успешной активации преподавателя в системе.

Use Case 9: Добавление зарегистрированного преподавателя в организацию

  1. Администратор выбирает опцию "Добавить нового преподавателя" – администратор переходит в раздел управления пользователями, выбирая опцию для добавления нового преподавателя.
  2. Создание именной пригласительной ссылки с ФИО преподавателя – администратор вводит данные нового преподавателя, такие как его фамилия, имя и отчество (ФИО), выбирает нужную организацию
  3. Персональная ссылка для регистрации преподавателя - система генерирует персонализированную пригласительную ссылку
  4. Преподаватель появляется в организации в статусе "неактивированный" – система добавляет преподавателя в организацию с временным статусом "неактивированный".
  5. Передача ссылки преподавателю – администратор передает преподавателю приглашение (например, по электронной почте или другим способом).
  6. Преподаватель переходит по ссылке – преподаватель получает ссылку и переходит по ней для завершения добавления.
  7. Смена статуса преподавателя на "активированный" – система меняет статус преподавателя на "активированный".
  8. Уведомление об успешной активации – система уведомляет преподавателя об успешной активации преподавателя в системе.

Use Case 10: Восстановление пароля пользователем

  1. Пользователь выбирает опцию "Восстановить пароль" – пользователь переходит на страницу восстановления пароля.
  2. Ввод e-mail адреса – пользователь вводит свой зарегистрированный e-mail.
  3. Получение восстановительной ссылки – система отправляет пользователю ссылку для восстановления пароля на указанный e-mail.
  4. Переход по ссылке для ввода нового пароля – пользователь переходит по ссылке для ввода нового пароля.
  5. Ввод нового пароля – пользователь вводит новый пароль в соответствующее поле.
  6. Обновление пароля в системе – система обновляет пароль пользователя на новый.

6. Технические требования:

  • Фронтенд: HTML, CSS, JavaScript
  • Бэкенд: Node.js
  • База данных: PostgreSQL
  • Алгоритмы шифрования: SHA256

Project setup

$ npm install

Compile and run the project

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 44.8%
  • TypeScript 36.1%
  • Handlebars 19.1%