Skip to content

skaamoogs/messenger

Repository files navigation

Веб-приложение "Чат"

Приложение разработано для общения. На основной странице приложения размещена лента переписки и окно отправки сообщений. Предусмотрены формы авторизации и регистрации. В разделе профиль можно изменять картинку аватара, а также данные о пользователе.

Доступные команды

В корневой папке проекта вы можете запустить следующие команды:

npm run start

Выполняет сборку проекта через Webpack, запускает локальный сервер с раздачей статики.
Откройте http://localhost:3000, чтобы увидеть приложение в браузере.

npm run build

Выполняет сборку проекта в папку dist.

npm run dev

Запускает webpack-dev-server, который в режиме релаьного времени отслеживает изменения в проекте.

npm run test

Запускает unit-тесты.

Функции приложения

На данном этапе в приложении реализованы следующие функции:

  • Переход между страницами

При запуске приложения открывается страница авторизации. В низу формы есть ссылки перехода в чат и на страницу регистрации. Из страницы чата можно перейти на страницу профиля, в нижней части которой есть ссылка Выйти, нажав на которую вы снова окажетесь на странице авторизации.

Если пользователь не авторизован, при попытке перейти на страницу профиля или чата будет происходить автоматический переход на страницу авторизации. И наоборот, если пользователь авторизован, на страницу авторизации или регистрации не перейти.

  • Валидация форм

Данные, вводимые в формах регистрации, авторизации, изменения профиля проходят валидацию при вводе и при попытке отправки данных на сервер. Если валидация не пройдена, появляется соответствующее сообщение. В случае успешной проверки происходит отправка данных на сервер.

  • Работа с чатом

  • Создание чата

После перехода на страницу чата необходимо выбрать существующий чат или добавить новый. Добавление нового чата осуществляется кнопкой +, расположенной под полем поиска по чатам.

  • Отправка сообщений

После выбора чата справа появляется окно с сообщениями. В нижней части экрана находится поле для отправки сообщений. Пустое сообщение не отправляется.

  • Добавление/удаление пользователей

Добавление и удаление пользователей чата осуществляестя из выпадающего меню, вызываемого кнопкой в правом верхнем углу страницы чата. Добавление/удаление выполняется по логину. После создания нового чата необходимо добавить хотя бы одного пользователя.

  • Поиск по чатам

Реализован поиск по названию чата.

  • Изменение аватарки чата

Для изменения аватарки чата необходимо выбрать чат и кликнуть по аватарке. Будет вызвано модальное окно с диалогом выбора файла аватарки.

  • Удаление чата

Для удаления чата нужно выбрать соответствующий чат, в правом верхнем углу чата появится кнопка х, после нажатия на которую чат удалится. Удаление чата доступно только для пользователя, который его создал.

  • Работа с профилем

На странице профиля отображена информация, введенная при регистрации. Внизу имеются кнопки для изменения данных и смены пароля. Также можно изменить аватар.

Инструменты разработки

При разработке использованы следующие инструменты:

  • Сборщик проекта Webpack
  • Шаблонизатор Handlebars
  • Препроцессор CSS Sass
  • Анализатор JS кода ESLint
  • Анализатор CSS кода StyleLint
  • Язык TypeScript для типизации
  • API XMLHttpRequest для работы с данными пользователя, чатов
  • Протокол WebSocket для отправки и получения сообщений
  • Фреймворк Mocha и библиотека Chai для тестирования
  • Docker для контейнеризации и развертывания приложения

Деплой

Приложение развернуто на сервисе render.com. Перейдите по ссылке https://chat-app-r6wa.onrender.com.