karta-soup/README.md

136 lines
3.4 KiB
Markdown
Raw Permalink 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.

# Карта Суп Telegram Bot
Telegram бот для проверки баланса и истории транзакций карты Карта Суп.
## Возможности
- 💳 Сохранение кода карты для каждого пользователя
- ✍️ Ввод кода карты (13 цифр, начинается с 2001)
- 💰 Проверка баланса карты
- 📊 Просмотр последних транзакций
- 🔄 Изменение кода карты
- 📱 Удобное меню с кнопками
- 🛡️ Защита от спама (rate limiting)
- ✅ Валидация кода карты
## Технологии
- NestJS
- TypeScript
- Telegraf (Telegram Bot API)
- TypeORM
- PostgreSQL
- Docker
## Установка и запуск
### Локальная разработка
1. Установите зависимости:
```bash
npm install
```
2. Создайте файл `.env` на основе `.env.example`:
```bash
cp .env.example .env
```
3. Заполните переменные окружения в `.env`:
```env
TELEGRAM_BOT_TOKEN=your_bot_token_here
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
DATABASE_NAME=karta_soup
NODE_ENV=development
```
4. Запустите PostgreSQL (или используйте Docker):
```bash
docker run -d \
--name postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=karta_soup \
-p 5432:5432 \
postgres:15-alpine
```
5. Запустите приложение:
```bash
npm run start:dev
```
### Запуск с Docker
1. Создайте файл `.env`:
```bash
cp .env.example .env
```
2. Укажите токен бота в `.env`:
```env
TELEGRAM_BOT_TOKEN=your_bot_token_here
```
3. Запустите контейнеры:
```bash
docker-compose up -d
```
4. Проверьте логи:
```bash
docker-compose logs -f app
```
### Деплой на сервер
1. Скопируйте проект на сервер:
```bash
scp -r . user@your-server:/path/to/app
```
2. На сервере создайте `.env` файл с вашими настройками
3. Запустите:
```bash
docker-compose up -d
```
## Команды бота
- `/start` - Начать работу с ботом
- `/balance` - Проверить баланс
- `/changecode` - Изменить код карты
- `/help` - Показать справку
## Структура проекта
```
src/
├── bot/
│ ├── bot.module.ts # Модуль бота
│ └── bot.update.ts # Обработчики команд и сообщений
├── entities/
│ └── user.entity.ts # Сущность пользователя
├── interfaces/
│ └── balance.interface.ts # Интерфейсы для API
├── services/
│ ├── karta-soup.service.ts # Сервис для работы с API Карта Суп
│ └── user.service.ts # Сервис для работы с пользователями
├── app.module.ts # Главный модуль приложения
└── main.ts # Точка входа
```
## API Карта Суп
Бот использует публичный API для получения информации о балансе:
```
GET https://meal.gift-cards.ru/api/1/cards/{code}?limit=100
```
## Лицензия
MIT