Chatroom
* Introduction:
With the rapid development of mobile phones, mobile devices have become one of the integral parts of daily activities. In recent years, chat applications have evolved and made a major change in social media because of their distinctive features that attract audiences. It provides real-time messaging and offers different services including, exchange text messages, images, files etc. Moreover, it supports cross platforms such as Android and iOS. There are currently millions of smartphone users who are using chat applications.
In a world where the value of time is steadily increasing, building applications that users can interact with in real-time has become a norm for most of the developers. Most of the applications we see today, whether they are mobile, desktop, or web applications, have at least a single real-time feature included. As an example, real-time messaging and notifications are two of the most commonly used real-time features used in applications.Most of us are familiar with the use of real-time messaging applications, especially in mobile devices, in the form of Whatsapp, Facebook Messenger, and numerous other messaging applications. However, real-time messaging usage is not limited to purely messaging applications. We can also use web based consoles for implementing these things in a more interactive way.These provides us with a more realistic approach by making two sided communication more effective.
In this project we are going to build a web based realtime chat room using reactjs and nodejs frameworks. It will allow only authenticated users to send and read messages and users can sign up by providing their email and creating a password, or by authenticating through a Google account.A chat room is a Web site, part of a Web site, or part of an online service, that provides a venue for communities of users with a common interest to communicate in real time. Forums and discussion groups, in comparison, allow users to post messages but don’t have the capacity for interactive messaging. Most chat rooms don’t require users to have any special software; those that do, such as Internet Relay Chat (IRC) allow users to download it from the Internet.
* Methodology:
Technology Used:
I) Socket.IO Socket.IO enables real-time, bidirectional and event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
II) Node Express: Back-End Framework: Express is a Node.js framework. Rather than writing the code using Node.js and creating loads of Node modules, Express makes it simpler and easier to write the back-end code. Express helps in designing great web applications and APIs. Express supports many middlewares which makes the code shorter and easier to write.
III) React: Front-End Library React is a JavaScript library that is used for building user interfaces. React is used for the development of single-page applications and mobile applications because of its ability to handle rapidly changing data. React allows users to code in JavasScript and create UI components.
IV) Node.js: JS Runtime Environment Node.js provides a JavaScript Environment which allows the user to run their code on the server (outside the browser). Node pack manager i.e. npm allows the user to choose from thousands of free packages (node modules) to download.


Codebase: https://github.com/hoplite2k/chatroom