Skip to content

N-N0th1n9/Coduelists

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Coduelists

7 Итерация

https://docs.google.com/presentation/d/1HvGnNoPaQ3qJMIiVB8_l-6tvqpsS8MhXZ_Y9PFRQ5Ho/edit#slide=id.g2bf117ea868_0_75

Состав команды

Рыжик Даниил, Цыганов Владислав, Кочиев Сергей, Черных Егор, Киселёв Артём, Белов Степан, Канашин Дмитрий

Содержание

Введение

О проекте

Tasks.Tycoon. Наше веб-приложение обеспечивает функционал, связанный с процессом тестирования пользователей с помощью заданий.

Цель проекта

Создание веб-приложения, где можно создавать, выполнять авто проверяемые задания и получать по ним статистику.

Назначение

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

Причины возникновения проекта

Наш проект начался с просьбы школьного преподавателя создать систему для тестирования учеников, чтобы отслеживать их уровень подготовки к ЕГЭ по информатике. Позже, общаясь с другими преподавателями, мы обнаружили, что многие из них не используют подобные сервисы по разным причинам: сложный интерфейс, платные тарифы и другие. Так и родился проект под названием Task.Tycoon.

Какие проблемы решает проект

Проблему автоматизации процесса тестирования, сбора статистики по заданиям.

Глоссарий

  • Задание: создается пользователем с соответствующим тарифом. Состоит из вопросов.
  • Вопрос: составная часть Задания может быть одним из 4 типов.
  • Канал - группа в которой создатель имеет возможность публиковать задания для своих подписчиков.
  • Лента рекомендаций - страница с рекомендациями, выводящая контент в зависимости от интересов пользователя. Она разделена на страницы двух видов: Лента заданий и Лента каналов.
  • Лента заданий - отображает задания, которые могут быть интересны пользователю (интерес основывается на истории просмотра)
  • Лента каналов - отображает каналы, которые могут быть интересны пользователю (интерес основывается на истории просмотра)
  • Модератор: пользователь, имеющий права модератора. Следит за соблюдением правил платформы и обрабатывает жалобы и запросы пользователей.
  • Мои задания - страница, которая есть у любого пользователя. на этой вкладке появляются новые задания из всех каналов, на которые он подписался.
  • Подписка - возможность получить доступ к приватным заданиям канала на платной основе.
  • Пользователь: посетитель сайта.
  • Профиль: страница, на которой хранится информация о пользователе.
  • Создатель - пользователь, который создал канал
  • Тариф: привилегии аккаунта пользователя, приобретаемые на платной основе. В них могут входить: большее кол-во создаваемых заданий, каналов, количество вопросов в заданиях.
  • Подписчик - пользователь, который подписался на канал.
  • ДЗ - страница, которая есть у любого пользователя. на этой вкладке появляются новые задания из всех каналов, на которые он подписался.
  • Рейтинг - средняя оценка задания. Оценить задание можно после его выполнения (пятибалльная шкала).
  • Заявки - страница, которая доступна учителю. Там появляются заявки, которые оставили пользователи для подписки на канал. Он может их отклонить или принять.
  • Избранное - страница, которая доступна любому пользователю. в ней хранятся все задания которые были отмечены пользователем как “избранное”.

MVP

  • Регистрация и авторизация: Пользователи должны иметь возможность зарегистрироваться и авторизоваться на платформе..
  • Личный кабинет: Пользователи должны иметь доступ к личному кабинету, где они могут просматривать свои результаты, настраивать профиль и создавать и редактировать задания.
  • Создание заданий: Пользователи должны иметь возможность создавать здания различных типов (тестовые задания, задания с нескольколькими ответами и задания с развернутым ответом).
  • Прохождение заданий: Пользователи должны иметь возможность проходить задания, созданные другими пользователями.
  • Проверка ответов: Платформа должна автоматически проверять ответы на тестовые задания и задания с нескольколькими ответами
  • Результаты: Пользователи должны иметь возможность видеть результаты своих заданий на которые они ответили

