Chat with clients website visitors to increase their sales. The product development and technical support by ExtPoint company (where I work now).
Clients set up live chat on their websites. Then client operators can talk with website visitors from PC, tablet or mobile phone. Operator panel have a rich features such as chat, chat history, statistics, visitors online monitor, auto invitations, virtual agents and highly customizations…
I start work in this project when it already has high load and large code base.
Almost all server code (PHP) has be placed in one controller (god object) — more 10 000 code lines!
Therefore a lot of time has been spent to decrease code relations, increase code safety, reliability and
move to new technologies.
Frontend (ExtJS, jQuery, Backbone) also has been changed: MVC pattern implementation, removing code duplications and adapting it to current business logic.
Project periodically rested to its capacity, because comet transport pinged every few seconds PHP servers to update dynamic data what were inefficient. Initially I developed this part using Node.js platform and then moved whole project Node.js afterwards. Data transport can be changed to websocket/long pooling (abstraction for sockjs and socket.io libs) now.
Before my contribution project did not have tests. When I have been moving main functionality to Node.js, the unit tests (NUnit) have been involved to cover basic application scenarios.
Project is placed on many servers and also have staging, preview and beta environments. For easy and fast
application deployment with ability to roll back to previous versions the bash scripts have been developed
be me. They are used within Jenkins CI jobs.
Automatic deploy process includes application building, unit tests running, uploading to environment servers, switching to new version and checking that application is available by http.
Preview and Staging versions updated by commit hook in main git branch.
Opened chat in operator panel, widget and popup window.
Embeddable widget on client site.
Operator panel with opened chat on left panel. On the right panel you can see auto invitation settings, which triggered by rules.
The Virtual Agent is an automated system that provides replies to customers’ inquiries based on the used keywords.