F1TU3S17/testomat
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# Тестомат — Мобильная автоматизированная система тестирования знаний ## О проекте **Тестомат** — мобильное приложение для адаптивного тестирования знаний студентов и школьников с использованием искусственного интеллекта. Система обеспечивает автоматическую генерацию тестовых заданий через большие языковые модели (LLM), анализирует ошибки и формирует персонализированные рекомендации для повышения эффективности обучения. Проект разрабатывается в рамках учебной практики на кафедре математического обеспечения и применения ЭВМ Института компьютерных технологий и информационной безопасности Южного Федерального Университета. ## Цели и задачи ### Основная цель Создание удобного и эффективного инструмента для автоматизации процесса контроля знаний, который позволяет учащимся проходить тесты в любое время и месте, получать мгновенную обратную связь и персонализированные рекомендации. ### Задачи проекта - Автоматизация процесса создания и проведения тестирования знаний - Интеграция с современными языковыми моделями для генерации вопросов и анализа ответов - Формирование персонализированных образовательных траекторий на основе истории ошибок - Снижение нагрузки на преподавателей и повышение объективности оценки знаний - Обеспечение гибкости и доступности образовательного процесса ## Функциональные возможности ### Управление учетными записями - Регистрация нового пользователя с указанием логина, пароля и email - Авторизация зарегистрированных пользователей - Восстановление доступа к учетной записи - Редактирование профиля пользователя ### Прохождение тестов - Последовательное отображение вопросов с визуализацией прогресса - Поддержка различных типов вопросов: закрытые (с вариантами ответов) и открытые - Автоматическая проверка открытых ответов с использованием LLM - Формирование пояснений к ответам через искусственный интеллект ### Каталог тестов - Формирование общего каталога тестов, созданных всеми пользователями с учетом настроек приватности - Фильтрация по категориям, популярности и дате создания - Поиск по ключевым словам (название, описание, ID) - Отображение карточек тестов с кратким описанием, количеством вопросов и рейтингом - Подборка рекомендованных квизов на основе интересов и истории прохождений пользователя ### Анализ результатов и статистика - Формирование детальных отчетов по итогам прохождения: количество правильных/неправильных ответов, процент успешности - Визуализация статистики через графики и диаграммы - Хранение истории попыток с синхронизацией между устройствами пользователя - Персонализированные рекомендации на основе допущенных ошибок ### Сервисные функции - Настройка параметров генерации теста: количество вопросов, сложность, тип вопросов - Выбор используемой языковой модели (LLM) при наличии нескольких интеграций - Автоматическое резервное копирование данных пользователя - Локализация интерфейса на русский и английский языки ### Административные функции - Блокировка пользователей - Удаление или скрытие неподходящих тестов - Мониторинг производительности системы - Конфигурирование параметров системы ## Архитектура системы ### Компонентная структура Система построена по трехзвенной архитектуре и включает следующие основные компоненты: **Frontend (Мобильное приложение)** - Реализовано на фреймворке Flutter с использованием языка Dart - Обеспечивает кроссплатформенность для iOS (15+) и Android (11.0+, API 30) - Предоставляет нативный пользовательский интерфейс для взаимодействия со всеми функциями системы **Backend (Серверная часть)** - Разработан на Python 3.11+ с использованием фреймворка FastAPI и сервера Uvicorn - Реализует бизнес-логику системы: обработку запросов, управление сеансами тестирования, валидацию ответов - Обеспечивает взаимодействие между мобильным приложением и базой данных через REST API с форматом данных JSON **База данных** - PostgreSQL версии 15 и выше - Хранит учетные записи пользователей, каталог тестов, историю прохождений, результаты и аналитические метрики - Автоматическое резервное копирование выполняется не реже одного раза в 24 часа **LLM (Language Model)** - Интеграция с большими языковыми моделями: MistralAI, Deepseek, GigaChat или их аналогами - Отвечает за автоматическую генерацию тестовых вопросов - Обеспечивает адаптацию сложности заданий - Формирует персонализированные рекомендации на основе анализа ошибок - Архитектура позволяет простое добавление новых провайдеров LLM или замену существующих ### IT-инфраструктура **Клиентский уровень** - Смартфоны с ОС Android (11.0+) или iOS (15.0+) - Минимум 2 ГБ оперативной памяти - Не менее 100 МБ свободного дискового пространства - Модуль беспроводной связи (Wi-Fi, сотовые сети) **Сетевой уровень** - Switch для маршрутизации трафика - Firewall для защиты периметра сети и контроля соединений - Network — магистральная сеть для связи клиентской части с серверными компонентами **Серверный уровень** - Сервер Backend: виртуальный или физический сервер с публичным IP-адресом, минимум 2 ГБ ОЗУ и 20 ГБ дискового пространства - Сервер БД: выделенный сервер для PostgreSQL - Сервер LLM: специализированный высокопроизводительный сервер для работы с языковыми моделями - Пропускная способность канала должна обеспечивать стабильную работу не менее 100 одновременных пользователей **Инфраструктурные инструменты** - Docker для контейнеризации - Git для системы контроля версий - Swagger/OpenAPI для документирования API - Postman для тестирования API ## Бизнес-процессы ### Основные процессы системы **Управление пользователями** - Регистрация, авторизация, редактирование профилей и восстановление доступа - Обеспечивает идентификацию участников системы и управление учетными данными **Управление тестами** - Создание, редактирование, поиск и рекомендация тестов - Формирование каталога тестовых материалов и обеспечение их доступности **Проведение тестирования знаний** - Центральный процесс системы: ответы на вопросы, проверка ответов, отображение результатов - Непосредственное взаимодействие студента с тестовым контентом **Анализ результатов тестов** - Создание персонализированных рекомендаций, визуализация статистики, сохранение результатов - Обеспечивает аналитическую функцию и предоставляет обратную связь учащемуся **Поддержка работы системы** - Настройка параметров генерации тестов, резервное копирование данных, управление интеграцией с LLM - Обеспечивает устойчивость и масштабируемость системы ## Безопасность Система реализует следующие меры защиты: - **Шифрование данных**: все данные между клиентом и сервером защищены протоколом HTTPS - **Хранение паролей**: конфиденциальные данные хранятся в базе данных в хешированном виде - **Аутентификация**: реализована через JWT-токены - **Валидация данных**: на стороне клиента и сервера для предотвращения SQL-инъекций и XSS-атак - **Защита от атак**: реализована защита от DDoS и brute-force атак на endpoint аутентификации - **Контроль доступа**: неавторизованные пользователи не имеют доступа к данным и функционалу приложения ## Целевая аудитория **Основные пользователи:** - Студенты высших учебных заведений - Школьники - Учащиеся, совмещающие учёбу с работой или другими обязанностями **Администраторы системы:** - Сопровождение технической инфраструктуры - Управление контентом и пользователями - Мониторинг производительности ## Этапы разработки 1. Сбор и анализ требований 2. Проектирование архитектуры и схемы базы данных 3. Разработка дизайна мобильного приложения 4. Проектирование API 5. Разработка мобильного приложения на Flutter 6. Разработка серверной части на FastAPI + PostgreSQL 7. Интеграция с API языковых моделей 8. Тестирование: модульное, интеграционное, UI 9. Подготовка документации и публикация приложения ## Тестирование Система проходит комплексное тестирование на различных уровнях: **Модульное тестирование backend:** - Модуль управления учетными записями пользователей - Модуль прохождения тестов - Модуль работы с каталогом тестов - Модуль анализа результатов и статистики - Модуль сервисных функций - Модуль интеграции с внешними API LLM - Модуль безопасности **Модульное тестирование frontend:** - Экраны регистрации и авторизации - Интерфейс прохождения тестов - Каталог тестов - Визуализация статистики - Настройки приложения **Проверка соответствия требованиям технического задания:** - Функциональные требования - Требования надежности и безопасности - Требования совместимости - Требования к документации - Требования к упаковке и публикации ## Распространение Готовое приложение распространяется через официальные магазины: - **Google Play** для Android - **App Store** для iOS Страницы приложения в магазинах содержат: наименование «Тестомат», логотип, версию сборки, описание функциональности, системные требования, контактные данные разработчика, политику конфиденциальности и пользовательское соглашение. ## Экономическое обоснование **Эффективность для учащихся:** - Повышение усвоения материала на 20-30% по сравнению с традиционным изучением конспектов - Возможность прохождения тестов в удобное время и месте - Более 70% студентов отмечают, что мгновенная проверка знаний значительно ускоряет подготовку к экзаменам (опрос 2023 года) **Экономия для образовательных учреждений:** - Снижение затрат на печатную продукцию и хранение бумажных носителей - Уменьшение трудозатрат преподавателей на подготовку и проверку тестов - Оптимизация образовательного процесса ## Документация проекта В состав проектной документации входят: - Техническое задание на разработку ПО - Отчет по учебной практике «Проектирование ПО» - Руководство пользователя - Руководство администратора и описание применения - Описание API и структуры базы данных - Процедуры развертывания системы - Графические модели: организационная структура, карта процессов, BPMN, EPC, карта систем, IT-инфраструктура, DFD ## Методология проектирования Для проектирования системы применяется структурный анализ с использованием различных графических нотаций: - **Organizational Chart**: описание организационной структуры команды разработки - **Process Landscape**: верхнеуровневая карта бизнес-процессов - **BPMN (Business Process Model and Notation)**: детализация процесса прохождения теста - **EPC (Event-driven Process Chain)**: событийно-ориентированная модель процессов - **System Landscape**: компонентная архитектура системы - **IT-infrastructure**: диаграмма физического развертывания - **DFD (Data Flow Diagram)**: визуализация потоков данных между компонентами Использование различных нотаций обеспечивает полноту проектной документации, снижает риски недопонимания между участниками команды и создает прочную основу для разработки, тестирования и эксплуатации системы. ## Организационная структура команды Проект управляется Владельцем продукта/Заказчиком и Генеральным директором. Команда разработки включает четыре ключевых направления: **Техническое направление** (Технический директор): - Команда разработки архитектуры ПО (бэкенд, фронтенд) - Команда качества (QA, DevOps) **Маркетинговое направление** (Директор по маркетингу): - Команда контент-маркетинга - Команда SMM **Продуктовое направление** (Директор по продукту): - Продуктовые аналитики - Продуктовые дизайнеры (UX/UI) **Финансовое направление** (Финансовый директор): - Бухгалтерия - Отдел по работе с инвесторами - Отдел финансового планирования и анализа --- Этот README предоставляет полную информацию о проекте **Тестомат** для использования в качестве контекста для ИИ и участников проекта. Документ охватывает все ключевые аспекты: от целей и функциональности до технической архитектуры и организационной структуры команды.