Хочу бота!
работа

Фитнес CRM для тренера

Система для персонального фитнес-тренера: вести клиентов, планировать и проводить тренировки прямо в зале с телефона, отслеживать прогресс и выдавать клиентам красивые PDF-отчёты.

Python FastAPI PostgreSQL React TypeScript Telegram Docker CRM
О проекте

Рабочее место персонального тренера. Тренер заводит карточки клиентов (цели, ограничения по здоровью, согласие на обработку данных), составляет тренировки заранее на ноутбуке вечером — с нуля, из готового шаблона или копией прошлой тренировки — а потом в зале с телефона ведёт занятие: вводит фактические веса и повторы по подходам, видит рядом что клиент делал в прошлый раз, и в конце получает крупную цифру суммарного поднятого веса (тоннаж) с приростом к прошлой тренировке. Это и есть главная ценность — объективный прогресс, который приятно показать клиенту. Вокруг этого ритуала собрано всё остальное: замеры тела (вес, объёмы) с графиками динамики, отметки посещаемости, справочник упражнений и шаблонов тренировок, PDF-отчёты двух видов (для клиента и для себя), Telegram-бот с напоминаниями о тренировках и неактивных клиентах. Система сделана как multi-tenant с нуля: каждый тренер видит только своих клиентов, доступ — по ключу со сроком действия, без паролей. Стек: бэкенд на Python (FastAPI) + PostgreSQL, фронтенд на React + TypeScript, два Telegram-бота на aiogram, отчёты через WeasyPrint, всё в Docker. Проект доведён до продакшена и развёрнут на сервере в РФ для соответствия ФЗ-152; сейчас идёт фаза полировки по итогам живого тестирования.

Как это работает
🧑‍🤝‍🧑
Карточка клиента
input
Тренер заводит клиента: цели, ограничения по здоровью, согласие на данные.
📅
Планирование тренировки
вечером на ноутбуке
Составляет занятие с нуля, из шаблона или копией прошлого; запрещённые упражнения убираются сами.
💪
Проведение в зале
телефон
Вводит фактические веса и повторы по подходам, рядом видит результаты прошлого раза.
📈
Замеры и посещаемость
прогресс
Фиксирует вес и объёмы тела, строит графики динамики, отмечает кто пришёл.
📄
PDF-отчёт
output
Считает суммарный поднятый вес (тоннаж) и формирует отчёт для клиента или для себя.