Цель: Создать фуллстак веб-приложение для обмена текстовыми сообщениями в реальном времени с базовым функционалом.
Функционал:
- Регистрация
- Авторизация
- Работа со списком друзей
- Обмен сообщениями в реальном времени
- Добавление эмодзи в сообщениях
- Индикатор написания сообщения пользователем
- Индикатор онлайн и офлайн статуса пользователя
- Изменение данных пользователя (аватар, имя, почта, пароль)
Технологии:
- General:
PNPM,Docker,Turbo,Eslint,Prettier - Server:
TypeScript,Nest,Postgres,Prisma,Bcrypt,Socketio - Client:
TypeScript,Vite,React,Radix UI,Luxon,Zod,Axios,Socketio
Структура:
/apps - Приложения
/client - Реализация client чата
/server - Реализация server чата
/general - Общее
/images - Картинки для md файлов проекта
/infrastructure - Реализация pipeline docker для запуска проекта в dev и prod
/packages - Пакеты для приложений
/config - Базовые правила для eslint, prettier, ts
/database - Работа с prisma для database чата
Первый вариант (Запуск всего в docker):
- Требуется
Docker - Создайте файл
.envи перенесите данные из файла.env.development
# Start - database, server, client
$ docker-compose up -dВторой вариант (Запуск database в docker, а client и server в dev режиме):
- Требуется
Docker,Node,PNPM - Создайте файл
.envи перенесите данные из файла.env.development
# Install dependens for database, server, client
$ pnpm install
# Launch database service in docker
$ docker-compose up -d postgres
# Generate client prisma for database
$ pnpm --filter database db:generate
# Migration prisma for database
$ pnpm --filter database db:migration
# Seed data for database
$ pnpm --filter database db:seed
# Launch client and server in dev
$ pnpm dev