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

228 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 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
```
## 📄 Лицензия
Частный проект для личного использования.
---
Сделано с ❤️ для планирования совместных задач!