Веб-приложение для общения "Chatty"
О проекте
Проект написан на TypeScript с использованием шаблонизатора HandleBars абсолютно без сторонних библиотек. Использована архитектура MVC (Model-View-Controller), реализованы паттерны Block и EventBus. Это многостраничное приложение. Для запуска проекта введите в редакторе кода npm run dev либо перейдите по ссылке ниже. Реализован роутинг на собственном комопненте Route.ts. Все запросы на сервер реализованы с помощью XMLHttpRequest. Для получения и отправки сообщений в чате реализовано подключение по WebSokets.
Возможности и технологии чата
- Работа с API чата (создавние чата, удаление чата, добавление пользователей в чат, отправка сообщений)
- Валидация полей полей форм на страницах авторизации, регистрации, настроек прфиля по событиям
blur
, focus
, submit
- Авторизация, регистрация и изменение профиля пользователя
- Класс
WSTransport
для отправки сообщение в режиме реального времени (WebSocket)
- Класс
HTTPTransport
для взаимодействия с API (HTTPS)
- В проекте используется компонентный подход, написанный на
TypeScript
- Написаны тесты для блока, роутера, компонента, модуля отправки запросов HTTPTransport и комопнентов Button и Input.
Установка
- Создайте папку папку Chatty
- Склонируйте репозитарий с помощью
git clone https://github.com/BJuice1984/middle.messenger.praktikum.yandex.git
в папку Chatty;
- Перейдите в папку Chatty;
- В терминале введите команду
npm i
;
- Дождитесь окончания установки всех зависимостей;
- В терминале введите команду
npm run start
и приложение автоматически откроется в браузере на порту 3000;
- Для создания сборки введите команду
npm run build
, после чего в папке build появятся все необходимые файлы;
- Для тестирования введите команду
npm run test
.
Доработки
- Настроить ProtectedRoute для /messenger. На данный момент, можно перейти на этот маршрут незаваисимо от аутентификации;
- Реализовать загрузку и отправку файлов в чате;
- Сделать адаптивную вёрстку для tablet и mobile;
- Сделать цветовые схемы "Светлая" и "Тёмная";
- Поправить вёрстку некоторых комопнентов и привести их к дизайн-макету;
- Исправить работу модальных окон;
Используемый стек
Автор
Ильяс Сибгатуллин: i.sibgatullin59@gmail.com