Контекстная диаграмма

  1. С кем взаимодействует система?
    • Пользователи проходящие тесты Пользователь предоставляет свои ответы и тест, на который он ответил. Система возвращает ему результат ответов, посчитанную оценку в баллах
    • Пользователи покупающие тариф Пользователь предоставляет определенную сумму, система дает ему соответствующие привилегии
    • Пользователи-создатели задания Пользователь предоставляет название задания, его вопросы с ответами. Система создает его и дает доступ к статистике выполнения задания.
    • Пользователи-подписчики каналов Пользователь предоставляет определенную сумму. Система дает доступ к платным заданиям канала.
    • Пользователи-модераторы Пользователь предоставляет системе результат рассмотрения жалоб/вопросов. Система реагирует на них и принимает соответствующие меры.
    • Платежная система Система заимствует у платежной системы API для совершения онлайн-покупок (оформление тарифа, подписка на канал)
  2. Автоматизированные процессы
    • Процесс проверки вопросов
    • Процесс подсчета оценки за задания
    • Процесс автоматизации уведомления
    • Процесс формирования персональных рекомендаций заданий
    • Процесс продления подписки
    • Процесс формирования статистики
  3. Контекстная диаграмма

contextdiagram

Диаграмма вариантов использования

https://drive.google.com/file/d/1VIucrObQF_OBukRxdnSEftkdgNRIhLM7/view

Архитектурный шаблон

Для нашего проекта мы выбрали многослойную архитектуру. Она хорошо подходит для web-приложений и проста в реализации. Ее суть заключается разделение системы на слои(представления, бизнес-логики, доступа к данным, безопасности и др.)

  1. Обоснование выбора многослойной архитектуры:
  • Простота реализации: Многослойная архитектура хорошо подходит для начинающих команд как мы, так как ее концепция легко понимается и реализуется. Это позволит нам быстрее начать разработку проекта и уменьшить риски, связанные с выбором более сложных архитектурных стилей.
  • Модульность: Разделение системы на слои обеспечивает высокую модульность, что упрощает разработку, тестирование и сопровождение кода. Каждый слой может быть разработан и протестирован независимо, что делает код более понятным и управляемым.
  • Масштабируемость: Многослойная архитектура легко масштабируется путем добавления новых слоев или серверов. Это позволит нам без труда увеличивать производительность и функциональность вашего приложения по мере роста его популярности. Соответствие требованиям: Многослойная архитектура хорошо подходит для реализации веб-приложений с различными функциональными и нефункциональными требованиями. Она может быть адаптирована для обеспечения безопасности, производительности и других важных характеристик.
  1. Оценка недостатков:
  • Снижение производительности: Снижение производительности на 5-10% будет незначительным для нашего небольшого веб-приложения. Однако важно будет провести тщательную оптимизацию и тестирование, чтобы убедиться, что производительность остается на приемлемом уровне.
  • Сложность управления зависимостями: В нашем проекте будет небольшое количество зависимостей, следовательно это убирает недостаток связанный со сложностью управления зависимостями. Однако важно тщательно планировать архитектуру и использовать инструменты управления зависимостями, чтобы избежать проблем в будущем. Также в связке с модульной архитектурой будем использовать компонентно-ориентированную архитектуру:
  • Соответствие многослойной архитектуре: Компонентно-ориентированная архитектура хорошо сочетается с многослойной архитектурой. Она позволяет разделять слои на более мелкие компоненты, что further improves модульность и управляемость кода.
  • Дополнительные преимущества: Повторное использование компонентов: Компоненты могут быть повторно использованы в разных слоях и приложениях, что экономит время и ресурсы.
  • Расширяемость: Новые компоненты могут быть легко добавлены в систему без необходимости рефакторинга существующего кода. Перед началом разработки будет проведено тщательное проектирование, необходимо тщательно продумать архитектуру каждого слоя и компонента. Это поможет избежать проблем с производительностью, зависимостями и другими аспектами разработки. Существует множество инструментов и библиотек, которые могут упростить разработку и управление многослойной архитектурой.

Имплементация архитектуры.

