EasyTalk v2

May-June 2020

Summary

I built a chat application that allows users to send messages simultaneously and pick up conversations from where they left off at any time, along with the ability to personally customize the design.

React Node.js Express Socket.io NoSQL JWT Axios

Key Points

• Built an instant messaging chat application that allows users to send messages back and forth simultaneously through WebSockets (using Socket.io library), via a Node.js server using the Express library, hosted on Heroku.

• Enabled the ability to continue conversations at any time by retrieving user profiles and chat conversations stored on a NoSQL MongoDB Atlas cluster, using AWS as the cloud provider.

• Designed user personalization by giving users the ability to change the styling of their chat.

• Successfully built RESTful APIs that handle client-server communications and are protected using JSON authentication tokens stored through browser cookies.

Lengthy Description

Knowing I had very little experience building actual products with my Computer Science knowledge, I really wanted to try and make a legitimate project to prove to myself I could create something. I've always been very inspired by people who can actually create web applications and make them look so good, even if they're very simple. I knew I wanted to go into something web related, and so I looked up how to start coding in React and how to create styling with CSS, and just went from there.

After learning how React worked, I began building my server using Node.js. While trying to learn how to connect the two, I began searching for an idea of what to actually do with them. The result was EasyTalk, which in its beginning stages was very sloppy and didn't look too great. There was a lot of backend lag with messages and I couldn't get the JSON Web Tokens to work either. However, after another month of revamping the site, EasyTalkv2 arrived.

EasyTalkv2 allows users to send messages back and forth and stores all the messages and user login information in a MongoDB Atlas Cluster, which means they can always go back through old messages and continue conversations. There is an "All Chat" option which allows all users to type to each other. Users can also click the audio button to play their message aloud before they send it.

One of the features I knew I really wanted was a way to personalize the application for each user. Allowing users to changethe color scheme of EasyTalkv2 seemed to me as a great way to allow users to not only connect with their friends, family, and others by messaging, but also with the app itself, hopefully creating more interaction with the app.

As a slight bonus, my dad now knows the link to EasyTalkv2 and cannot stop messaging me on it because he can't believe I made a website. So, if you see "Jacob's Dad" in All Chat, you know who it is!