mass refactor
This commit is contained in:
181
README.md
181
README.md
@@ -2,6 +2,71 @@
|
||||
|
||||
Полнофункциональный Telegram бот для знакомств в стиле Tinder с инлайн-кнопками и красивым интерфейсом. Пользователи могут создавать профили, просматривать анкеты других пользователей, ставить лайки, получать матчи и общаться друг с другом.
|
||||
|
||||
## 🗂️ Структура проекта
|
||||
|
||||
```
|
||||
telegram-tinder-bot/
|
||||
├── bin/ # Исполняемые скрипты и утилиты
|
||||
│ ├── start_bot.bat # Скрипт запуска для Windows
|
||||
│ ├── install_ubuntu.sh # Скрипт установки для Ubuntu
|
||||
│ ├── update.sh # Скрипт обновления для Linux/macOS
|
||||
│ ├── update.bat # Скрипт обновления для Windows
|
||||
│ └── setup.sh # Скрипт настройки окружения
|
||||
│
|
||||
├── docs/ # Документация проекта
|
||||
│ ├── ARCHITECTURE.md # Архитектура приложения
|
||||
│ ├── DEPLOYMENT.md # Инструкции по развертыванию
|
||||
│ ├── DEPLOY_UBUNTU.md # Инструкции по развертыванию на Ubuntu
|
||||
│ ├── LOCALIZATION.md # Информация о локализации
|
||||
│ ├── NATIVE_CHAT_SYSTEM.md # Документация по системе чата
|
||||
│ ├── PROJECT_SUMMARY.md # Общее описание проекта
|
||||
│ └── VIP_FUNCTIONS.md # Описание премиум функций
|
||||
│
|
||||
├── migrations/ # Миграции базы данных
|
||||
│ ├── 1758144488937_initial-schema.js # Начальная схема БД
|
||||
│ └── 1758144618548_add-missing-profile-columns.js # Дополнительные колонки
|
||||
│
|
||||
├── scripts/ # Вспомогательные скрипты
|
||||
│ ├── add-hobbies-column.js # Скрипт добавления колонки hobbies
|
||||
│ ├── add-premium-columns.js # Скрипт добавления премиум колонок
|
||||
│ ├── add-premium-columns.ts # TypeScript версия скрипта
|
||||
│ ├── create_profile_fix.js # Исправление профилей
|
||||
│ └── migrate-sync.js # Синхронизация миграций
|
||||
│
|
||||
├── sql/ # SQL скрипты
|
||||
│ ├── add_looking_for.sql # Добавление колонки looking_for
|
||||
│ ├── add_missing_columns.sql # Добавление недостающих колонок
|
||||
│ ├── add_premium_columns.sql # Добавление премиум колонок
|
||||
│ ├── add_updated_at.sql # Добавление колонки updated_at
|
||||
│ ├── clear_database.sql # Очистка базы данных
|
||||
│ └── recreate_tables.sql # Пересоздание таблиц
|
||||
│
|
||||
├── src/ # Исходный код приложения
|
||||
│ ├── bot.ts # Основной файл бота
|
||||
│ ├── controllers/ # Контроллеры
|
||||
│ ├── database/ # Функции для работы с БД
|
||||
│ ├── handlers/ # Обработчики сообщений и команд
|
||||
│ ├── locales/ # Локализация
|
||||
│ ├── models/ # Модели данных
|
||||
│ ├── scripts/ # Скрипты для запуска
|
||||
│ │ └── initDb.ts # Инициализация базы данных
|
||||
│ ├── services/ # Сервисы и бизнес-логика
|
||||
│ ├── types/ # TypeScript типы
|
||||
│ └── utils/ # Утилиты и вспомогательные функции
|
||||
│
|
||||
├── tests/ # Тесты
|
||||
│ └── test-bot.ts # Тестовая версия бота
|
||||
│
|
||||
├── .dockerignore # Игнорируемые Docker файлы
|
||||
├── .env # Переменные окружения (локальные)
|
||||
├── .env.example # Пример файла переменных окружения
|
||||
├── database.json # Конфигурация базы данных
|
||||
├── docker-compose.yml # Настройка Docker Compose
|
||||
├── Dockerfile # Docker-образ приложения
|
||||
├── package.json # Зависимости и скрипты NPM
|
||||
└── tsconfig.json # Настройки TypeScript
|
||||
```
|
||||
|
||||
## ✨ Функционал
|
||||
|
||||
### 🎯 Основные возможности
|
||||
@@ -74,82 +139,84 @@
|
||||
[💬 Написать] [👤 Профиль] [🔍 Продолжить поиск]
|
||||
```
|
||||
|
||||
## 🗂️ Структура проекта
|
||||
|
||||
```
|
||||
telegram-tinder-bot/
|
||||
├── src/
|
||||
│ ├── bot.ts # Основной файл бота
|
||||
│ ├── handlers/ # Обработчики событий
|
||||
│ │ ├── commandHandlers.ts # Команды (/start, /profile, etc.)
|
||||
│ │ ├── callbackHandlers.ts # Инлайн-кнопки (лайки, просмотр)
|
||||
│ │ └── messageHandlers.ts # Текстовые сообщения
|
||||
│ ├── services/ # Бизнес-логика
|
||||
│ │ ├── profileService.ts # Управление профилями
|
||||
│ │ ├── matchingService.ts # Алгоритм совпадений
|
||||
│ │ └── notificationService.ts # Уведомления
|
||||
│ ├── models/ # Модели данных
|
||||
│ │ ├── User.ts # Пользователь Telegram
|
||||
│ │ ├── Profile.ts # Профиль знакомств
|
||||
│ │ ├── Swipe.ts # Лайки/дислайки
|
||||
│ │ └── Match.ts # Совпадения
|
||||
│ └── database/ # База данных
|
||||
│ ├── connection.ts # Подключение к PostgreSQL
|
||||
│ └── migrations/init.sql # Создание таблиц
|
||||
├── config/ # Конфигурация
|
||||
│ └── default.json # Настройки по умолчанию
|
||||
├── docker-compose.yml # Docker Compose
|
||||
├── Dockerfile # Docker контейнер
|
||||
└── package.json # Зависимости npm
|
||||
```
|
||||
|
||||
## 🚀 Развертывание
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### 📦 Docker (Рекомендуется)
|
||||
### 1. Предварительные требования
|
||||
|
||||
- Node.js 16+
|
||||
- PostgreSQL 12+
|
||||
- Telegram Bot Token (получить у [@BotFather](https://t.me/BotFather))
|
||||
|
||||
### 2. Установка
|
||||
|
||||
```bash
|
||||
# Клонировать репозиторий
|
||||
git clone <repository-url>
|
||||
cd telegram-tinder-bot
|
||||
|
||||
# Настроить переменные окружения
|
||||
cp .env.example .env
|
||||
# Отредактируйте .env файл
|
||||
|
||||
# Запустить с Docker Compose
|
||||
docker-compose up -d
|
||||
|
||||
# Применить миграции БД
|
||||
docker-compose exec app npm run db:migrate
|
||||
```
|
||||
|
||||
### 🖥️ Обычная установка
|
||||
|
||||
```bash
|
||||
# Установить зависимости
|
||||
npm install
|
||||
|
||||
# Создать базу данных
|
||||
createdb telegram_tinder_bot
|
||||
psql -d telegram_tinder_bot -f src/database/migrations/init.sql
|
||||
|
||||
# Запустить бота
|
||||
# Скомпилировать TypeScript
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
### ☁️ Продакшен
|
||||
### 3. Настройка базы данных
|
||||
|
||||
```bash
|
||||
# Установить PM2
|
||||
npm install -g pm2
|
||||
# Создать базу данных PostgreSQL
|
||||
createdb telegram_tinder_bot
|
||||
|
||||
# Запустить через PM2
|
||||
pm2 start ecosystem.config.js
|
||||
# Инициализация базы данных
|
||||
npm run init:db
|
||||
```
|
||||
|
||||
# Мониторинг
|
||||
pm2 monit
|
||||
pm2 logs telegram-tinder-bot
|
||||
### 4. Запуск бота
|
||||
|
||||
```bash
|
||||
# Запуск на Windows
|
||||
.\bin\start_bot.bat
|
||||
|
||||
# Запуск на Linux/macOS
|
||||
npm run start
|
||||
```
|
||||
|
||||
## <20> Развертывание на Ubuntu
|
||||
|
||||
Для развертывания на Ubuntu 24.04 используйте скрипт установки:
|
||||
|
||||
```bash
|
||||
# Сделать скрипт исполняемым
|
||||
chmod +x ./bin/install_ubuntu.sh
|
||||
|
||||
# Запустить установку
|
||||
sudo ./bin/install_ubuntu.sh
|
||||
```
|
||||
|
||||
Подробные инструкции по развертыванию на Ubuntu находятся в [docs/DEPLOY_UBUNTU.md](docs/DEPLOY_UBUNTU.md).
|
||||
|
||||
## 🔄 Обновление бота
|
||||
|
||||
### На Windows:
|
||||
|
||||
```bash
|
||||
# Обновление с ветки main
|
||||
npm run update:win
|
||||
|
||||
# Обновление с определенной ветки
|
||||
.\bin\update.bat develop
|
||||
```
|
||||
|
||||
### На Linux/macOS:
|
||||
|
||||
```bash
|
||||
# Обновление с ветки main
|
||||
npm run update
|
||||
|
||||
# Обновление с определенной ветки и перезапуском сервиса
|
||||
./bin/update.sh develop --restart-service
|
||||
```
|
||||
|
||||
## 🔧 Настройка переменных окружения
|
||||
|
||||
Reference in New Issue
Block a user