Написано на фреймворке Vue. Виджет связан с сервером посредством web-socket. При открытии виджет проверяет сохранён ли у него token в localstorage. Если сохранен, то клиенту выдается ранее созданный диалог сохраненный в базе данных. Если token не сохранен, то виджет просит пользователя представиться, чтобы менеджер знал, как обращаться к клиенту. После чего, можно вести диалог с менеджером.
Написано на фреймворке Angular. Клиент связан с сервером посредством web-socket сервиса. Пользовательский интерфейс состоит из левой части в которой располагается список всех диалогов. И правой части в которой располагается диалог с конкретным клиентом. При открытии менеджерская часть запрашивает список переписок у сервера, после чего располагает массив клиентов в левой части приложения. При нажатии на пользователя из списка, открывается диалог с этим пользователем. После чего, можно вести диалог с клиентом.
Написано на Node.js. Представляет собой web-socket сервер с подключенным к нему firebase. Обеспечивает общение между виджетом и менеджером. Общается с web-страницами по REST API имитируя событийную модель. Все диалоги хранятся в базе данных. Сервер умеет добавлять новых пользователей по просьбе виджета, генерировать для них token и отсылать его обратно клиенту. Отдавать диалог пользователя, по предъявлению token. При получении сообщения раздавать их виджетам и менеджеру.
cd client/vue
open index.html
cd manager
ng serve
cd server
npm run start
- Vuejs
- Vuex
- Angular
- Bootstrap
- Rxjs
- Angular CLI
- SASS
- Node.js
- Web-socket server
- Firebase
- Lev Palkin - HegelPro