workout-planning-lib
v1.0.9
Published
Библиотека для планирования тренировок
Downloads
39
Readme
Программное средство для планировки фитнес тренировок
Богданович Андрей 353504
UML диаграмма классов:
Функциональные требования
Общее описание участников и случаев использования
- Акторы: Пользователь (человек, взаимодействующий с веб-приложением для планирования тренировок).
- Система: Веб-приложение для планирования фитнес тренировок.
- Описание: Приложение для регистрации пользователей, создания и управления различными типами упражнений (силовые, кардио, на выносливость), планирования тренировок, а также отслеживания прогресса и параметров тела.
Случаи использования (Use Cases)
Управление учетной записью
Use Case 1: Регистрация нового пользователя
- Цель: Создать новую учётную запись пользователя.
- Акторы: Пользователь
- Предусловие: Пользователь не зарегистрирован, открыта страница регистрации.
- Основной сценарий:
- Пользователь открывает страницу регистрации.
- Пользователь заполняет форму регистрации: имя, email, пароль, текущий вес, рост.
- Пользователь нажимает кнопку "Зарегистрироваться".
- Система проверяет уникальность email и корректность данных.
- Система создаёт нового пользователя и перенаправляет на страницу входа.
- Система отображает сообщение об успешной регистрации.
- Альтернативные сценарии:
- Если email уже используется, система отображает сообщение об ошибке и просит ввести другой email.
- Если данные некорректны, система выделяет проблемные поля и отображает соответствующие сообщения.
Use Case 2: Вход пользователя в систему
- Цель: Получить доступ к персональной учётной записи.
- Акторы: Пользователь
- Предусловие: Пользователь зарегистрирован, открыта страница входа.
- Основной сценарий:
- Пользователь открывает страницу входа.
- Пользователь вводит email и пароль.
- Пользователь нажимает кнопку "Войти".
- Система проверяет email и пароль.
- Система аутентифицирует пользователя и перенаправляет на главную страницу приложения.
- Альтернативные сценарии:
- Если введён неверный email или пароль, система отображает сообщение об ошибке.
Use Case 3: Редактирование профиля пользователя
- Цель: Обновить данные профиля.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, открыта страница профиля.
- Основной сценарий:
- Пользователь переходит в раздел "Профиль".
- Пользователь нажимает кнопку "Редактировать профиль".
- Система отображает форму с текущими данными пользователя.
- Пользователь редактирует желаемые поля (имя, email, пароль, рост).
- Пользователь нажимает кнопку "Сохранить изменения".
- Система обновляет данные пользователя и отображает сообщение об успешном обновлении.
- Альтернативные сценарии:
- Если данные некорректны, система выделяет проблемные поля и отображает сообщения об ошибках.
Use Case 4: Обновление веса пользователя
- Цель: Внести новое значение веса для отслеживания прогресса.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе отслеживания веса.
- Основной сценарий:
- Пользователь переходит в раздел "Отслеживание веса" или "Профиль".
- Пользователь нажимает кнопку "Добавить измерение веса".
- Система отображает форму для ввода нового значения веса и даты (по умолчанию текущая).
- Пользователь вводит вес и, при необходимости, корректирует дату.
- Пользователь нажимает кнопку "Сохранить".
- Система добавляет новую запись в историю веса и обновляет график прогресса.
- Альтернативные сценарии:
- Если введены некорректные данные, система отображает сообщение об ошибке.
Управление упражнениями
Use Case 5: Создание нового упражнения
- Цель: Добавить персональное упражнение в базу.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе упражнений.
- Основной сценарий:
- Пользователь переходит в раздел "Упражнения".
- Пользователь нажимает кнопку "Добавить новое упражнение".
- Система отображает форму с полями для создания упражнения.
- Пользователь выбирает тип упражнения (силовое, кардио, на выносливость).
- Система динамически обновляет форму, отображая поля, специфичные для выбранного типа.
- Пользователь заполняет общие поля (название, описание, изображение) и специфичные для типа.
- Пользователь нажимает кнопку "Создать упражнение".
- Система создаёт упражнение и добавляет его в список упражнений пользователя.
- Альтернативные сценарии:
- Если заполнены не все обязательные поля, система выделяет их и просит заполнить.
- Пользователь может отменить создание, нажав кнопку "Отмена".
Use Case 6: Просмотр списка упражнений
- Цель: Просмотреть все созданные упражнения.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе упражнений.
- Основной сценарий:
- Пользователь переходит в раздел "Упражнения".
- Система отображает список всех упражнений пользователя.
- Пользователь может использовать фильтры по типу упражнения для сортировки списка.
- Пользователь может воспользоваться поиском по названию упражнения.
- Альтернативные сценарии:
- Если упражнения отсутствуют, система отображает сообщение "У вас ещё нет упражнений" и предлагает создать первое.
Use Case 7: Редактирование упражнения
- Цель: Изменить параметры существующего упражнения.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится на странице с упражнениями.
- Основной сценарий:
- Пользователь находит нужное упражнение в списке и нажимает кнопку "Редактировать".
- Система отображает форму редактирования с текущими данными упражнения.
- Пользователь вносит необходимые изменения.
- Пользователь нажимает кнопку "Сохранить изменения".
- Система обновляет данные упражнения и возвращает пользователя к списку упражнений.
- Альтернативные сценарии:
- Пользователь может отменить редактирование, нажав кнопку "Отмена".
- Если данные некорректны, система отображает сообщения об ошибках.
Use Case 8: Удаление упражнения
- Цель: Удалить ненужное упражнение из базы.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится на странице с упражнениями.
- Основной сценарий:
- Пользователь находит нужное упражнение в списке и нажимает кнопку "Удалить".
- Система отображает диалоговое окно с подтверждением удаления.
- Пользователь подтверждает удаление, нажав кнопку "Да, удалить".
- Система удаляет упражнение и обновляет список упражнений.
- Альтернативные сценарии:
- Пользователь может отменить удаление, нажав кнопку "Отмена" в диалоговом окне.
- Если упражнение используется в планах тренировок, система предупреждает пользователя и предлагает варианты: "Удалить из всех планов" или "Отмена".
Управление планами тренировок
Use Case 9: Создание нового плана тренировки
- Цель: Сформировать новую программу тренировок.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе планов тренировок.
- Основной сценарий:
- Пользователь переходит в раздел "Планы тренировок".
- Пользователь нажимает кнопку "Создать новый план".
- Система отображает форму для создания плана.
- Пользователь вводит название плана и описание.
- Пользователь нажимает кнопку "Сохранить план".
- Система создаёт пустой план и перенаправляет на страницу редактирования плана.
- Альтернативные сценарии:
- Если не заполнено название, система выделяет поле и просит заполнить.
- Пользователь может отменить создание, нажав кнопку "Отмена".
Use Case 10: Добавление упражнения в план тренировки
- Цель: Включить упражнение в план тренировки.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, редактирует план тренировки.
- Основной сценарий:
- Пользователь находится на странице редактирования плана тренировки.
- Пользователь нажимает кнопку "Добавить упражнение".
- Система отображает модальное окно со списком доступных упражнений.
- Пользователь выбирает упражнение и нажимает кнопку "Добавить".
- Система добавляет упражнение в план и закрывает модальное окно.
- Для силовых упражнений система предлагает указать количество подходов и повторений.
- Для кардио и упражнений на выносливость система предлагает указать длительность и другие параметры.
- Альтернативные сценарии:
- Пользователь может использовать поиск и фильтрацию для нахождения упражнений.
- Если упражнений нет, система предлагает сначала создать упражнения.
Use Case 11: Редактирование параметров упражнений в плане
- Цель: Настроить детали упражнений в плане тренировки.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, редактирует план с добавленными упражнениями.
- Основной сценарий:
- Пользователь находит упражнение в плане и нажимает кнопку "Редактировать".
- Система отображает форму с параметрами упражнения.
- Для силовых упражнений пользователь может добавить/изменить сеты, задать повторения и вес.
- Для кардио упражнений пользователь может задать длительность, дистанцию и калории.
- Для упражнений на выносливость пользователь может задать длительность и сложность.
- Пользователь нажимает кнопку "Сохранить изменения".
- Система обновляет параметры упражнения в плане.
- Альтернативные сценарии:
- Пользователь может добавить несколько сетов/сессий для упражнения.
- Пользователь может переупорядочить упражнения в плане перетаскиванием.
Use Case 12: Удаление упражнения из плана тренировки
- Цель: Исключить упражнение из плана тренировки.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, редактирует план тренировки с упражнениями.
- Основной сценарий:
- Пользователь находит упражнение в плане и нажимает кнопку "Удалить".
- Система отображает подтверждающее сообщение.
- Пользователь подтверждает удаление.
- Система удаляет упражнение из плана и обновляет список.
- Альтернативные сценарии:
- Пользователь может отменить удаление в диалоговом окне.
Use Case 13: Просмотр планов тренировок
- Цель: Просмотреть все созданные планы тренировок.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе планов.
- Основной сценарий:
- Пользователь переходит в раздел "Планы тренировок".
- Система отображает список всех планов пользователя с названиями и описаниями.
- Пользователь может выбрать план для просмотра деталей.
- Альтернативные сценарии:
- Если планов нет, система отображает сообщение "У вас ещё нет планов тренировок" и предлагает создать первый план.
Use Case 14: Удаление плана тренировки
- Цель: Удалить ненужный план тренировки.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится в разделе планов тренировок.
- Основной сценарий:
- Пользователь находит нужный план в списке и нажимает кнопку "Удалить".
- Система отображает диалоговое окно с подтверждением.
- Пользователь подтверждает удаление.
- Система удаляет план и обновляет список планов.
- Альтернативные сценарии:
- Пользователь может отменить удаление в диалоговом окне.
- Если на основе плана уже созданы тренировки, система предупреждает об этом, но всё равно позволяет удалить.
Управление тренировками
Use Case 15: Создание новой тренировки на основе плана
- Цель: Начать новую тренировку по выбранному плану.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, имеет хотя бы один план тренировок.
- Основной сценарий:
- Пользователь переходит в раздел "Тренировки" или "Планы тренировок".
- Пользователь выбирает план и нажимает кнопку "Начать тренировку".
- Система запрашивает дату тренировки (по умолчанию текущая).
- Пользователь подтверждает или изменяет дату и нажимает "Начать".
- Система создаёт новую тренировку на основе плана и перенаправляет на страницу тренировки.
- Альтернативные сценарии:
- Пользователь может создать тренировку "с нуля", без плана, нажав "Создать тренировку без плана".
- Пользователь может запланировать тренировку на будущую дату.
Use Case 16: Запись результатов упражнений в тренировке
- Цель: Зафиксировать фактические результаты выполнения упражнений.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, открыта страница активной тренировки.
- Основной сценарий:
- Пользователь видит список упражнений из плана тренировки.
- Для каждого упражнения система отображает форму для внесения результатов:
- Для силовых упражнений: фактические веса и повторения для каждого сета
- Для кардио упражнений: длительность, дистанция, калории
- Для упражнений на выносливость: длительность, уровень сложности
- Пользователь заполняет результаты по мере выполнения упражнений.
- После заполнения результатов пользователь нажимает кнопку "Сохранить" для каждого упражнения.
- Система сохраняет данные и визуально отмечает упражнение как выполненное.
- Альтернативные сценарии:
- Пользователь может добавить дополнительные сеты/сессии сверх плана.
- Пользователь может пропустить упражнение, отметив его как "Не выполнено" с указанием причины.
Use Case 17: Добавление упражнения в тренировку
- Цель: Включить незапланированное упражнение в текущую тренировку.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, находится на странице активной тренировки.
- Основной сценарий:
- Пользователь нажимает кнопку "Добавить упражнение".
- Система отображает модальное окно со списком доступных упражнений.
- Пользователь выбирает упражнение и нажимает "Добавить".
- Система добавляет упражнение в текущую тренировку.
- Пользователь может сразу записать результаты добавленного упражнения.
- Альтернативные сценарии:
- Система может предложить наиболее часто используемые упражнения пользователя.
Use Case 18: Завершение тренировки
- Цель: Завершить тренировку и сохранить результаты.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, выполняет тренировку.
- Основной сценарий:
- После выполнения всех упражнений пользователь нажимает кнопку "Завершить тренировку".
- Система отображает сводку выполненных упражнений и достижений.
- Пользователь может добавить комментарий к тренировке.
- Пользователь нажимает "Сохранить и завершить".
- Система сохраняет тренировку в историю и перенаправляет на страницу с результатами.
- Альтернативные сценарии:
- Если есть незаполненные результаты упражнений, система предупреждает и предлагает: "Завершить как есть", "Вернуться и заполнить", "Отметить как не выполненные".
- Система может предложить обновить план тренировки на основе фактических результатов.
Use Case 19: Просмотр истории тренировок
- Цель: Просмотреть прошлые тренировки и их результаты.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, имеет прошлые тренировки.
- Основной сценарий:
- Пользователь переходит в раздел "История тренировок".
- Система отображает список прошлых тренировок с датами и планами.
- Пользователь может фильтровать тренировки по датам, планам или типам упражнений.
- Пользователь выбирает тренировку для просмотра деталей.
- Система отображает подробную информацию о выполненных упражнениях и результатах.
- Альтернативные сценарии:
- Пользователь может экспортировать историю тренировок в различных форматах.
Use Case 20: Обновление плана на основе тренировки
- Цель: Модифицировать план тренировки на основе фактических результатов.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, просматривает завершённую тренировку.
- Основной сценарий:
- При просмотре деталей тренировки пользователь нажимает "Обновить план на основе этой тренировки".
- Система отображает предпросмотр изменений, которые будут внесены в план.
- Пользователь может выбрать, какие изменения применить (все или выборочно).
- Пользователь нажимает "Применить изменения к плану".
- Система обновляет исходный план и отображает сообщение об успешном обновлении.
- Альтернативные сценарии:
- Пользователь может выбрать опцию "Создать новый план" вместо обновления существующего.
Анализ и статистика
Use Case 21: Просмотр прогресса веса пользователя
- Цель: Отследить динамику изменения веса.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, имеет историю измерений веса.
- Основной сценарий:
- Пользователь переходит в раздел "Прогресс" или "Профиль".
- Пользователь выбирает вкладку "Вес".
- Система отображает график изменения веса с течением времени.
- Система показывает ключевые метрики: начальный вес, текущий вес, изменение, среднее изменение за период.
- Пользователь может выбрать временной диапазон для анализа.
- Альтернативные сценарии:
- Пользователь может экспортировать данные прогресса.
- При отсутствии достаточных данных система предлагает начать регулярно записывать вес.
Use Case 22: Анализ прогресса тренировок
- Цель: Получить общее представление о прогрессе всех тренировок.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, имеет историю тренировок.
- Основной сценарий:
- Пользователь переходит в раздел "Статистика".
- Система отображает дашборд с графиками и метриками:
- Количество тренировок
- Общий поднятый вес за период
- Общая дистанция (для кардио)
- Пользователь может настраивать временные диапазоны и фильтры.
- Альтернативные сценарии:
- При малом количестве данных система предлагает продолжать тренировки для более точного анализа.
Use Case 23: Анализ прогресса по конкретным упражнениям
- Цель: Отследить прогресс по выбранному упражнению.
- Акторы: Пользователь
- Предусловие: Пользователь вошёл в систему, имеет историю выполнения упражнения.
- Основной сценарий:
- Пользователь переходит в раздел "Прогресс" или "Упражнения".
- Пользователь выбирает конкретное упражнение для анализа.
- Система отображает детальную статистику по упражнению:
- Для силовых: графики роста максимального веса, общего веса
- Для кардио: графики дистанции, времени
- Для упражнений на выносливость: прогресс по времени и сложности
- Система показывает личные рекорды и достижения.
- Пользователь может настраивать временные диапазоны и параметры анализа.
- Альтернативные сценарии:
- Система может предложить рекомендации по прогрессивной перегрузке на основе анализа прогресса.
