Workout Challenge: веб-приложение для соревнований по физической активности

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 — рабочий, но с оговорками

ИмпульсТемпЗрелостьСообществоСвежестьСтартПродакшенДовериеДокументацияЭкосистема48
  • Импульс 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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте