Type: Web Development
Tool: P5.js,Websockets,PeerJS, Alchemy API
Date: Jan 2016

SentiChat is a video chat tool that you can keep track of positiveness of what you're saying while video chatting. The background's color changes based on positiveness of your word choices, which can help improving the relationship with the person you are chatting with.


Keeping the balance between positive and negative feelings is important in every relationship. Especially when you are having conversation you care, keeping the balanced interaction should be important. According to the relationship researcher John Gotten, studies (e.g. Dr John Gottman’s work) have shown that having at least 5 positive relationship interactions for every 1 negative interaction predicts having good relationship health at later time points. Stable and happy couples share more positive feelings and actions than negative ones.

Inspired by his research, I wanted to build a chat tool that a user can monitor the positiveness of the conversation that the user have with its partner. By observing the responding background color of the chat room, the user will receive feedback about how the user and his/her partner interact with each other. It eventually allows to keep track of the overall positiveness of the conversation.

how it works

This is a private chat room where only two users can enter. Once they hit the start button, it will analyze the positiveness of their conversation. The background color gradually changes based on the sentiment of their conversation. Red indicates negativeness, and blue indicates positiveness. If a user feels uncomfortable about video chatting, then they can switch it to voice chatting, or vice versa.


This is the final project from class Live Web, taught by Shawn Van Every. In this class, I learned how to build a chat room using Node JS, Socet io and Peer JS. To make this chatroom functioning, I implemented Achemy API's sentimenty analysis. AlchemyAPI has easy-to-use mechanisms to identify positive or negative sentiment within any document or web page.