Frontend

Frontend-часть будет построена с помощью многослойной архитектуры на основе фреймворка Nextjs и библиотеки React. Более подробный стек будет описан ниже. Многослойную архитектуру можно назвать монолитной – это иерархическая архитектура, т.е. каждый слой приложения отвечает за свою часть функционала, например: работа с базой, логирование, интерфейс. Одним из представителей такой архитектуры является Feature-Sliced Design (https://feature-sliced.design/ru/docs/get-started/overview). Она была выбрана так как в будущем для проекта важно хорошая масштабируемости. В планах активно развивать данных проект и добавлять в него новые фичи Слои в Featured-sliced design группируются так, чтобы сделать поток данных в приложении линейным и однонаправленным. Это позволяет избежать неявных связей между модулями.

  1. Структура Featured-sliced Design

изображение

Семь слоев делят код по зонам ответственности. Они строго стандартизированы во всех проектах: в любой команде каждый слой будет отвечать за одно и то же. Весь код проекта распределяется между слоями по принципу: чем выше слой, тем сильнее он привязан к предметной области конкретного приложения. Нижний слой наиболее абстрактный. В каждом слое находятся слайсы. Они разделяют код по предметной области, к которой относится та или иная функция. Это облегчает поиск нужного элемента в проекте. В слайсах находятся сегменты, которые делят код по техническому назначению. Один из них — Public API, который нужен для импорта других сегментов наружу. То есть, мы можем инкапсулировать логику внутри слайса. Чаще всего встречаются:

  • ui — визуальное представление
  • model — бизнес-логика
  • lib — утилиты, хуки, функции-помощники
  • constants - константы
  • types - типы данных используемые в данном слайсе
  • api — работа с API
  1. Какие бывают слои и зачем они нужны?
  • Shared — слой для абстрактного, переиспользуемого кода. Это могут быть иконки, отображение кнопок, вспомогательные функции и утилиты, которые неоднократно применяются в разных местах приложения. Важное отличие слоя Shared от остальных: в нём нет слайсов. Он состоит из сегментов, которые мы можем многократно переиспользовать во всем приложении. Пример слоя shared:

изображение

  • Entities — слой для конкретных бизнес-сущностей. Например, для приложения социальной сети это будут: статья, комментарий, страна. Пример слоя entities.

изображение

  • Features — слой для элементов кода, которые определяют, как пользователь взаимодействует с бизнес-логикой. Это различные кнопки, выпадающие меню, селекты и всё остальное, что несёт бизнесовую логику и с чем можно взаимодействовать. Одна фича должна выполнять одну задачу.

изображение

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

изображение

  • Pages — также композиционный слой. Он нужен, чтобы собирать из виджетов, сущностей и фичей полноценные страницы приложения. Главное правило для страниц — они должны быть максимально «тонкими», не содержать дополнительную бизнес-логику.

изображение

  • App — это самый верхний, инициализирующий слой. Он содержит корневой компонент, глобальные типы, стили, стейт и оборачивает приложение в провайдеры и контексты — то, что присуще проекту в общем.

изображение

  1. Как будет реализован Data Layer (Слой данных).

Данный слой отвечает за взаимодействие с сервером и сторонним API. Реализовано это взаимодействие может быть в сегменте “api” слоя, в котором нам нужны данные с бекенда. Data Layer отвечает за определение методов для выполнения HTTPS-запросов и создание моделей данных для удобной работы с полученной информацией.

Почему HTTPS-запросы, а не HTTP? HTTPS является расширением протокола HTTP с использованием шифрования TLS (Transport Layer Security). Он безопаснее, оптимизированней и вызывает больше доверия у пользователей.

В качестве инструментов для обращения к серверу или стороннему API и управления состояниями будет использоваться React Query (https://tanstack.com/query/latest/docs/framework/react/overview). Его преимущество перед Axios и Fetch в том, что он она позволяет легко получать, обновлять состояние сервера, автоматически кэшировать, синхронизировать данные.

В проекте будет использоваться REST API в качестве основного способа взаимодействия между клиентским приложением и сервером. REST API прост, гибок и имеет широкую поддержку.

Модель REST запроса:

изображение

  1. Как будет реализован Infrastructure Layer (Слой инфраструктуры)

Управление роутингом контролируется фреймворком Nextjs. Pages Router - это маршрутизатор, основанный на файловой системе и построенный на концепции страниц. Когда файл добавляется в каталог страниц, он автоматически становится доступным в качестве маршрута.

В Next.js страница - это React-компонент, экспортированный из файла .js, .jsx, .ts или .tsx в каталоге pages. Каждая страница связана с маршрутом на основе имени ее файла.

Пример: Если вы создадите страницу pages/about.js, экспортирующую React-компонент, как показано ниже, она будет доступна по адресу /about.

изображение

Для улучшения читабельности кода и избежания ошибок будет использоваться prettier, eslint и husky.

Внешние системы

  • Microsoft Excel
  • Нейросеть FuzzyWuzzy
  • Телеграм бот Task.Tycoon

Стейкхолдеры, их интересы и ответственности

  1. Дизайнеры:
    • Интересы: Создание удобного и привлекательного интерфейса для пользователей и администраторов.
    • Ответственности: Разработка прототипов, UI/UX дизайн, создание макетов и графических элементов.
  2. Backend-разработчики:
    • Интересы: обеспечить надежную, масштабируемую и функциональную серверную часть приложения.
    • Ответственности: Разработка API, работа с базами данных, логика приложения, серверная инфраструктура.
  3. Frontend-разработчики:
    • Интересы: Создание интерактивного и отзывчивого интерфейса для пользователей.
    • Ответственности: Разработка веб-интерфейса, работа с JavaScript, HTML, CSS, интеграция с API.
  4. Тестировщики:
    • Интересы: обеспечить качество и функциональность приложения.
    • Ответственности: проводить тестирование приложения, выявлять ошибки, предоставлять отчеты.
  5. Пользователи:
    • Интересы: получить удобный инструмент для прохождения тестов и получения результатов.
    • Ответственности: проходить тесты, предоставлять обратную связь о работе приложения.
  6. Инвесторы:
    • Интересы: получение прибыли.
    • Ответственности: грамотное принятие решений, которые поспособствуют развитию проекта.
  7. Модераторы:
    • Интересы: поддержание порядка и безопасности на платформе.
    • Ответственности: справедливое и беспристрастное отношение к пользователям.
  8. Учителя:
    • Интересы: обеспечение качественного обучения, оценка знаний учеников, возможность получать прибыль с помощью монетизации.
    • Ответственности: предоставление качественного материала и объективная оценка знаний учеников.

Функциональные требования

  1. Регистрация пользователя(заполнение формы регистрации)
    • 1.1 Никнейм
    • 1.2 Почта
    • 1.3 Пароль
    • 1.4 Подтверждение пароля
  2. Вход пользователя(заполнение формы входа)
    • 2.1 Почта
    • 2.2 Пароль
  3. Профиль пользователя
    • 3.1 Редактирование профиля
      • 3.1.1 Никнейм
      • 3.1.2 Аватар
      • 3.1.3 Имя
      • 3.1.4 Фамилия
      • 3.1.5 Почта
      • 3.1.6 Доступность дополнительной информации
        • 3.1.6.1 Скрыта
        • 3.1.6.2 Не скрыта
      • 3.1.7 Пароль
    • 3.2 Просмотр своего профиля
      • 3.2.1 Никнейм
      • 3.2.2 Статус
      • 3.2.3 Аватар
      • 3.2.4 Имя
      • 3.2.5 Фамилия
      • 3.2.6 Почта
      • 3.2.7 Статистика
        • 3.2.7.1 Количество созданных заданий
        • 3.2.7.2 Количество пройденных заданий
      • 3.2.8 Созданные задания
      • 3.2.9 Пройденные задания
      • 3.2.10 Созданные каналы
      • 3.2.11 Дата регистрации аккаунта
    • 3.3 Просмотр чужого профиля
      • 3.3.1 Если у аккаунта скрыта доп. информация
        • 3.3.1.1 Никнейм
        • 3.3.1.2 Аватар
      • 3.3.2 Если у аккаунта не скрыта доп. информация
        • 3.3.2.1 Никнейм
        • 3.3.2.2 Аватар
        • 3.3.2.3 Имя
        • 3.3.2.4 Фамилия
        • 3.3.2.5 Созданные задания
        • 3.3.2.6 Созданные каналы
        • 3.3.2.7 Дата регистрации аккаунта
        • 3.3.2.8 Статистика - 3.3.2.8.1 Количество созданных заданий
          • 3.3.2.8.2 Количество пройденных заданий
  4. Взаимодействия с заданиями
    • 4.1 Создание задания (заполнение формы создания задания)
      • 4.1.1 Название
      • 4.1.2 Краткое описание
      • 4.1.3 Полное описание
      • 4.1.4 Настройки
        • 4.1.4.1 Отображать проходящему результат?
        • 4.1.4.2 Количество попыток (10 макс)
        • 4.1.4.3 Тип видимости
          • 4.1.4.3.1 Публичное
          • 4.1.4.3.2 Приватное
          • 4.1.4.3.3 Канал - 4.1.4.3.1.1 Название канала
            • 4.1.4.3.1.2 По подписке?
      • 4.1.5 Загрузка материалов (файлов)
      • 4.1.6 Вопросы
        • 4.1.6.1 Текст вопроса
        • 4.1.6.2 Максимальное количество баллов за вопрос (целое число)
        • 4.1.6.3 Тип вопроса
          • 4.1.6.3.1 Тестовый вопрос с одним верным ответом
          • 4.1.6.3.2 Тестовый вопрос с несколькими верными ответами
          • 4.1.6.3.3 Вопрос с развернутым ответом и автоматической - проверкой
          • 4.1.6.3.4 Вопрос с развернутым ответом без - автоматической проверки
        • 4.1.6.4 Ответы на вопрос
          • 4.1.6.4.1 Если тип вопроса - “тестовый с одним верным ответом”, то создать нужное кол-во ответов, у каждого указать текст ответа и выбрать из них только один верный.
          • 4.1.6.4.2 Если тип вопроса - “тестовый с несколькими верными вариантами ответа”, то создать нужное кол-во ответов, у каждого указать текст ответа и выбрать из них минимум один верных.
          • 4.1.6.4.3 Если тип вопроса: “с развернутым ответом и автоматической проверкой”, то указать текст ответа
          • 4.1.6.4.4 Если тип вопроса: “с развернутым ответом без автоматической проверки”, то нельзя указать ответ
    • 4.2 Редактирование задания(к редактированию задания входят изменение всех параметров которые у заказаны в пункте 4.1)
    • 4.3 Удаление задания
    • 4.4 Просмотр статистики задания
      • 4.4.1 Самый проблемный вопрос
      • 4.4.2 Ответы всех учеников
        • 4.4.2.1 Ответ одного ученика
          • 4.4.2.1.1 Количество попыток
          • 4.4.2.1.2 Ответы
          • 4.4.2.1.3 Результаты ответов
          • 4.4.2.1.4 Результирующий балл
          • 4.4.2.1.5 Процент верного выполнения
      • 4.4.3 Генерация отчета в формате excel файла, дублирующего статистику.
    • 4.5 Решение заданий
      • 4.5.1 Ответ на вопросы
        • 4.5.1.1 Если тип вопроса - “тестовый с одним верным ответом”, то выбрать один вариант ответа.
        • 4.5.1.2 Если тип вопроса - “тестовый с несколькими верными вариантами ответа”, то выбрать минимум один вариант ответа.
        • 4.5.1.3 Если тип вопроса: “с развернутым ответом и автоматической проверкой”, то написать ответ вручную
        • 4.5.1.4 Если тип вопроса: “с развернутым ответом без автоматической проверки”, то написать ответ вручную
      • 4.5.2 Оценка задания
  5. Взаимодействие с каналом
    • 5.1 Создание канала (заполнение формы создания канала)
      • 5.1.1 Название
      • 5.1.2 Краткое описание
      • 5.1.3 Полное описание
      • 5.1.4 Рекомендовать в ленте?
      • 5.1.5 Тип входа
        • 5.1.5.1 Свободный
        • 5.1.5.2 По запросу
      • 5.1.6 Цена подписки
        • 5.1.6.1 Сумма
        • 5.1.6.2 Бесплатно
    • 5.2 Редактирование канала(к редактированию канала входят изменение всех параметров которые у заказаны в пункте 5.1)
    • 5.3 Удаление канала
    • 5.4 Просмотр статистики канала
      • 5.4.1 Название
      • 5.4.2 Количество пользователей
      • 5.4.3 Количество заданий
  6. Сертификация пользователя
    • 6.1 Оставить заявку на сертификацию аккаунта
  7. Просмотр ленты рекомендаций
    • 7.1 Просмотр ленты рекомендуемых заданий
    • 7.2 Просмотр ленты рекомендуемых каналов
  8. Поисковая система
    • 8.1 Заданий
    • 8.2 Каналов
  9. Покупка платного контента
    • 9.1 Оформление платной подписки на канал
    • 9.2 Покупка тарифа для расширения возможностей аккаунта
  10. Раздел поддержки
    • 10.1 FAQ, возможность указать неточность/ошибку, возможность предложить улучшение проекта, задать вопрос.
  11. Безопасность
    • 11.1 Хранение персональных и чувствительных данных в закрытом контуре
    • 11.2 Шифрование/маскирование при передаче и использовании данных. В т.ч. шифрование с асимметричными ключами или хэширование с использованием динамической соли.
    • 11.3 DDOS защита
    • 11.4 Подсистема мониторинга
      • 11.4.1 RED метод сбора метрик (rate - количество запросов в сек, errors- количество ошибок (при интеграции между системами, системных, пользовательских), duration- время запроса)
      • 11.4.2 Бизнес метрики (кол-во заданий, кол-во каналов, кол-во новых пользователей, общее кол-во пользователей, количество продаж)
    • 11.5 Администратор контента(отзывов, каналов, заданий)
      • 11.5.1 Сотрудники, реагирующий на жалобы
        • 11.5.1.1 Неподходящий контент (жалобы на контент, который нарушает правила проекта, нормы приличия, некачественный материал, ложные сведения)
        • 11.5.1.2 Нарушение авторских прав (жалобы на контент, который нарушает авторские права, такие как плагиат или незаконное использование чужого контента без разрешения)
        • 11.5.1.3 Технические неполадки

В виде диаграммы: https://drive.google.com/file/d/1ko9Z7CKhoknuoLTJwGjIgNsicjryRcfb/view?usp=sharing

Структура данных

изображение

Автоматизируемые процессы

  • Автоматическая проверка вопросов, кроме тех, чей тип “вопрос с развернутым ответом без автоматической проверки”
  • Автоматический подсчет оценки за задание
  • Автоматическая отправка уведомлений о появлении новых заданий от преподавателя или канала, а также оповещение пользователя за несколько дней до окончания подписки.
  • Автоматическая персональная рекомендация заданий
  • Автоматическое продление подписки при согласии
  • Автоматическое формирование статистики профиля, каналов, заданий.

Конкурентный анализ

Coduels Stepik Google Forms SkySmart
Сертификация + + - +
Свободный доступ
к публикации контента
+ - + -
Объективный рейтинг + + - -
Лента рекомендаций,
основаннаяна предпочтениях
+ + - -
Весь базовый функционал
бесплатный
+ - + -
Гибкая настройка видимой в
профиле информации
+ - - -
Неограниченное количество
каналов для одного автора
+ - + -
Автоматическая проверка и
валидация ответов
+ + + +
Индивидуальный подход + + - +

Риски реализации

  1. Безопасность данных:
    • С увеличением количества пользователей и их активности на сайте, увеличивается риск столкнуться с утечкой личной информации, несанкционированным доступом к аккаунтам пользователей или атаками на сервер
  2. Некачественный контент:
    • Пользователи могут выкладывать нежелательный контент (спам; контент, нарушающий авторские права; неправильные задания; незаконные материалы).
  3. Отсутствие интереса пользователей:
    • Низкая активность или недостаточное количество контента. Это может произойти из-за недостаточной рекламы или большой конкуренции.
  4. Неэффективная модерация:
    • Большое количества контента, который пользователи могут выкладывать, может привести к спаму или распространению вредоносного контента(некорректные задания), которые модерация не сможет контролировать
  5. Недостаточная монетизация:
    • Недостаточная монетизация может привести к финансовым затруднениям или закрытию проекта
  6. Технические проблемы:
    • Сайт может столкнуться со сбоем сервера, проблемами с производительностью, несовместимостью с различными браузерами или устройствами
  7. Юридические проблемы:
    • Нарушение авторских прав, недостаточная защита потребителя (утечка личных данных пользователей) могут привести к штрафам или закрытию проекта.
  8. Нехватка обновлений и поддержки:
    • Может привести к уязвимости безопасности, снижению производительности.
  9. Изменения в технологическом стеке:
    • Технологии быстро меняются, следовательно нужно быть готовым к их внедрению

План поэтапной разработки и расширения системы

изображение

Макет

https://www.figma.com/file/e5DF4glQ8WyW4nWMnzhKiP/task2?type=design&node-id=32%3A453&mode=design&t=vkEFYCV6oL5G4o3s-1

https://www.figma.com/file/7K3Mg8BbqEdsu5FcMKNHa6/task?type=design&node-id=1%3A26&mode=design&t=O26I3WKh4HYC3T53-1

Требования атрибутов качества

Стандарт ISO 9126-4

Id Атрибут качества Общее измерение Внутренние измерения
QA1 Функциональность 4
Полнота 5
Точность 3
Совместимость 3
Безопасность 4
QA2 Надежность 3
Зрелость 4
Отказоустойчивость 2
Восстанавливаемость 3
QA3 Юзабилити 5
Понятность 5
Обучаемость 5
Эффективность использования 4
Привлекательность 5
QA4 Эффективность 1
Поведение во времени 1
Утилизация ресурсов 1
QA5 Ремонтопригодность 1
Анализируемость 1
Изменчивость 1
Стабильность 2
Тестируемость 1
QA6 Переносимость 4
Адаптивность 4
Возможность установки 5
Сосуществование 2

Ограничения и подтверждения

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

  1. Ограничение доступа к личной информации: Детям не должно быть разрешено предоставлять личные данные без согласия родителей или опекунов. Это означает, что система должна быть настроена таким образом, чтобы ограничить доступ к такой информации или требовать подтверждение от взрослых.
  2. Ограничение доступа к нежелательному контенту: Система должна иметь фильтры и механизмы контроля, чтобы предотвратить доступ детей к нежелательному или нецензурному контенту. Это включает в себя контроль доступа к сторонним ресурсам и мониторинг контента, предоставляемого пользователями.
  3. Контроль доступа к коммуникациям: Поскольку в системе предусмотрена возможность общения между пользователями, необходимо иметь механизмы контроля, чтобы предотвратить нецензурные или вредоносные сообщения, а также обеспечить безопасную обстановку для общения.
  4. Механизмы безопасности: Для защиты от нежелательных действий или злоумышленных атак следует внедрить механизмы безопасности, такие как проверка подлинности, шифрование данных и мониторинг активности пользователей.
  5. Обучение безопасности в интернете: Система может предоставлять ресурсы и обучающие материалы по безопасности в интернете, чтобы помочь детям и их родителям развивать навыки цифровой грамотности и осознанного использования онлайн-ресурсов.

BackEnd Разработка

Физическая модель данных изображение изображение изображение изображение

Админ панель изображение изображение

Дизайн

Демо сайта https://tasknew-blush.vercel.app/

Используемые ресурсы

Используемые ресурсы:

Архитектура клиентского приложения

GigaChat

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors