Календарь домашних тренировок — 10 улучшений в пет-проекте
- пятница, 5 сентября 2025 г. в 00:00:09
5 месяцев назад я публиковал материал про пет-проект календаря домашних тренировок. Сегодня хочу рассказать, что было сделано мной за прошедшее с тех пор время.
Самим приложением пользуюсь регулярно. На главной странице для незарегистрированных пользователей в качестве примера как раз показывается моя статистика. Помимо меня есть ещё 53 зарегистрированных пользователя с подтверждённым email.
Исходный код приложения
Видео про разработку
Frontend: Typescript, Vite, Vue, Tanstack Query, Vitest, Vue I18n, Tauri
Backend: Typescript, Fastify, Mongoose, MongoDB, Swagger
Публикация приложения в RuStore
С помощью Tauri добавил генерацию формата APK. Зарегистрировался в RuStore в качестве разработчика, заполнил поля с описанием, сделал скриншоты. Модерация прошла очень быстро. Теперь приложение можно удобно скачивать и обновлять. Сам APK файл весит около 10 мегабайт. За 4 месяца с момента публикации в RuStore оттуда было 65 установок приложения.
Дизайн
Обновил шрифт, поработал с отступами и размерами элементов, доработал графики. Всё стало более ровным и унифицированным. Больше всего пришлось повозиться с календарём. Я использую vue-cal, который в этот период обновился с 4 до 5 версии.
Пользовательские упражнения
Теперь пользователи могут добавлять до 20 своих упражнений, с указанием задействованных групп мышц и использованным оборудованием. Этой функциональностью уже активно пользуются, судя по данным из админки.
Цели
В профиле можно выбрать цели по количеству занятий в неделю, подходам в занятии, повторам в подходе и среднему времени занятия. Эти цели отображаются на графиках серой линией. Дополнительная мотивация заниматься спортом!
Профиль пользователя
Профиль разбил на подразделы с переключением по вкладкам. Функциональность добавления своего оборудования и выбора веса в упражнениях по-умолчанию была и на момент написания прошлой статьи.
Мультиязычность
С помощью Vue I18n добавил мультиязычность. Все переводы лежат отдельно: пока только русский и английский языки, позже можно добавить другие популярные локали. Переключение языка происходит мгновенно, без перезагрузки страницы. Пришлось доработать UI-кит, чтобы функциональность поддерживала мультиязычность.
Таймер отдыха
Теперь при прохождении занятия между подходами показывается таймер отдыха. Эту функциональность просили пользователи - добавил.
Больше графиков
Раньше графики были только по неделям. Теперь есть переключатель на данные по месяцам. Также можно посмотреть не только общие данные, но и средние. Например, сколько в среднем повторов в подходах. Добавил новый вид графика по длительности занятий.
Юнит тесты
Qwen 3 coder помог удвоить количество юнит тестов в приложении и UI-ките - теперь их больше 800. Пока добавлял новые тесты, исправлял открывшиеся небольшие баги. Тестами покрыты не только все компоненты, но и хелперы, композаблы, сервисы получения данных через Tanstack query.
UI-кит
Всяфункциональность, не связанная с бизнес логикой, перетекает в UI‑кит. Например, из нового — запрет блокировки экрана в момент прохождения занятия. Сейчас UI‑кит состоит из 2 пакетов: более 20 UI компонентов и набор хелперов/композаблов. Есть сторибук с базовой документацией.
Планы
Хочу добавить возможность делать шаблоны, из которых потом можно создавать занятия. Сам процесс создания занятия хочется сделать более функциональным. Также в ближайших планах сделать тёмную тему.
Стараюсь не планировать огромный пласт работ. Приложение развиваю постепенно, пишу код в удовольствие. Считаю, что пет‑проекты должны быть именно такими — простыми, практичными, той тематики, которая вас на самом деле интересует.