Skip to content

Innovavtion/chat

Repository files navigation

Chat

Описание

Цель: Создать фуллстак веб-приложение для обмена текстовыми сообщениями в реальном времени с базовым функционалом.

Функционал:

  • Регистрация
  • Авторизация
  • Работа со списком друзей
  • Обмен сообщениями в реальном времени
  • Добавление эмодзи в сообщениях
  • Индикатор написания сообщения пользователем
  • Индикатор онлайн и офлайн статуса пользователя
  • Изменение данных пользователя (аватар, имя, почта, пароль)

Технологии:

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors