# 🤖 Biveki Day Bot - Планировщик задач для пары Telegram бот-планировщик задач, созданный специально для двоих - программиста 👨‍💻 и его девушки 💋. ## 🚀 Быстрый деплой через Docker ### 1. Подготовка переменных окружения ```bash # Скопируйте пример файла переменных окружения cp stack.env.example stack.env # Отредактируйте файл с вашими данными nano stack.env ``` **Обязательно настройте:** - `DATABASE_URL` - URL вашей PostgreSQL базы данных - `TELEGRAM_BOT_TOKEN` - токен вашего Telegram бота ### 2. Запуск приложения ```bash # Автоматический деплой ./deploy.sh # Или вручную docker-compose up -d --build ``` ### 3. Проверка работы - **Health Check**: http://localhost:3000/health - **Telegram Bot**: Отправьте `/start` боту - **Логи**: `docker-compose logs -f bivekidaybot` ### 4. Управление контейнером ```bash # Посмотреть статус docker-compose ps # Посмотреть логи docker-compose logs -f bivekidaybot # Перезапустить docker-compose restart bivekidaybot # Остановить docker-compose down # Обновить приложение git pull && docker-compose up -d --build ``` 📚 **Подробная документация по деплою**: [DEPLOY.md](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. Установите зависимости: ```bash npm install ``` 2. Создайте файл `.env`: ```env DATABASE_URL=postgresql://username:password@host:port/database TELEGRAM_BOT_TOKEN=your_bot_token PORT=3000 NODE_ENV=development ``` 3. Запустите приложение: ```bash # Режим разработки 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 # Главный модуль ``` ## 🔧 Разработка ```bash # Запуск в режиме разработки npm run start:dev # Сборка npm run build # Тесты npm run test # Линтинг npm run lint ``` ## 📄 Лицензия Частный проект для личного использования. --- Сделано с ❤️ для планирования совместных задач!