🚀 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
This commit is contained in:
Bivekich
2025-06-26 21:40:27 +03:00
commit 0ce19f8182
27 changed files with 15641 additions and 0 deletions

227
README.md Normal file
View File

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