- Сервис позволяет создавать Тренировки по кроссфиту. К Тренировке можно подключить какое угодно количество Сетов. Каждый Сет может содержать любое количество Упражнений.
- В Тренировке не указываются веса для упражнений и количество повторений, поскольку эти параметры для всех людей будут отличаться.
- Пользователь может создать Тренировку и поделиться ей с друзьями. Друзья при этом могут изменить часть упражнений под себя.
- Добавить в сущности с Сетами и Упражнениями данные о количестве подходов и весах. Если ссылка на Тренировку передана другому человеку - делать для него полную копию вместе с созданием новых сущностей. Оставлять только привязку к id Тренировки, чтобы можно было посмотреть историю изменений тренировки.
- Сохранять первоначальную версию тренировки в сыром формате в виде JSON-поля в БД. При запросе тренировки пользователем выполнять сериализацию этого поля. Пользователь вносит необходимые ему изменения, и после этого тренировка сохраняется в виде отдельных сущностей.
- Добавление нового типа комплекса
- Обновление / изменение типа комплекса
- Получение списка типов комплексов
- Получение данных по выбранному типу комплекса
- Поиск типа комплекса по первым введенным буквам (API)
- Добавление нового вида упражнения
- Обновление / изменение вида упражнения
- Получение списка видов упражнений
- Получение данных по выбранному виду упражнения
- Поиск вида упражнения по первым введенным буквам (API)
Является индивидуальной для каждого пользователя. Если пользователь создает Тренировку на основе другой записи, то по умолчанию она заполняется теми сущностями, которые указаны сгенерировавшим тренировку пользователем (ссылка содержит идентификаторы базовой тренировки и пользователя, сгенерировавшего ссылку). Затем может быть кастомизирована.
Комплексы являются частью тренировки. Создается с привязкой к тренировке и конкретному пользователю.
Комплексы являются частью комплекса. Создается с привязкой к комплексу и конкретному пользователю.
docker run --name postgres \
-e POSTGRES_PASSWORD=ouriso \
-e PGUSER=postgres \
-p 5432:5432 \
-v pgdata:/var/lib/postgresql/data \
-d postgres:15.2-alpine
alembic revision --autogenerate
alembic upgrade head