Даниил Волков › volkovda
Боты, Mini App, сайты и игры — от идеи до деплоя
Рейтинг
62
№ 72 211 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
На сайте с
2026 года
Юридический статус
Самозанятый

Трекер тренировок в Telegram: Mini App + бот с напоминаниями, вход без паролей, PostgreSQL, деплой в Docker

Используемые навыки Docker PostgreSQL React.js Telegram API

Описание

Нужен был дневник тренировок, которым пользуются прямо в Telegram: без регистрации, паролей и установки приложения.

За основу взят open-source трекер openGym — PWA со входом по passkeys и хранением данных в JSON-файлах. Его нужно было переделать под Telegram Mini App: другой вход, нормальная база, бот с уведомлениями и интерфейс, удобный в зале одной рукой.

Решение

• Вход через проверку подписи Telegram (initData, HMAC-SHA256) на каждом запросе — без сессий и экрана входа, профиль создаётся первым запросом.
• Перевёл хранение с JSON-файлов на PostgreSQL: схема из 11 таблиц, миграции, слой данных.
• Telegram-бот на grammY: команды /today и /weight, кнопка меню с Mini App, напоминания о тренировке по расписанию, сообщение о конце отдыха без дублей (FOR UPDATE SKIP LOCKED), запись веса одним сообщением.
• Переделал интерфейс: неоновая тема с проверенным контрастом, новый экран подхода (вес с прошлого раза, таймер отдыха, момент рекорда), онбординг, MainButton, BackButton и виброотклик Telegram.
• Убрал лишнее из исходного проекта: Capacitor, Web Push, passkeys, админку.
• Деплой: Docker Compose (Postgres + API с ботом + nginx), TLS Let's Encrypt, ежедневные бэкапы с проверкой восстановления.
• 46 тестов API на одноразовом Postgres.

Результат

Приложение работает в боте @open_fitness_bot (открывается кнопкой меню).

— План на неделю: пропущенный день переносится одним касанием.
— Экран подхода: вес с прошлого раза, таймер отдыха, вспышка при новом рекорде.
— 1324 упражнения с анимациями, графики веса и прогресса, карта нагрузки по мышцам.
— Бот напоминает о тренировке и о конце отдыха.

Логика тренировок, прогрессии и рекордов взята из openGym (AGPL-3.0); моя часть — перенос в Telegram, база, бот, новый интерфейс и деплой.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT CashMap — Telegram Mini App для учёта личных финансов с прогнозом накоплений на годы вперёд
CashMap — Telegram Mini App для учёта личных финансов с прогнозом накоплений на годы вперёд
28
Веб-разработка и IT DEAD KINGDOM VHS — ретро-FPS на Godot с VHS-эффектами, играется в браузере (itch.io)
DEAD KINGDOM VHS — ретро-FPS на Godot с VHS-эффектами, играется в браузере (itch.io)
21
ИИ и Нейросети Цифровой двойник в Telegram: бот отвечает в стиле человека — RAG, дообучение LoRA и оценка слепым LLM-судьёй
Цифровой двойник в Telegram: бот отвечает в стиле человека — RAG, дообучение LoRA и оценка слепым LLM-судьёй
30
Веб-разработка и IT Romantik Klub — веб-сервис тестов с карточками для шеринга в Telegram: Next.js, PostgreSQL, ИИ-разбор скриншотов
Romantik Klub — веб-сервис тестов с карточками для шеринга в Telegram: Next.js, PostgreSQL, ИИ-разбор скриншотов
18