Files
bivekidaybot/README.md
Bivekich 0ce19f8182 🚀 Initial commit: Biveki Day Bot with Docker deployment
 Features:
- 🤖 Telegram bot for task management between programmer and girlfriend
- 📝 Task creation with types (personal/shared) and priorities
-  Time-based reminders and notifications
- 📊 Statistics and progress tracking
- 🤝 Shared tasks for couples

🛠 Tech Stack:
- Backend: NestJS + TypeScript
- Database: PostgreSQL + TypeORM
- Bot: Telegraf
- Deployment: Docker + Docker Compose

🐳 Docker Deployment:
- Multi-stage Dockerfile for optimized builds
- Docker Compose with environment variables
- Health checks and automatic restarts
- Production-ready configuration

📦 Files included:
- Complete NestJS application
- Docker deployment configuration
- Environment variables setup
- Deployment scripts and documentation
- Health monitoring and logging
2025-06-26 21:40:27 +03:00

8.5 KiB
Raw Blame History

🤖 Biveki Day Bot - Планировщик задач для пары

Telegram бот-планировщик задач, созданный специально для двоих - программиста 👨‍💻 и его девушки 💋.

🚀 Быстрый деплой через Docker

1. Подготовка переменных окружения

# Скопируйте пример файла переменных окружения
cp stack.env.example stack.env

# Отредактируйте файл с вашими данными
nano stack.env

Обязательно настройте:

  • DATABASE_URL - URL вашей PostgreSQL базы данных
  • TELEGRAM_BOT_TOKEN - токен вашего Telegram бота

2. Запуск приложения

# Автоматический деплой
./deploy.sh

# Или вручную
docker-compose up -d --build

3. Проверка работы

4. Управление контейнером

# Посмотреть статус
docker-compose ps

# Посмотреть логи
docker-compose logs -f bivekidaybot

# Перезапустить
docker-compose restart bivekidaybot

# Остановить
docker-compose down

# Обновить приложение
git pull && docker-compose up -d --build

📚 Подробная документация по деплою: DEPLOY.md

Возможности

  • 📝 Создание задач: Личные и общие задачи
  • Напоминания: Автоматические уведомления
  • 📊 Статистика: Отслеживание прогресса
  • 🤝 Совместная работа: Общие задачи для двоих
  • 📱 Уведомления: Мгновенные уведомления в Telegram

🎯 Типы задач

  • 👤 Личные - задачи только для одного пользователя
  • 🤝 Общие - задачи, которые видят оба пользователя

Планирование времени

Обязательные поля:

  • 📅 Дата выполнения - каждая задача должна иметь дату
  • Время выполнения - точное время для планирования

Быстрый выбор даты:

  • 📅 Сегодня - для срочных задач
  • 📅 Завтра - планирование на следующий день
  • 📅 Послезавтра - заблаговременное планирование
  • 📅 Другая дата - ввод произвольной даты в формате ДД.ММ.ГГГГ

Быстрый выбор времени:

  • 🌅 9:00 - утренние задачи
  • 🌞 12:00 - обеденное время
  • 🌆 18:00 - вечерние дела
  • 🌙 21:00 - поздние задачи
  • Другое время - ввод произвольного времени в формате ЧЧ:ММ

🎭 Роли пользователей

  • 👨‍💻 Программист - для разработчика
  • 💋 Девушка - для его второй половинки

🤖 Управление ботом

Интерфейс:

  • Полностью кнопочное управление - никаких команд!
  • /start - единственная команда для начала работы
  • Все остальные действия выполняются через интерактивные кнопки
  • Интуитивно понятная навигация с возможностью возврата

Главное меню:

  • 📝 Создать задачу - пошаговое создание с выбором типа и приоритета
  • 📋 Мои задачи - просмотр личных задач с навигацией
  • 🤝 Общие задачи - задачи для обоих пользователей
  • 👥 Задачи партнера - просмотр задач вашего партнера
  • 📊 Статистика - ваша личная статистика
  • 📈 Общая статистика - сравнительная статистика пары
  • ⚙️ Настройки - настройки уведомлений
  • Помощь - справочная информация

Процесс работы:

  1. Регистрация: Отправьте /start и выберите роль через кнопки
  2. Создание задачи:
    • Нажмите "📝 Создать задачу"
    • Введите название задачи
    • Выберите тип (личная/общая) через кнопки
    • Выберите приоритет через кнопки
    • 📅 Выберите дату: сегодня, завтра, послезавтра или введите свою
    • Выберите время: из готовых вариантов или введите свое
  3. Управление задачами:
    • Просматривайте списки через кнопки навигации
    • Нажимайте на задачу для просмотра деталей
    • Используйте кнопки действий (завершить, удалить, начать)
    • Все задачи отображаются с датой и временем выполнения

🛠 Технологии

  • Backend: NestJS + TypeScript
  • Database: PostgreSQL + TypeORM
  • Bot: Telegraf
  • Scheduler: @nestjs/schedule
  • Environment: Node.js

📦 Установка и запуск

  1. Установите зависимости:
npm install
  1. Создайте файл .env:
DATABASE_URL=postgresql://username:password@host:port/database
TELEGRAM_BOT_TOKEN=your_bot_token
PORT=3000
NODE_ENV=development
  1. Запустите приложение:
# Режим разработки
npm run start:dev

# Продакшн
npm run start:prod

📅 Система уведомлений

Автоматические уведомления:

  • Напоминания: Проверяются каждую минуту
  • 🌅 Утренняя сводка: Ежедневно в 9:00
  • 📊 Еженедельная статистика: По воскресеньям в 20:00

Взаимные уведомления:

  • 📝 Создание задач: Партнер получает уведомление о каждой новой задаче
  • Завершение задач: Партнер узнает о завершении задач
  • 🤝 Общие задачи: Оба пользователя видят все общие задачи
  • 👥 Задачи партнера: Каждый может видеть задачи своего партнера
  • 📱 Интерактивные уведомления: Кнопки для быстрых действий в уведомлениях

🎨 Эмодзи и статусы

Статусы задач:

  • Ожидание
  • 🔄 В процессе
  • Завершено
  • Отменено

Приоритеты:

  • 🟢 Низкий
  • 🟡 Средний
  • 🟠 Высокий
  • 🔴 Срочный

📝 Структура проекта

src/
├── entities/           # Сущности базы данных
│   ├── user.entity.ts
│   └── task.entity.ts
├── services/           # Бизнес-логика
│   ├── user.service.ts
│   ├── task.service.ts
│   ├── telegram-bot.service.ts
│   └── reminder.service.ts
├── config/             # Конфигурация
│   └── database.config.ts
└── app.module.ts       # Главный модуль

🔧 Разработка

# Запуск в режиме разработки
npm run start:dev

# Сборка
npm run build

# Тесты
npm run test

# Линтинг
npm run lint

📄 Лицензия

Частный проект для личного использования.


Сделано с ❤️ для планирования совместных задач!