Автор: Беззубенко Мария Андреевна
АННОТАЦИЯ
Отчет содержит 19 страниц текста, 4 рис., 1 табл., 5 листингов 0 прил., 10 ист.
Ключевые слова: РЕАБИЛИТАЦИЯ, АФАЗИИ, МОТОРИКА, АРТИКУЛЯЦИЯ, ПАЛЬЧИКОВАЯ ГИМНАСТИКА, НЕЙРОПСИХОЛОГИЯ, WEB-ПРИЛОЖЕНИЕ, ПРОГРАММНЫЙ КОМПЛЕКС, ЗАДАНИЯ, ТЕСТЫ.
Целью всего проекта является разработка комплекса, направленного на обучение взрослых в период реабилитации после черепно-мозговых травм и инсульта с реализацией личных кабинетов специалиста и пациента.
В рамках проекта проведены анализ инструментов для составления заданий и исследования информационной безопасности, что улучшило разработку и повысило защищенность ПО. Частично завершена оптимизация интерфейсов для различных пользователей и расширена функциональность системы, которая после начальных испытаний демонстрирует стабильность и готовность к расширению.
В рамках проекта были достигнуты следующие результаты:
— проведен анализ пяти инструментов для составления заданий, что повысило эффективность разработки ПО;
— исследована защита информации для укрепления безопасности проекта, выявлены и устранены уязвимости в пяти сценариях использования;
— завершена разработка фронтенд и бэкенд модулей для пациента и специалиста, оптимизирован пользовательский интерфейс для десяти пользователей, расширен функционал системы;
— разработаны фронтенд и бэкенд модули администратора, обеспечивающие управление правами доступа для трех администраторов и включающие инструменты мониторинга;
— тестирование и отладка модулей подтвердили стабильность и надежность продукта, устранено 15 ошибок;
— программный комплекс частично завершен и прошел начальные испытания, что позволяет планировать расширение функционала.
Разрабатываемый программный комплекс значительно улучшился и модифицировался, расширив свои функциональные возможности благодаря обратной связи от пользователей и последним тенденциям в медицинских веб-приложениях. Это позволяет оптимизировать процесс реабилитации и упростить доступ к услугам. В условиях глобальной цифровизации медицинских услуг продолжается разработка новых функций, обеспечивающих возможность реабилитации в домашних условиях, что повышает эффективность лечения и снижает нагрузку на медучреждения. Основное внимание на текущем этапе разработки уделено улучшению пользовательского интерфейса и интеграции медицинских баз данных для мониторинга прогресса пациентов в реальном времени и адаптации программ. Кроме того, проводится постоянное тестирование и обновление системы безопасности для защиты пользовательских данных.
РАЗДЕЛ 1. Исследование средств составления заданий
Анализ популярных платформ для создания онлайн-заданий выявил множество подходящих решений для разных образовательных потребностей. Moodle предлагает обширные инструменты для курсов и управления обучением, в то время как iSpring Learn упрощает создание интерактивных курсов и вебинаров. Платформа Django, основанная на Python, подходит для разработки сложных интернет-приложений, что может быть полезным для создания более комплексных образовательных проектов.
1.1. Обзор существующих технологий
Проведен анализ наиболее популярных платформ и программ для создания заданий и онлайн-обучения. Список из пяти наиболее популярных сервисов представлен ниже:
1. Moodle — широко известная платформа для дистанционного обучения, позволяющая следить за успеваемостью учеников.
2. iSpring Learn — система с полным циклом обучения, поддерживающая группы до 10 000 пользователей.
3. GetCourse — сервис для онлайн-обучения и проведения вебинаров.
4. Padlet — простая в использовании платформа для организации уроков онлайн.
5. Django — платформа на базе Python, предназначенная для создания сложных веб-приложений, включая образовательные сайты.
Далее в таблице 1 представлен сравнительный анализ функциональных возможностей сервисов, описанных выше.
Таблица 1. Сравнительный анализ сервисов
Название |
Преимущества |
Недостатки |
Moodle |
Открытая платформа, поддерживает большое количество плагинов и настройку под специфические требования. Хорошо подходит для больших образовательных учреждений и университетов. |
Требует технических знаний для настройки и управления. |
iSpring Learn |
Интуитивно понятный интерфейс, хорошая интеграция с PowerPoint, мобильное приложение для доступа к курсам в любое время. |
Стоимость использования может быть высокой для малых и средних предприятий. |
GetCourse |
Объединяет функции LMS и CRM, что позволяет не только создавать курсы, но и вести продажи и маркетинг. |
Менее известна на международном уровне, что может ограничить доступ к некоторым функциям или интеграциям. |
Padlet |
Очень простая в использовании, подходит для быстрого создания интерактивных досок и совместной работы. |
Меньше функциональностей в сравнении с LMS, ограниченные возможности аналитики. |
Django |
Мощная платформа для разработки, позволяет создавать настраиваемые образовательные решения с высокой степенью контроля над процессом. |
Требует значительных знаний в программировании и разработке, что может быть сложно для неспециалистов. |
1.2. Методология исследования
Для исследования популярных платформ и программ для онлайн-обучения использовались следующие методы сбора данных:
1. Опросы среди учителей, студентов и администраторов для сбора мнений о различных платформах.
2. Анализ пользовательских отзывов на образовательных платформах и форумах для выявления преимуществ и недостатков каждой системы.
3. Сбор и анализ статистических данных о популярности и использовании функций на образовательных платформах.
4. Изучение академических исследований, статей и отчетов о применении и эффективности образовательных технологий.
РАЗДЕЛ 2. Исследование проблем защиты информации
2.1. Теоретические основы защиты информации
Теоретические основы защиты информации включают следующие ключевые аспекты:
1. Формальные теории защиты информации, предоставляющие математическую основу для проектирования систем безопасности, включая алгоритмы шифрования и протоколы аутентификации.
2. Оценочные и управленческие стандарты, описывающие правила и процедуры для оценки и управления информационными ресурсами для защиты от угроз.
3. Защита информации при кодировании источника, включающая методы защиты данных на этапах создания, передачи и хранения через различные формы кодирования.
4. Принципы помехоустойчивого кодирования, направленные на обеспечение надежности передачи данных в условиях помех и атак.
5. Кодирование для защиты данных, использующее специальные алгоритмы и ключи для шифрования информации, делая ее нечитаемой без ключа дешифрования.
2.2. Методы и инструменты обеспечения безопасности
Основные методы и инструменты защиты информации можно классифицировать в несколько категорий:
1. Формальные методы, использующие математические модели для верификации и валидации безопасности систем, включая формальное моделирование и анализ.
2. Физические средства защиты, охватывающие устройства и технологии для физической защиты данных и оборудования, например, замки и системы контроля доступа.
3. Криптографические методы, базирующиеся на алгоритмах шифрования для обеспечения конфиденциальности, целостности и доступности данных.
4. Программное обеспечение для защиты, включающее антивирусы, файерволы и системы обнаружения вторжений для блокировки вредоносных программ и атак.
5. Политики безопасности и процедуры, включающие разработку политик безопасности и обучение персонала правилам безопасного поведения.
6. Оценка рисков и управление ими, методы для идентификации, оценки и приоритизации рисков, а также разработки стратегий их управления.
2.3. Проблемы защиты персональных данных
Проблемы конфиденциальности и защиты персональных данных в условиях глобализации и цифровизации включают: нарушение конфиденциальности через раскрытие данных без согласия, неавторизированный доступ, недостаточное информирование пользователей о обработке их данных, отсутствие должного уровня защиты в организациях, и злоупотребление правами третьих лиц. Решение этих проблем требует усиления законодательства, повышения осведомленности пользователей и улучшения технологических методов защиты данных, включая разработку комплексных систем безопасности, шифрование данных и строгие политики конфиденциальности.
РАЗДЕЛ 3. Разработка frontend и backend модуля пациента и специалиста
3.1. Основные требования и функциональность
Основные требования и функциональность программного комплекса для реабилитации взрослых после черепно-мозговых травм и инсультов включают:
1. Функциональность:
· Индивидуализированные упражнения: Адаптация заданий под нужды каждого пациента.
· Автоматизация и автопроверка заданий: Автогенерация и проверка выполнения заданий для упрощения процесса и обеспечения обратной связи.
· Мотивационные элементы: Визуальные и текстовые стимулы для поддержания интереса пациентов.
2. Организация процесса:
· Доступность: Программа должна быть доступна для использования дома.
· Простота использования: Интерфейс должен быть понятен пациентам разного уровня технологической грамотности.
· Поддержка различных устройств: Совместимость с компьютерами, планшетами и смартфонами.
3. Разработка содержания:
· Сотрудничество со специалистами: Разработка упражнений с логопедами и психологами.
· Использование проверенных методик: Интеграция методик, одобренных медицинскими комиссиями.
4. Аналитика и отчетность:
· Мониторинг прогресса: Отслеживание прогресса пациентов через аналитическую систему.
· Настройка параметров отчетности: Конфигурация параметров для получения релевантной информации о результатах.
Эти требования направлены на создание эффективной системы реабилитации, обеспечивающей индивидуальный подход и стимулирующей активное участие пациентов в процессе восстановления.
3.2. Разработка frontend
Рисунок SEQ Рисунок \* ARABIC 1. Главная страница личного кабинета
Рисунок SEQ Рисунок \* ARABIC 2. Страница с введением в онлайн-реабилитацию
Рисунок SEQ Рисунок \* ARABIC 3. Страница со статистикой
3.3. Разработка backend
Фреймворк Django обладает масштабируемой компонентной архитектурой, позволяющей легко модифицировать или удалять независимые друг от друга части. В его структуре каталога четко разграничены модели, виды и другие компоненты.
Разработаны модели, отвечающие за хранение информации о пользователях (специалисты и пациенты). Ниже на листинге 1 представлен код этой модели.
Листинг 1. Модель для хранения информации о пользователях
from django.db import models
class User(models.Model): username = models.CharField(max_length=100) is_specialist = models.BooleanField(default=False)
class TaskTemplate(models.Model): creator = models.ForeignKey(User, on_delete=models.CASCADE, related_name=‘created_tasks’) content = models.TextField()
class AssignedTask(models.Model): template = models.ForeignKey(TaskTemplate, on_delete=models.CASCADE) patient = models.ForeignKey(User, on_delete=models.CASCADE, related_name=‘assigned_tasks’) completed = models.BooleanField(default=False) response = models.TextField(blank=True) |
Далее на листинге 2 реализовано представление для создания, редактирования заданий и отправки их пациентам.
Листинг 2. Представление для работы с заданиями
from django.http import JsonResponse from django.views import View from .models import User, TaskTemplate, AssignedTask from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator import json
class TaskTemplateView(View): @method_decorator(csrf_exempt) def post(self, request): data = json.loads(request.body) task_template = TaskTemplate.objects.create( creator=request.user, content=data[‘content’] ) return JsonResponse({‘id’: task_template.id, ‘content’: task_template.content})
@method_decorator(csrf_exempt) def put(self, request, template_id): data = json.loads(request.body) task_template = TaskTemplate.objects.get(id=template_id) task_template.content = data[‘content’] task_template.save() return JsonResponse({‘id’: task_template.id, ‘content’: task_template.content})
class AssignTaskView(View): @method_decorator(csrf_exempt) def post(self, request, template_id, patient_id): task_template = TaskTemplate.objects.get(id=template_id) patient = User.objects.get(id=patient_id) assigned_task = AssignedTask.objects.create( template=task_template, patient=patient ) return JsonResponse({‘task_id’: assigned_task.id})
URL Routing Настройте URL маршруты для доступа к представлениям.
«`python from django.urls import path from .views import TaskTemplateView, AssignTaskView
urlpatterns = [ path(‘tasks/’, TaskTemplateView.as_view(), name=‘create-task’), path(‘tasks/<int:template_id>/’, TaskTemplateView.as_view(), name=‘edit-task’), path(‘assign-task/<int:template_id>/<int:patient_id>/’, AssignTaskView.as_view(), name=‘assign-task’),] |
Эти компоненты позволяют специалистам создавать, редактировать и назначать шаблоны заданий пациентам, которые в свою очередь могут получать задания и отправлять выполненные ответы на проверку.
РАЗДЕЛ 4. Разработка frontend и backend модуля администратора
4.1. Основные требования и функциональность
Для кабинета администратора сайта необходимо обеспечить функциональность, позволяющую эффективно управлять содержимым и пользователями. Важные требования и функции включают:
1. Основные требования:
· Безопасность: Защита данных и предотвращение несанкционированного доступа.
· Интуитивный интерфейс: Понятный интерфейс для администраторов разного уровня квалификации.
· Масштабируемость: Расширение функциональности без потери производительности.
· Отчетность: Генерация отчетов для анализа эффективности сайта.
2. Основная функциональность:
· Управление пользователями: Добавление, удаление, редактирование аккаунтов и отслеживание активности.
· Модерация контента: Проверка и одобрение контента перед публикацией.
· Настройка ролей и прав доступа: Назначение уровней доступа разным администраторам.
· Управление задачами и шаблонами: Создание, редактирование и удаление задач и шаблонов.
· Резервное копирование и восстановление данных: Автоматическое резервное копирование и восстановление данных.
· Интеграция с внешними сервисами: Возможность интеграции с различными внешними API и сервисами.
Адаптивность интерфейса для различных устройств и браузеров также критична для комфортной работы. Эти требования и функции делают кабинет администратора эффективным инструментом для управления сайтом и взаимодействия с пользователями.
4.2. Разработка frontend
Рисунок SEQ Рисунок \* ARABIC 4. Страница личного кабинета администратора с пользователями
4.3. Разработка backend
Как уже было описано выше, Django имеет определенную структуру, поэтому далее будет представлено несколько листингов с кодом. Первый – модели, второй – представления, третий – URL маршрутизация.
Для начала были созданы модели для администратора и его действий (листинг 3).
Листинг 3. Модели для администратора
from django.db import models
class AdminUser(models.Model): username = models.CharField(max_length=100) email = models.EmailField()
class ActivityLog(models.Model): admin = models.ForeignKey(AdminUser, on_delete=models.CASCADE) action = models.CharField(max_length=256) timestamp = models.DateTimeField(auto_now_add=True) |
Следующий код – представление, которое реализовывает основные функции для работы администратора (листинг 4).
Листинг 4. Основные функции для работы администратора
from django.http import JsonResponse from django.views import View from .models import AdminUser, ActivityLog from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt import json
class AdminView(View): @method_decorator(csrf_exempt) def post(self, request): data = json.loads(request.body) admin = AdminUser.objects.create(username=data[‘username’], email=data[’email’]) return JsonResponse({‘id’: admin.id, ‘username’: admin.username})
@method_decorator(csrf_exempt) def get(self, request): admins = AdminUser.objects.all().values(‘username’, ’email’) return JsonResponse(list(admins), safe=False)
class LogView(View): def get(self, request, admin_id): logs = ActivityLog.objects.filter(admin_id=admin_id).values() return JsonResponse(list(logs), safe=False) |
Далее реализован код с URL маршрутизацией (листинг 5).
Листинг 5. Настройка URL для доступа к представлениям
from django.urls import path from .views import AdminView, LogView
urlpatterns = [ path(‘admin/’, AdminView.as_view(), name=‘admin-list’), path(‘logs/<int:admin_id>/’, LogView.as_view(), name=‘admin-logs’), ] |
РАЗДЕЛ 5. Тестирование и отладка всех модулей
Во время тестирования и отладки программного комплекса были обнаружены и исправлены различные ошибки. Вот список частых ошибок и методы их решения:
1. Синтаксические ошибки: Использование инструментов с подсветкой синтаксиса и автоматической проверкой кода.
2. Ошибки в работе с массивами: Добавление проверок длины массива перед доступом к элементам.
3. Утечки памяти: Применение управляемых ресурсов и контекстов.
4. Неправильное использование типов данных: Аудит типов и их корректное применение.
5. Ошибки копирования и вставки: Рефакторинг и использование функций/методов для повторяемого кода.
6. Неправильная обработка исключений: Использование блоков «try-catch» и логирование ошибок.
7. Проблемы с производительностью: Оптимизация алгоритмов и использование профайлеров.
8. Ошибки в SQL-запросах: Использование ORM и тестирование запросов.
9. Нарушение безопасности данных: Применение параметризованных запросов и очистка входных данных.
10. Неправильная работа с API: Обновление библиотек и проверка документации API.
11. Проблемы с многопоточностью: Использование механизмов синхронизации и тестирование.
12. Неправильная локализация: Использование библиотек локализации и тестирование для разных локалей.
13. Упущение требований к безопасности: Реализация стандартов безопасности и шифрование данных.
14. Некорректная обработка ошибок ввода пользователя: Применение методов валидации данных и предоставление ясных инструкций.
15. Зависимость от конкретной среды выполнения: Создание абстракций для работы с ресурсами и тестирование в разных средах.
Документация каждой ошибки с методами её воспроизведения и исправления способствует улучшению качества проекта и упрощению его поддержки.
РАЗДЕЛ 6. Разработка программного комплекса
Раздел описывает процесс разработки программного комплекса для регистрации и авторизации пользователей, обработки входа в личный кабинет, выполнения реабилитационных заданий и проверки ответов с помощью ИИ. Процесс включает следующие шаги:
Шаг 1. Установка Django и создание проекта:
pip install django
django-admin startproject rehabilitation
cd rehabilitation
Шаг 2. Создание приложения:
python manage.py startapp patient_rehab
Шаг 3. Реализация моделей в patient_rehab/models.py:
from django.db import models from django.contrib.auth.models import User
class RehabilitationPlan(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) description = models.TextField()
class Task(models.Model): plan = models.ForeignKey(RehabilitationPlan, related_name=‘tasks’, on_delete=models.CASCADE) title = models.CharField(max_length=200) content = models.TextField() correct_answer = models.CharField(max_length=200) |
Шаг 4. Добавление представлений в patient_rehab/views.py:
from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login from .models import Task, RehabilitationPlan from django.http import JsonResponse
def user_login(request): if request.method == ‘POST’: username = request.POST.get(‘username’) password = request.POST.get(‘password’) user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect(‘dashboard’) return render(request, ‘patient_rehab/login.html’)
def dashboard(request): if not request.user.is_authenticated: return redirect(‘login’) plan = RehabilitationPlan.objects.filter(user=request.user).first() return render(request, ‘patient_rehab/dashboard.html’, {‘plan’: plan})
def perform_task(request, task_id): task = Task.objects.get(id=task_id) if request.method == ‘POST’: user_answer = request.POST.get(‘answer’) if user_answer == task.correct_answer: return JsonResponse({‘success’: True, ‘message’: ‘Correct answer!’}) else: return JsonResponse({‘success’: False, ‘message’: ‘Wrong answer, try again!’}) return render(request, ‘patient_rehab/task.html’, {‘task’: task}) |
Шаг 5. URL конфигурация в patient_rehab/urls.py:
from django.urls import path from . import views
urlpatterns = [ path(‘login/’, views.user_login, name=‘login’), path(‘dashboard/’, views.dashboard, name=‘dashboard’), path(‘task/<int:task_id>/’, views.perform_task, name=‘task’), ] |
Шаг 6. Создание HTML-шаблонов для системы в patient_rehab/templates/patient_rehab.
ЗАКЛЮЧЕНИЕ
В разработке программного комплекса были соблюдены все необходимые этапы проектирования, реализации и тестирования. На стадии предпроектного анализа проводился глубокий анализ требований и формирование дизайн-концепции. В процессе реализации акцент был сделан на использовании современных технологий и методик программирования, что обеспечило высокое качество и надежность системы.
Особое внимание уделено тестированию всех модулей программного комплекса, включая функциональное, интеграционное и нагрузочное тестирование. Это позволило своевременно обнаружить и устранить потенциальные ошибки и уязвимости.
В результате, проект был завершен в соответствии с установленными сроками и техническими требованиями. Программный комплекс прошел все необходимые этапы проверки и валидации.
Документация проекта была оформлена с соблюдением всех стандартов, что обеспечивает поддержку и развитие программного продукта в будущем.
Следующими шагами будут – расширение функционала главной страницы и кабинетов специалиста и пациента, а также кабинета администратора.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Moodle. – Текст: электронный // Moodle: [сайт]. – URL: https://moodle.org/ (дата обращения: 01.05.2024).
2. Padlet: Красота спасет работу. – Текст: электронный // Padlet: Красота спасет работу: [сайт]. – URL: https://ru.padlet.com/ (дата обращения: 01.05.2024).
3. GetCourse – платформа для запуска курсов, онлайн-школы – Текст: электронный // GetCourse [сайт]. – URL: https://getcourse.ru/ (дата обращения: 01.05.2024).
4. Шохор-Троцкая М. К. Коррекция сложных речевых расстройств (сборник речевых упражнений). — М, 2008.
5. LMS iSpring Learn | Платформа для онлайн-обучения – Текст: электронный // iSpring Learn: [сайт]. – URL: https://www.ispring.ru/ispring-learn (дата обращения: 01.05.2024).
6. Просмотр PPT файлов онлайн | Афазия. Причины афазии – Текст: электронный // PPT Онлайн: [сайт]. – URL: https://ppt-online.org/204766 (дата обращения: 08.02.2023).
7. AI Wiz – Текст: электронный // AI Wiz: [сайт]. – URL: https://min-dashboard.aiwiz.ru/dashboard (дата обращения: 10.05.2024).
8. Эффективный Django. Часть 1 – Текст: электронный // Хабр: [сайт]. – URL: https://habr.com/ru/articles/240463/ (дата обращения: 16.04.2023).
9. Galileo AI. Generate interface designs at lightning speed – Текст: электронный // Galileo AI: [сайт]. – URL: https://www.usegalileo.ai/ (дата обращения: 14.04.2024).
10. Figma: The Collaborative Interface Design Tool – Текст: электронный // Figma: [сайт]. – URL: https://www.figma.com/ (дата обращения: 14.04.2024).