Skip to content

ouriso/crossfit_activity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ТЗ

  1. Сервис позволяет создавать Тренировки по кроссфиту. К Тренировке можно подключить какое угодно количество Сетов. Каждый Сет может содержать любое количество Упражнений.
  2. В Тренировке не указываются веса для упражнений и количество повторений, поскольку эти параметры для всех людей будут отличаться.
  3. Пользователь может создать Тренировку и поделиться ей с друзьями. Друзья при этом могут изменить часть упражнений под себя.

Варианты решения

  1. Добавить в сущности с Сетами и Упражнениями данные о количестве подходов и весах. Если ссылка на Тренировку передана другому человеку - делать для него полную копию вместе с созданием новых сущностей. Оставлять только привязку к id Тренировки, чтобы можно было посмотреть историю изменений тренировки.
  2. Сохранять первоначальную версию тренировки в сыром формате в виде JSON-поля в БД. При запросе тренировки пользователем выполнять сериализацию этого поля. Пользователь вносит необходимые ему изменения, и после этого тренировка сохраняется в виде отдельных сущностей.

Юзкейсы

Датасеты

Типы комплексов

  1. Добавление нового типа комплекса
  2. Обновление / изменение типа комплекса
  3. Получение списка типов комплексов
  4. Получение данных по выбранному типу комплекса
  5. Поиск типа комплекса по первым введенным буквам (API)

Виды упражнений

  1. Добавление нового вида упражнения
  2. Обновление / изменение вида упражнения
  3. Получение списка видов упражнений
  4. Получение данных по выбранному виду упражнения
  5. Поиск вида упражнения по первым введенным буквам (API)

Тренировка

Тренировка дня

Является индивидуальной для каждого пользователя. Если пользователь создает Тренировку на основе другой записи, то по умолчанию она заполняется теми сущностями, которые указаны сгенерировавшим тренировку пользователем (ссылка содержит идентификаторы базовой тренировки и пользователя, сгенерировавшего ссылку). Затем может быть кастомизирована.

Комплекс

Комплексы являются частью тренировки. Создается с привязкой к тренировке и конкретному пользователю.

Упражнения

Комплексы являются частью комплекса. Создается с привязкой к комплексу и конкретному пользователю.

Docker

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

alembic revision --autogenerate
alembic upgrade head 

About

App for tracking crossfit workouts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published