Skip to content

elinnlle/Evalyze

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evalyze 📊

Система тестирования и автоматической оценки результатов

Evalyze — iOS-приложение для создания, прохождения и автоматической оценки тестов с поддержкой групп пользователей и аналитики результатов.

Проект разработан в рамках хакатона на 3 курсе. Основной фокус — построение архитектурно организованной системы тестирования с разделением сущностей, сервисного слоя и persistence-модели.


Основные возможности

Управление тестами

  • Создание тестов.
  • Добавление вопросов разных типов.
  • Редактирование структуры теста.
  • Управление длительностью и параметрами прохождения.

Прохождение тестов

  • Сохранение ответов пользователя.
  • Поддержка разных типов вопросов.
  • Связь ответов с конкретным пользователем.
  • Фиксация результатов прохождения.

Автоматическая оценка

  • Расчёт результатов на основе правильных ответов.
  • Формирование итогового результата.
  • Сохранение истории тестирования.
  • Объект TestEvaluationService для изоляции логики оценки.

Группы пользователей

  • Создание групп.
  • Привязка тестов к группе.
  • Управление участниками.
  • Разделение доступа.

Пользовательская модель

  • Регистрация и авторизация.
  • Хранение информации о пользователе.
  • Разграничение ролей (при необходимости).

Презентация

Ссылка на Google Презентации


Архитектура

Проект построен с разделением на слои:

Evalyze/
  App/
  Scenes/
  Entity/
  Services/
  Utilities/

Persistence:
  CoreData (Evalyze.xcdatamodeld)

Tests:
  EvalyzeTests
  EvalyzeUITests

Entity-слой

Основные сущности:

  • Test
  • Question
  • User
  • Group
  • StudentTestAnswer
  • TestResult

Модель данных построена с использованием CoreData.


Services-слой

  • TestService
  • QuestionService
  • GroupService
  • StudentTestAnswerService
  • TestEvaluationService
  • NetworkClient
  • APIError

Сервисный слой инкапсулирует бизнес-логику и работу с сетью.


Persistence

  • CoreData-модель (Evalyze.xcdatamodeld).
  • Связи между тестами, вопросами и результатами.
  • Хранение ответов пользователей.
  • История результатов.

Networking

  • Реализация NetworkClient.
  • Модель обработки ошибок (APIError).
  • Подготовка к взаимодействию с backend.
  • Интеграция с Firebase (GoogleService-Info.plist).

Технологический стек

  • Swift
  • UIKit
  • CoreData
  • Firebase
  • Networking
  • Unit tests
  • UI tests

Архитектурные принципы

  • Разделение сущностей и сервисов.
  • Инкапсуляция логики оценки в отдельном сервисе.
  • Изоляция сетевого слоя.
  • Чёткая модель данных.
  • Разделение UI и бизнес-логики.

Возможности развития

  • Расширение типов вопросов.
  • Добавление аналитики по группам.
  • Ролевая модель доступа.
  • Онлайн-панель преподавателя.
  • Поддержка экспорта результатов.

Авторство

Проект разработан в команде:

  • Матвеенко Эльвира
  • Самсонов Артём
  • Малова Олеся
  • Рычагов Михаил

3 курс направления «Программная инженерия».

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 100.0%