🚀 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:
227
README.md
Normal file
227
README.md
Normal 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
|
||||
```
|
||||
|
||||
## 📄 Лицензия
|
||||
|
||||
Частный проект для личного использования.
|
||||
|
||||
---
|
||||
|
||||
Сделано с ❤️ для планирования совместных задач!
|
Reference in New Issue
Block a user