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

Нутри-ассистент в Telegram: Mini App и бот для похудения с подбором рациона из 9 896 рецептов и графиками прогресса

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

Описание

Помощник в похудении для тех, кто уже срывался и бросал. Успех здесь меряется не скоростью, а тем, вернулся ли человек после пропуска: никаких стриков, штрафов и красного цвета.

Нужно было: рассчитать честный план и дату цели по проверенным формулам, подбирать рацион из реальных рецептов под норму калорий и белка, показывать тренд веса вместо скачков на весах — и всё это внутри Telegram.

Решение

• Онбординг из 8 вопросов, скрининг противопоказаний, три темпа с честной датой цели и замороженный план «при 100% соблюдении».
• Расчёты: BMR и TDEE, адаптивный TDEE, тренд веса по EMA, определение плато — по собственному исследованию формул.
• Подбор рациона под калории и белок с учётом аллергий, времени готовки и бюджета: жадная сборка с локальным поиском.
• Контент-пайплайн: сбор рецептов по JSON-LD с соблюдением robots.txt, сопоставление ингредиентов со справочником, расчёт КБЖУ по составу. Итог: 9 896 рецептов + 17,6 тыс. продуктов из Open Food Facts.
• Бэкенд: FastAPI, SQLAlchemy (async), PostgreSQL, Alembic, arq-воркер с ночным пересчётом плана.
• Бот на aiogram 3: напоминания по часовому поясу, инвайты, лист ожидания, админ-команды.
• Фронтенд: React 19, TypeScript, Vite, Recharts, framer-motion, светлая и тёмная тема Telegram, сканер штрихкодов.
• 537 тестов pytest (в т.ч. property-based на hypothesis), 48 на vitest.
• Деплой: Docker Compose + Caddy на VPS, Makefile с выкладкой и бэкапами.

Результат

Приложение работает в закрытом пилоте на своём сервере (вход по инвайтам, бот @cozyyfood_bot).

— Сборку рациона на проде ускорил с 7,5 до 0,24 секунды.
— Графики: тренд веса, прогноз с коридором, отклонение от плана, обхваты.
— Окно закрытия дня и спокойное объяснение про воду после переедания.
— 537 тестов бэкенда.

Срок: 16 дней, 206 коммитов; около 10,5 тыс. строк Python и 9,6 тыс. строк фронтенда.

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

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

Все проекты →
Веб-разработка и IT VPS Panel — панель управления серверами на Next.js: контейнеры, логи потоком, базы данных, алерты в Telegram
VPS Panel — панель управления серверами на Next.js: контейнеры, логи потоком, базы данных, алерты в Telegram
24
Веб-разработка и IT CashMap — Telegram Mini App для учёта личных финансов с прогнозом накоплений на годы вперёд
CashMap — Telegram Mini App для учёта личных финансов с прогнозом накоплений на годы вперёд
28
Веб-разработка и IT WITHER: CLAY — пластилиновый шутер волн в стилистике stop-motion с разрушаемым окружением (itch.io)
WITHER: CLAY — пластилиновый шутер волн в стилистике stop-motion с разрушаемым окружением (itch.io)
21
Веб-разработка и IT PixelSoul — сайт игровых тестов, квизов и карточек для сторис на Next.js: 16 типов, RU/EN, вход через Steam
PixelSoul — сайт игровых тестов, квизов и карточек для сторис на Next.js: 16 типов, RU/EN, вход через Steam
21