176 lines
8.3 KiB
Markdown
176 lines
8.3 KiB
Markdown
# Универсальный Телеграмм Магазин
|
||
|
||
**Описание проекта**:
|
||
"Универсальный Телеграмм Магазин" — это телеграмм-бот для организации онлайн-продаж через Telegram. Проект предоставляет полный цикл управления магазином, включая работу с криптовалютами, управление товарами и пользователями, а также интеграцию с VPN через WireGuard для безопасных транзакций.
|
||
|
||
**Основные технологии**:
|
||
- Node.js + Telegraf для работы с Telegram API
|
||
- SQLite для хранения данных
|
||
- Docker для контейнеризации
|
||
- WireGuard для защищенных соединений
|
||
- Поддержка криптокошельков (Bitcoin, Ethereum, Litecoin)
|
||
|
||
Проект включает несколько ключевых разделов для удобной работы пользователей и администраторов, а также позволяет интегрировать систему криптокошельков для расчетов, управления товарами и отслеживания покупок.
|
||
|
||
### Основной функционал
|
||
|
||
#### Для пользователей:
|
||
- Просмотр товаров по категориям с фильтрацией по локациям
|
||
- Совершение покупок с использованием криптовалют
|
||
- Управление криптокошельками (создание, пополнение, просмотр баланса)
|
||
- Просмотр истории транзакций и покупок
|
||
- Настройка профиля (локация, контактные данные)
|
||
- Подключение к защищенному VPN через WireGuard для безопасных транзакций
|
||
|
||
#### Для администраторов:
|
||
- Полное управление товарами и категориями
|
||
- Управление пользователями (блокировка, редактирование балансов)
|
||
- Контроль транзакций и комиссий
|
||
- Создание дампов базы данных с автоматическим списанием комиссии (% от балансов кошельков)
|
||
- Управление локациями и настройками VPN
|
||
- Мониторинг активности пользователей
|
||
- SaaS система с автоматическим расчетом комиссий:
|
||
- Комиссия за оборот по магазину перед выгрузкой кошельков
|
||
|
||
---
|
||
|
||
### Установка и запуск
|
||
|
||
#### Требования:
|
||
- Node.js 18+
|
||
- Docker и Docker Compose
|
||
- Telegram Bot Token
|
||
- SQLite connection string
|
||
- WireGuard конфигурация
|
||
|
||
#### 1. Установка зависимостей:
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
#### 2. Настройка конфигурации:
|
||
Создайте файл `.env` в корне проекта со следующим содержимым:
|
||
```env
|
||
TELEGRAM_BOT_TOKEN=your_bot_token
|
||
MONGO_URI=mongodb://localhost:27017/telegram_shop
|
||
WIREGUARD_CONFIG_PATH=./wg/config/wg0.conf
|
||
```
|
||
|
||
#### 3. Запуск через Docker:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
#### 4. Настройка WireGuard:
|
||
1. Сгенерируйте ключи:
|
||
```bash
|
||
wg genkey | tee privatekey | wg pubkey > publickey
|
||
```
|
||
2. Настройте wg0.conf:
|
||
```ini
|
||
[Interface]
|
||
PrivateKey = <your_private_key>
|
||
Address = 10.0.0.1/24
|
||
ListenPort = 51820
|
||
|
||
[Peer]
|
||
PublicKey = <client_public_key>
|
||
AllowedIPs = 10.0.0.2/32
|
||
```
|
||
|
||
#### 5. Запуск бота:
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
---
|
||
|
||
### Структура проекта
|
||
|
||
```
|
||
├── src/
|
||
│ ├── config/ # Конфигурация приложения
|
||
│ ├── context/ # Контекст и состояния бота
|
||
│ ├── handlers/ # Обработчики команд
|
||
│ ├── models/ # Модели данных
|
||
│ ├── services/ # Бизнес-логика
|
||
│ ├── utils/ # Вспомогательные утилиты
|
||
│ └── index.js # Точка входа
|
||
├── wg/ # Конфигурация WireGuard
|
||
├── docker-compose.yml # Docker конфигурация
|
||
└── Dockerfile # Docker образ
|
||
```
|
||
|
||
---
|
||
|
||
### Разработка
|
||
|
||
#### Запуск в режиме разработки:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
#### Линтинг и форматирование:
|
||
```bash
|
||
npm run lint
|
||
npm run format
|
||
```
|
||
|
||
#### Тестирование:
|
||
```bash
|
||
npm test
|
||
```
|
||
|
||
---
|
||
|
||
### Лицензия
|
||
|
||
Проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
|
||
|
||
---
|
||
|
||
### Контакты
|
||
|
||
По вопросам сотрудничества и поддержки:
|
||
- Email: support@telegram-shop.com
|
||
- Telegram: @telegram_shop_support
|
||
|
||
---
|
||
|
||
### Требования к системе:
|
||
1. **Интерфейс пользователя**:
|
||
- Интуитивно понятный и удобный интерфейс для покупок.
|
||
- Легкость в управлении профилем и кошельками.
|
||
- Информация о товарах и статусах покупок должна быть легко доступна.
|
||
|
||
2. **Интерфейс администратора**:
|
||
- Возможность редактировать товары, категории и управлять локациями.
|
||
- Инструменты для контроля баланса и управления пользователями.
|
||
- Функционал для создания и загрузки дампов данных.
|
||
|
||
3. **Безопасность**:
|
||
- Защищенные транзакции.
|
||
- Надежная система для хранения данных пользователей и кошельков.
|
||
- Механизмы для предотвращения мошенничества и атак.
|
||
|
||
4. **Производительность**:
|
||
- Система должна быть способна обрабатывать большое количество пользователей и транзакций одновременно.
|
||
- Пагинация данных, чтобы обеспечить быструю загрузку и обработку.
|
||
|
||
---
|
||
|
||
### Риски и возможные проблемы:
|
||
1. **Зависимость от сторонних сервисов**:
|
||
- Интеграция с криптокошельками и сторонними сервисами для проверки баланса может быть подвержена сбоям, если эти сервисы не работают корректно.
|
||
|
||
2. **Поддержка разных криптовалют**:
|
||
- Необходимо следить за изменениями в протоколах криптовалют и своевременно обновлять систему.
|
||
|
||
3. **Безопасность и защита данных**:
|
||
- Важно следить за актуальностью средств защиты данных и предотвратить утечку информации о пользователях и их балансе.
|
||
|
||
---
|
||
|
||
### Заключение:
|
||
**Универсальный Телеграмм Магазин** предоставляет эффективное решение для организации торговых процессов в Telegram, с возможностью работы с криптовалютами и традиционными средствами. Проект ориентирован на пользователей, которые ценят удобство, безопасность и скорость совершения покупок. Для администраторов — это мощный инструмент для управления товаром, пользователями и финансовыми потоками магазина.
|