MyWorkoutTracker — проект о фитнесе и бодибилдинге.
Подойдёт всем, кто интересуется спортом и здоровым образом жизни: от начинающих до опытных спортсменов и тренеров.

Использованные технологии: Django, PostgreSQL, Redis, HTML, CSS, Bootstrap, Javascript, jQuery, AJAX.

В процессе работы над сайтом были решены следующие задачи:

  • Проектирование базы данных и архитектуры приложения в соответствии с принципами MVT.
  • Разработка основной функциональности с использованием CRUD-операций, настройка регистрации и авторизации.
  • Разработка пользовательского интерфейса с использованием Bootstrap, HTML, CSS, jQuery, адаптивная вёрстка.
  • Реализация асинхронных запросов с помощью AJAX.
  • Оптимизация производительности приложения - сокращение обращений к серверу с помощью debug toolbar и кэширование данных с использованием Redis.
  • Тестирование и отладка.
  • Подготовка приложения к деплою и развёртывание на виртуальном сервере с использованием Nginx для обеспечения статического контента и маршрутизации.

Ниже более подробно описан функционал и инструменты его реализации.

Что есть на сайте?

Каталог упражнений

Начинаешь тренировки с нуля или хочешь добавить новые упражнения в программу? Загляни в каталог.

  • более 100 упражнений
  • разделение по категориям
  • подробное описание техники выполнения, рекомендации по безопасности и вариациям
  • фото и наглядные материалы

  • Упражнения и их описания добавлены автоматически, а не вручную - текст отсканированной книги был распознан и обработан с помощью регулярных выражений (модуль regex), сформирован файл формата json с заданной структурой и загружен в БД.
  • Древовидное меню "категории по целевой мышечной группе" реализовано через template tag, хранится в БД и редактируется в админке - можно неограниченно увеличивать уровень вложенности. На отрисовку отводится один запрос к БД. При выделении пункта первый уровень вложенности разворачивается, всё, что над выделенным пунктом тоже развёрнуто.
  • Добавлены формы для поиска упражнений по названию и для фильтрации сразу по нескольким категориям, используется технология AJAX для получения результатов поиска и фильтрации без перезагрузки страницы, введённые или выбранные пользователем поля не слетают.
Дневник тренировок

Планируй тренировки, отслеживай прогресс и двигайся к своим целям!

Чтобы пользоваться дневником,
зарегистрируйся или войди в свой профиль.

  • Настроены регистрация и авторизация пользователей, редактирование профиля и восстановление пароля. Для авторизованных пользователей открывается дополнительный функционал.
  • В разделе "дневник" пользователь имеет достаточный функционал для планирования тренировок и фиксирования результатов - есть возможности добавления, редактирования, удаления тренировок, упражнений, подходов.
  • При добавлении тренировки можно скопировать одну из последних, также есть навигация по последним тренировкам.
  • При добавлении упражнений в форме осуществляется поиск по позициям, для чего используется кеширование с помощью Redis.
  • В зависимости от типа упражнения в подходах заполняются разные поля (например, для приседаний - вес, повторения, продолжительность, а для бега время и дистанция).
  • При добавлении, редактировании, копировании, удалении упражнений, подходов используется технология AJAX.
Тренеру

Удобный инструмент для составления тренировочных программ и поиска клиентов.

Для доступа нужно получить статус тренера в профиле.