An open API service indexing awesome lists of open source software.

https://github.com/mikhailvokhrameev/workout_tracking_app

Workout tracking app featuring progressive overload monitoring
https://github.com/mikhailvokhrameev/workout_tracking_app

kivy progressive-overload python workout-tracker

Last synced: 19 days ago
JSON representation

Workout tracking app featuring progressive overload monitoring

Awesome Lists containing this project

README

          

[![Android Build](https://github.com/mikhailvokhrameev/workout_tracking_app/actions/workflows/Buildozer%20Action.yml/badge.svg)](https://github.com/mikhailvokhrameev/workout_tracking_app/actions/workflows/Buildozer%20Action.yml)

# Мобильное приложение для отслеживания силовых тренировок с расчетом прогрессивной перегрузки




Данный репозиторий содержит приложение, которое предназначено для автоматизации процесса планирования и отслеживания силовых тренировок на основе принципа прогрессивной перегрузки. Использовать приложение могут люди, которые занимаются спортом как на любительском, так и на профессиональном уровне.

---

### Почему я делал этот проект?

Мне хотелось разобраться с процессом разработки полноценного приложения на `Python` и запустить его на мобильном устройстве.
Мне удалось реализовать базу, на основе которой я буду в дальнейшем проводить свои эксперименты в сфере Deep Learning, путем интегрирования ИИ функций в приложение.

---

### Что такое прогрессивная перегрузка?

Это фундаментальный принцип силовых тренировок, который заключается в постепенном увеличении нагрузки на мышцы, чтобы они становились сильнее и больше. **Без постоянного вызова тело человека не будет иметь причин для адаптации.**

**Основная цель** — избежать плато в тренировках. Если выполнять одни и те же упражнения с одинаковым весом и повторениями, тело быстро адаптируется, и прогресс остановится. Прогрессия заставляет мышцы работать усерднее, что стимулирует их гипертрофию и увеличение силы.

В рамках приложения реализовано **3 вида прогрессивной перегрузки**:
* Двойная прогрессия (Double Progression)
* Линейная прогрессия (Linear Progression)

| Функция | Демонстрация |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Создание тренировочной программы** | |
| **Добавление упражнений в программу** | |
| **Запись тренировки** | |
| **Просмотр и редактирование истории тренировок** | |
| **Просмотр графиков 1ПМ для упражнения** | |

### Зависимости:

- **Python 3.12.4**
- **Kivy 2.3.1**
- **kivymd 2.0.1.dev0**
- **kivy-garden 0.1.5**
- **kivy-garden-graph 0.4.1.dev0**

---

### Структура проекта

```
workout_tracking_app/
├── app/
├── kv/
│ ├── components.kv --> некоторые UI компоненты
│ ├── graph_screen.kv
│ ├── history_screen.kv
│ ├── program_detail_screen.kv
│ ├── programs_screen.kv
│ ├── progressive_overload_screen.kv
│ ├── workout_screen.kv
│ └── main_screen.kv --> организации навигации по разным экранам приложения
├── logic/
│ ├── components.py --> некоторые UI компоненты
│ ├── storage.py --> чтение/запись JSON, контейнер данных приложения
│ ├── models.py --> типизированные модели и помощники
│ ├── progression.py
│ ├── services.py --> CRUD для программы/упражнения, сохранение/summary тренировок, история, графики
│ ├── session_state.py
│ └── logic.py --> фасад
├── screens/
│ ├── __init__.py
│ ├── graph_screen.py
│ ├── history_screen.py
│ ├── program_detail_screen.py
│ ├── programs_screen.py
│ ├── progressive_overload_screen.py
│ ├── workout_screen.py
│ ├── main_screen.py --> организации навигации по разным экранам приложения
├── __init__.py
├── main.py --> главный файл, запускает приложение
├── .gitignore
├── README.md
└── requirements.txt
```

---

### Установка

Для настройки среды проекта выполните следующее:

1. **Клонируйте репозиторий:**
```bash
git clone https://github.com/mikhailvokhrameev/workout_tracking_app.git
cd workout_tracking_app
```

2. **Создайте и активируйте виртуальное окружение (рекомендуется):**
```bash
# Создание окружения
python3 -m venv venv

# Активация на macOS/Linux:
source venv/bin/activate

# Активация на Windows:
venv\Scripts\activate
```

3. **Установите:**
```bash
pip install -r requirements.txt
```

---

### Использование

**Важно:** Все команды должны запускаться из корневой папки проекта.

1. Находясь в корневой папке проекта, запустите `main.py`:

```bash
python main.py
```