Go to file
Заид Омар Медхат | Zaid Omar Medhat 94d57fa8f2
All checks were successful
Deploy Production / deploy (push) Successful in 28s
f
2026-01-20 11:21:59 +05:00
.gitea/workflows Добавлен workflow для деплоя 2026-01-20 10:28:34 +05:00
src first commit 2026-01-20 10:27:07 +05:00
.dockerignore first commit 2026-01-20 10:27:07 +05:00
.env.example first commit 2026-01-20 10:27:07 +05:00
.gitignore first commit 2026-01-20 10:27:07 +05:00
docker-compose.yml f 2026-01-20 11:21:59 +05:00
Dockerfile first commit 2026-01-20 10:27:07 +05:00
nest-cli.json first commit 2026-01-20 10:27:07 +05:00
package-lock.json first commit 2026-01-20 10:27:07 +05:00
package.json first commit 2026-01-20 10:27:07 +05:00
README.md first commit 2026-01-20 10:27:07 +05:00
tsconfig.json first commit 2026-01-20 10:27:07 +05:00

Карта Суп Telegram Bot

Telegram бот для проверки баланса и истории транзакций карты Карта Суп.

Возможности

  • 💳 Сохранение кода карты для каждого пользователя
  • ✍️ Ввод кода карты (13 цифр, начинается с 2001)
  • 💰 Проверка баланса карты
  • 📊 Просмотр последних транзакций
  • 🔄 Изменение кода карты
  • 📱 Удобное меню с кнопками
  • 🛡️ Защита от спама (rate limiting)
  • Валидация кода карты

Технологии

  • NestJS
  • TypeScript
  • Telegraf (Telegram Bot API)
  • TypeORM
  • PostgreSQL
  • Docker

Установка и запуск

Локальная разработка

  1. Установите зависимости:
npm install
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Заполните переменные окружения в .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
  1. Запустите PostgreSQL (или используйте Docker):
docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=karta_soup \
  -p 5432:5432 \
  postgres:15-alpine
  1. Запустите приложение:
npm run start:dev

Запуск с Docker

  1. Создайте файл .env:
cp .env.example .env
  1. Укажите токен бота в .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
  1. Запустите контейнеры:
docker-compose up -d
  1. Проверьте логи:
docker-compose logs -f app

Деплой на сервер

  1. Скопируйте проект на сервер:
scp -r . user@your-server:/path/to/app
  1. На сервере создайте .env файл с вашими настройками

  2. Запустите:

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