Skip to content

alexandergoncharov/test-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time Chat Application

Веб-приложение для обмена сообщениями в реальном времени.

Технологический стек

Backend

  • NestJS + TypeScript
  • TypeORM с MongoDB
  • Socket.io для real-time коммуникации
  • JWT для аутентификации

Frontend

  • SvelteKit + TypeScript
  • Socket.io-client для WebSocket соединения

Database

  • MongoDB

Функциональные возможности

  • ✅ Регистрация и авторизация пользователей (JWT)
  • ✅ Список всех пользователей системы
  • ✅ Создание диалогов между пользователями
  • ✅ Отправка и получение текстовых сообщений
  • ✅ Real-time обмен сообщениями через WebSocket
  • ✅ Отображение имени собеседника в сообщениях

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

test-task/
├── backend/          # NestJS приложение
├── frontend/         # SvelteKit приложение
├── docker-compose.yml # Docker конфигурация
└── README.md

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

Вариант 1: Запуск через Docker (рекомендуется)

  1. Убедитесь, что у вас установлены Docker и Docker Compose

  2. Запустите все сервисы:

docker-compose up -d
  1. Откройте приложение в браузере:

  2. Для остановки:

docker-compose down
  1. Для просмотра логов:
docker-compose logs -f

Вариант 2: Локальный запуск

Требования

  • Node.js 20+
  • MongoDB (локально или через Docker)

Backend

  1. Перейдите в директорию backend:
cd backend
  1. Установите зависимости:
npm install
  1. Создайте файл .env на основе .env.example:
MONGODB_URI=mongodb://localhost:27017
MONGODB_DATABASE=chat_app
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRES_IN=1h
FRONTEND_URL=http://localhost:5173
  1. Запустите MongoDB (если не запущен):
# Через Docker
docker run -d -p 27017:27017 --name mongodb mongo:7.0

# Или используйте локально установленный MongoDB
  1. Запустите backend:
npm run start:dev

Backend будет доступен на http://localhost:3000 Swagger документация: http://localhost:3000/api

Frontend

  1. Перейдите в директорию frontend:
cd frontend
  1. Установите зависимости:
npm install
  1. Создайте файл .env (опционально, значения по умолчанию):
VITE_API_BASE_URL=http://localhost:3000
VITE_SOCKET_URL=http://localhost:3000
  1. Запустите frontend:
npm run dev

Frontend будет доступен на http://localhost:5173

API Documentation

Swagger UI

После запуска backend, Swagger документация доступна по адресу:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors