"Выровняю спину даже верблюду!" 🐫
Бот-напоминалка для формирования здоровой привычки держать ровную осанку каждый день.
«Выпрями спину, гора!» — это Telegram-бот, который в течение дня ненавязчиво и с юмором напоминает выпрямить спину, расправить плечи и сделать полезную мини-разминку.
Полная концепция, лор, система рангов и база сообщений описаны в документе «Выпрями спину, гора.md».
- Платформа: .NET 10 (C# 12/13)
- Библиотека Telegram: Telegram.Bot v22.x
- База данных: PostgreSQL через Entity Framework Core (Npgsql)
- Логирование: Serilog
- Контейнеризация: Docker / Docker Compose
- Гибкий график:
- Выбор часового пояса (11 таймзон РФ + автоопределение).
- Выбор дней активности (ПН–ПТ, ПН–СБ, ПН–ВС).
- Настройка интервала любых 24 часов (пресеты или кастомный диапазон с поддержкой ночных смен).
- Динамическая генерация сообщений по редкостям:
- ⚪ Типикал (60%)
- 🔵 Редкий (20%)
- 🟢 Ниче такой (10%)
- 🟣 Эпичный (9%)
- 🟡 Легенда (1%) — упражнения, котики и редкие напоминалки.
- Лорная система рангов и скрытых достижений:
- Прогрессия:
🏔 Гора➡️🪵 Палка➡️🐈 Выпрямившийся котик➡️🏛 Античная колонна➡️🦾 Стальной хребет➡️⚡ Титан осанки➡️🌅 Великая Равнина. - Юбилейные карточки от команды создателей на 50, 100, 250, 500, 1000 и 2000 выпрямлений.
- Команда
/statsсо сводкой успехов.
- Прогрессия:
- Виральная реферальная система («Спаси друга!»):
- Персональные ссылки
?start=ref_<id>с наградами за каждого приглашённого (+1 Легендарка 🟡 и +25 выпрямлений ⚡). - Реферальные титулы: от Спасителя креветок до Апостола Ровной Спины.
- Кнопка «Поделиться с другом» в 1 клик через Telegram.
- Персональные ссылки
- Интерактивная обратная связь:
- Команда
/feedbackдля сбора оценок и предложений новых фраз с мгновенным оповещением админов.
- Команда
- Админ-панель, рассылки и бэкапы (
/admin):- Статистика пользователей в реальном времени, чтение отзывов, рассылка обновлений и выгрузка дампа базы данных прямо в Telegram в 1 клик.
/start— Запуск и онбординг/settings— Изменение таймзоны, дней и часов напоминаний/stats— Просмотр статистики, пойманных легендарок и ранга/invite— Спасти друга от сутулости и получить награды/feedback— Оставить отзыв или предложить фразу/admin— Панель администратора (статистика, отзывы, рассылка, бэкап)/help— Справка о боте
-
Склонируйте репозиторий:
git clone <repo-url> cd NonStop.Posture.Bot
-
Укажите конфигурацию в
src/NonStop.Posture.Bot/appsettings.jsonили через переменные окружения. -
Запустите проект:
dotnet run --project src/NonStop.Posture.Bot
Подробное руководство по деплою и управлению ботом на сервере описано в docs/DEPLOY.md.
Кратко:
- Создайте
.envна основе примера:cp .env.example .env
- Заполните
BOT_TOKEN,ADMIN_CHAT_IDиPOSTGRES_PASSWORDв.env. - Запустите контейнеры:
docker compose up -d --build