Делаю бесплатное приложение календаря домашних силовых тренировок
В декабре 2023 года я в первый раз в жизни решил попробовать похудеть. На тот момент вес был 116 кг при росте 194 см. Из спорта я всю жизнь играю в мини-футбол на любительском уровне. За питанием никогда не следил, в зал никогда не ходил.
В результате перехода на нормальное питание, работой над образом жизни и началом занятий силовыми тренировками, к сентябрю 2024 года получилось уменьшить вес на 31 кг. Это был минимум.
Сейчас, спустя полгода, вес 89 кг. Нарастить мышечную массу гораздо сложнее, чем избавиться от жира. Надеюсь, что большая часть набранных кг являются мышцами. Косвенные доказательства - улучшение результатов (например, рост подтягиваний с 9 до 11) и визуальная разница на фото до/после, которые я делаю раз в 2-3 месяца.
Я работаю фронтенд-разработчиком. До этого я уже писал пет проекты, например, делал интернет-магазин https://github.com/dergunovs/mhz и библиотеку компонентов https://github.com/dergunovs/mhz-ui Для того, чтобы разработка шла веселее, параллельно на ютуб канале снимал про это видео и делал трансляции.
5 месяцев назад я начал писать приложение, чтобы сохранять результаты своих тренировок. Особенность в том, что я тренируюсь дома - у меня ограниченный набор оборудования и ещё более ограниченное количество времени, которое я трачу на занятия - судя по статистике в приложении, около 6 часов в месяц. Среднее занятие длится 40-45 минут.
Цель приложения - добавить ценности и осмысленности тренировкам, дать дополнительную мотивацию, сделать нормальное планирование.
https://github.com/dergunovs/fit - исходный код https://vkvideo.ru/playlist/15313879_11 - видео про разработку приложения.
Фронт: Typescript, Vite, Vue, Tanstack Query, Vitest
Бэк: Typescript, Fastify, Mongoose, MongoDB, Swagger
Сейчас в приложении можно регистрироваться, добавлять своё оборудование, выбирать веса для каждого упражнения по-умолчанию.
Вы формируете занятие из доступных упражнений, выбираете вес и количество повторов, можно добавлять сеты из разных упражнений, можно добавлять сразу несколько подходов одного упражнения. Затем сразу начинаете занятие или добавляете его в календарь.
В процессе выполнения занятия вы запускаете и останавливаете таймер. Благодаря этому сохраняется статистика по среднему времени выполнения каждого упражнения. Это даёт возможность видеть примерную длительность будущих занятий ещё при планировании.
На экране статистики есть календарь, графики и таблица с упражнениями.
Отдельно упомяну таймлайн каждого занятия во всплывающем окне внутри календаря. Наглядно видно, как проходило занятие, какие были перерывы на отдых. Занятия можно копировать, информацию о том, что было внутри одного занятия также можно скопировать в буфер обмена, чтобы, например, скинуть в удобном виде своему тренеру в телеграм.
Сейчас функциональность покрывает большинство моих потребностей, но в планах внедрение функциональности:
- мультиязычность
- добавление пользователями своих упражнений
- корректировка веса, использованного в подходе
- редактирование занятия в процессе его прохождения
- тип пользователя "Тренер", с возможностью планировать тренировки подопечных
- оффлайн-режим
- таймер времени отдыха
Проект бесплатный и с открытым кодом. Я стараюсь учитывать сочетание скорости разработки, будущей расширяемости и появления новой функциональности. Например, архитектура более-менее универсальная, пишу юнит-тесты (уже 370), но слабая обработка ошибок и простейший дизайн.
Всегда буду рад конструктивной обратной связи по коду и функционалу.