Workout Challenge: веб-приложение для соревнований по физической активности
Workout Challenge — это веб-приложение для соревнований по физической активности, которое можно использовать с друзьями и коллегами. Оно позволяет выбрать любые метрики, например, километры, минуты или калории, и гарантирует сохранение личной информации.
Проект подходит для создания дружеских конкурсов и мотивирует к активности: можно вручную добавлять данные о тренировках или подключить бесплатный аккаунт Strava для автоматического импорта. Удобная система начисления очков и возможность настройки индивидуальных целей делают соревнования гибкими. Также доступны функционалы ведения статистики, рейтингов и уведомлений по электронной почте.
Проект написан на JavaScript и работает в браузере, нет информации о зависимостях или ограничениях, так что можно запускать на любом устройстве. Имей в виду, что он всё еще в разработке, потенциальные баги не исключены.
Проект Workout Challenge представляет собой веб-приложение, которое позволяет пользователям соревноваться с друзьями или коллегами в достижении определённых фитнес-целей. Участники могут добавлять свои тренировки вручную или подключать бесплатный аккаунт Strava для автоматического импорта данных о тренировках. Это делает приложение универсальным для использования на мобильных устройствах (iOS и Android) и других платформах (например, Garmin).
Как это работает?
Ты можешь создать своё собственное соревнование или присоединиться к уже существующему, используя ссылку-приглашение от друга. Пользователи могут устанавливать индивидуальные цели по активности. Каждый участник зарабатывает 1 балл за каждый 1% выполнения цели. Например, если цель составляет 100 минут тренировки, а ты опасил 50 минут, ты получаешь 50 баллов. Кроме того, существует возможность устанавливать пределы на максимальное и минимальное количество баллов, которые участники могут зарабатывать за тренировку, день или неделю.
Функциональные возможности
- Создание собственных соревнований или присоединение к ним через приглашение.
- Ввод тренировок вручную или автоматический импорт через Strava (ежедневно в 4 утра).
- Личный дашборд с статистикой и прогрессом.
- Общедоступные дашборды соревнований с показателями друзей и лидербордами.
- Еженедельные отчёты по электронным письмам о твоем месте в соревнованиях.
- Поддержка мобильных устройств и темного режима.
Как установить и запустить
Для быстрого запуска проекта необходимо выполнить следующую команду с использованием Docker:
docker run -p 80:80 -e ALLOW_ALL_HOSTS=true vanalmsick/workout_challenge
Для полноценного развертывания используйте docker-compose. Пример конфигурации представлен в файле docker-compose.yml.
docker compose -f /path/to/docker-compose.yml up
Ограничения и условия
Важно помнить, что для работы с API Strava требуется платная подписка для аккаунта, который используется для создания API соединения. Пользователи могут оставаться на бесплатном тарифе. Основные ограничения, с которыми стоит считаться:
- Требуется базовый уровень понимания работы с Docker и Docker Compose.
- Настраивают переменные окружения, такие как
POSTGRES_HOST,STRAVA_CLIENT_IDи другие. - Некоторые функции, например, интеграция с Strava, зависят от работы соответствующих API и их изменений.
Проект находится в активном развитии, и пользователи могут помочь в его улучшении, предлагая новые идеи или исправления.
Радар проекта: 48 из 100 — рабочий, но с оговорками
- Импульс 1 ≈ 1 звезда в месяц
- Темп разработки 70 53 коммита за 12 недель
- Зрелость 37 проекту 14 месяцев, релизов нет
- Сообщество 30 4 участника, 11 форков
- Свежесть 96 последний коммит — 7 дней назад
- Быстрый старт 55 есть: команда установки, Docker
- Готовность к продакшену 30 автосборка
- Безопасность и доверие 25 своя лицензия (не из открытых)
- Документация 94 README 19.2 тыс. знаков, 12 разделов, папка docs
- Экосистема 40 2 подписчика на обновления, 6 тем
Как считаем
Только открытые данные GitHub на 07.11.2026, без оценок нейросети. Каждая ось — от 0 до 100, итог — среднее.
- Импульс — звёзд в день: за время наших замеров, а пока их нет — за всю жизнь проекта; 200 в день — максимум.
- Темп разработки — коммитов за последние 12 недель; 300 — максимум. Пока GitHub не досчитал статистику, ось не учитывается.
- Зрелость — возраст проекта (3 года — максимум) и число релизов (30 — максимум), поровну.
- Сообщество — участников с коммитами (200 — максимум) и форков (5000 — максимум), поровну.
- Свежесть — дней с последнего коммита: сегодня — 100, полгода и больше или архив — 0.
- Быстрый старт — в README есть команда установки, раздел «быстрый старт» или примеры использования, в репозитории — Docker и папка примеров, у проекта есть сайт или демо.
- Готовность к продакшену — релизы, версия 1.0 и выше, автосборка (GitHub Actions), тесты, лицензия, журнал изменений.
- Безопасность и доверие — открытая лицензия (своя — половина балла), политика безопасности (SECURITY.md), проект организации, правила для участников, не в архиве.
- Документация — объём и структура README, папка docs или сайт, оценка «здоровья сообщества» GitHub.
- Экосистема — звёзды (50 тыс. — максимум), подписчики на обновления (1000 — максимум), темы репозитория.
Открыть на GitHub: vanalmsick/workout_challenge →
RepoRadar