Skip to content

Latest commit

 

History

110 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Dating API

API для анонимного чат-приложения с функциями поиска собеседника и обмена сообщениями.

Основные функции

  • WebSocket подключение с поддержкой восстановления сессии
  • Три метода аутентификации (auth, header, bearer)
  • Поиск собеседника по критериям (пол, возраст, рейтинг)
  • Анонимные чаты с поддержкой статусов сообщений
  • Система рейтинга пользователей
  • Геолокационный поиск (опционально)

Технологии

  • Node.js
  • TypeScript
  • Socket.IO
  • MongoDB
  • JWT для аутентификации
  • Winston для логирования
  • Circuit Breaker для отказоустойчивости

Установка

# Установка зависимостей
npm install

# Создание .env файла (после заполнения плейсхолдеров)
cp .env.example .env

# Компиляция TypeScript
npm run build

# Запуск сервера
npm start

Тестирование

# Запуск тестов WebSocket
npm run test:websocket

Структура проекта

src/
├── config/         # Конфигурация приложения
├── models/         # Mongoose модели
├── routes/         # Express маршруты
├── services/       # Бизнес-логика
├── utils/          # Утилиты
├── websocket/      # WebSocket логика
└── scripts/        # Скрипты для тестирования

Лицензия

MIT

Docker & CI/CD

Этот проект полностью докеризирован и настроен для CI/CD с помощью GitHub Actions.

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

1. Создайте .env файл:

Скопируйте содержимое из .env.example и заполните необходимые переменные, особенно MONGODB_URI.

cp .env.example .env
nano .env

2. Запустите приложение:

docker-compose up --build

Приложение будет доступно по адресу http://localhost:3001. Горячая перезагрузка включена.

Production

1. Сборка образа:

Для production используется многостадийный Dockerfile, который создает оптимизированный и безопасный образ. Собрать его можно командой:

docker build -t telegram-dating-api .

2. Запуск контейнера:

Запустите собранный образ, передав необходимые переменные окружения.

docker run -p 3001:3001 --env-file ./.env telegram-dating-api

(Предполагается, что у вас есть .env файл с production настройками).

CI/CD

Конвейер CI/CD (.github/workflows/ci-cd.yml) автоматизирует следующие шаги при каждом пуше в ветку main:

  1. Установка зависимостей
  2. Проверка линтером
  3. Сборка TypeScript кода
  4. Запуск тестов
  5. Сборка production-готового Docker образа
  6. Публикация образа в GitHub Container Registry.

Вы можете найти опубликованные образы в разделе "Packages" вашего репозитория на GitHub. Для деплоя на сервер достаточно будет забрать последнюю версию образа и запустить его.

About

REST и WebSocket API для дейтинг-приложения в Telegram. Создан с использованием Node.js, TypeScript, Express, MongoDB и Socket.IO. Включает подбор по геолокации, чат в реальном времени и полноценный сервис монетизации.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages