Веб-приложение для обмена сообщениями в реальном времени.
- NestJS + TypeScript
- TypeORM с MongoDB
- Socket.io для real-time коммуникации
- JWT для аутентификации
- SvelteKit + TypeScript
- Socket.io-client для WebSocket соединения
- MongoDB
- ✅ Регистрация и авторизация пользователей (JWT)
- ✅ Список всех пользователей системы
- ✅ Создание диалогов между пользователями
- ✅ Отправка и получение текстовых сообщений
- ✅ Real-time обмен сообщениями через WebSocket
- ✅ Отображение имени собеседника в сообщениях
test-task/
├── backend/ # NestJS приложение
├── frontend/ # SvelteKit приложение
├── docker-compose.yml # Docker конфигурация
└── README.md
-
Убедитесь, что у вас установлены Docker и Docker Compose
-
Запустите все сервисы:
docker-compose up -d-
Откройте приложение в браузере:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Swagger Documentation: http://localhost:3000/api
-
Для остановки:
docker-compose down- Для просмотра логов:
docker-compose logs -f- Node.js 20+
- MongoDB (локально или через Docker)
- Перейдите в директорию backend:
cd backend- Установите зависимости:
npm install- Создайте файл
.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- Запустите MongoDB (если не запущен):
# Через Docker
docker run -d -p 27017:27017 --name mongodb mongo:7.0
# Или используйте локально установленный MongoDB- Запустите backend:
npm run start:devBackend будет доступен на http://localhost:3000 Swagger документация: http://localhost:3000/api
- Перейдите в директорию frontend:
cd frontend- Установите зависимости:
npm install- Создайте файл
.env(опционально, значения по умолчанию):
VITE_API_BASE_URL=http://localhost:3000
VITE_SOCKET_URL=http://localhost:3000- Запустите frontend:
npm run devFrontend будет доступен на http://localhost:5173
После запуска backend, Swagger документация доступна по адресу: