Repolode
vanalmsick

vanalmsick/workout_challenge

Самостоятельно размещаемое веб-приложение для фитнес-соревнований среди друзей и коллег с настраиваемыми метриками и опциональным импортом из Strava.

Open source альтернатива:Strava

Звёзды
153
Форки
11
Открытые issues
2
Последний коммит
9 часов назад

Что это?

Workout Challenge — самостоятельно размещаемое веб-приложение для фитнес-соревнований среди друзей, родственников или коллег. Организаторы создают соревнование и задают одну или несколько целей с метриками вроде минут, количества тренировок, километров, килокалорий или килоджоулей — на день, неделю, месяц или всё соревнование. Участники присоединяются по ссылке-приглашению, а затем вручную добавляют тренировки и шаги либо подключают аккаунт Strava для автоматического импорта. За каждый 1% выполнения цели начисляется одно очко, а необязательные минимальные и максимальные ограничения на количество очков за тренировку, день или неделю помогают сделать упор на регулярность.

У каждого участника есть личная панель со статистикой тренировок и серией достижений, а на панелях соревнований отображаются активность друзей, таблицы лидеров и прогресс по целям. Приложение отправляет письма с таблицей лидеров по понедельникам, а также, по желанию, еженедельные письма о прогрессе по четвергам. Веб-интерфейс и письма адаптированы для разных экранов, сайт поддерживает светлую и тёмную темы.

В основе стека — React на фронтенде и Django с REST API на бэкенде, а также PostgreSQL, Redis, Celery и Celery Beat для запланированных задач. Приложение запускается в одном Docker-контейнере; для быстрой локальной проверки можно использовать SQLite.

Ключевые возможности

  • 01Создавайте соревнования или присоединяйтесь к ним по ссылке-приглашению.
  • 02Задавайте цели в минутах, количестве тренировок, километрах, килокалориях или килоджоулях — на день, неделю, месяц или всё соревнование.
  • 03Автоматически импортируйте тренировки из Strava или добавляйте их вручную.
  • 04Настраивайте минимальные и максимальные ограничения на очки за тренировку, день или неделю.
  • 05Таблицы лидеров, активность друзей и панели прогресса для каждого соревнования.
  • 06Еженедельные письма с таблицей лидеров и информацией о прогрессе, адаптивная вёрстка и тёмная тема.

Сценарии использования

  • Компания проводит в сентябре челлендж по количеству шагов среди коллег.
  • Друзья соревнуются по числу минут тренировок или количеству тренировок за неделю.
  • Семья или клуб хотят вести закрытую таблицу лидеров на собственном сервере вместо публичного фитнес-приложения с социальными функциями.
  • Группы хотят поощрять регулярность, ограничивая количество очков за день или неделю.

Быстрый старт

  1. 1

    Быстро попробуйте с Docker

    docker run -p 80:80 -e ALLOW_ALL_HOSTS=true vanalmsick/workout_challenge
  2. 2

    Или разверните в production с помощью docker compose, используя docker-compose.yml из README

    docker compose -f /path/to/docker-compose.yml up

Что важно знать

  • Для полноценной настройки production нужны PostgreSQL, учётные данные Strava API и настройки SMTP для отправки писем.
  • Импорт данных из Strava ограничен лимитами запросов Strava API, если вы не вступите в программу для разработчиков.
  • Для самостоятельного хостинга нужно настроить несколько переменных окружения и секретов.

В подборках

Темы

Частые вопросы

Что такое workout_challenge?
Самостоятельно размещаемое веб-приложение для фитнес-соревнований среди друзей и коллег с настраиваемыми метриками и опциональным импортом из Strava. Workout Challenge — самостоятельно размещаемое веб-приложение для фитнес-соревнований среди друзей, родственников или коллег. Организаторы создают соревнование и задают одну или несколько целей с метриками вроде минут, количества тренировок, километров, килокалорий или килоджоулей — на день, неделю, месяц или всё соревнование. Участники присоединяются по ссылке-приглашению, а затем вручную добавляют тренировки и шаги либо подключают аккаунт Strava для автоматического импорта. За каждый 1% выполнения цели начисляется одно очко, а необязательные минимальные и максимальные ограничения на количество очков за тренировку, день или неделю помогают сделать упор на регулярность.
workout_challenge можно использовать бесплатно? Какая у него лицензия?
workout_challenge распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
workout_challenge всё ещё поддерживается?
Активно поддерживается. Последний коммит в workout_challenge — 7 нояб. 2026 г..
Для чего можно использовать workout_challenge?
Компания проводит в сентябре челлендж по количеству шагов среди коллег. Друзья соревнуются по числу минут тренировок или количеству тренировок за неделю. Семья или клуб хотят вести закрытую таблицу лидеров на собственном сервере вместо публичного фитнес-приложения с социальными функциями. Группы хотят поощрять регулярность, ограничивая количество очков за день или неделю.
Как установить workout_challenge?
Быстро попробуйте с Docker: docker run -p 80:80 -e ALLOW_ALL_HOSTS=true vanalmsick/workout_challenge Или разверните в production с помощью docker compose, используя docker-compose.yml из README: docker compose -f /path/to/docker-compose.yml up
Где скачать workout_challenge?
Исходный код и инструкции по установке — на GitHub: https://github.com/vanalmsick/workout_challenge

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Сервис для самостоятельного отслеживания тренировок: синхронизирует и анализирует занятия из Strava и Garmin Connect, а также файлы GPX/TCX/FIT, храня данные на вашем сервере.

2,4 тыс.+19 за неделю149PythonAGPL-3.0Активно поддерживаетсяОбновлён 11 часов назад

Самостоятельно размещаемый трекер тренировок и веса тела для планирования программ, записи подходов и хранения данных на собственном сервере.

20,1 тыс.+1,9 тыс. за неделю2,7 тыс.JavaScriptAGPL-3.0Обновлён 4 часа назад

Самостоятельно размещаемое веб-приложение для учёта тренировок на открытом воздухе с импортом GPX и других файлов активностей; данные хранятся на вашем сервере.

1,2 тыс.+1 за неделю75PythonAGPL-3.0Активно поддерживаетсяОбновлён 3 дня назад