ChatApp

Welcome to ChatApp, a chat application implemented using Node.js, Express.js, and Socket.io and employs Restful interface and a microservice architecture. Any user can chat with other users freely and delete the messages. The messages and user information are updated live.

Used Languages,Frameworks,Databases and technologies

NodeJS HTML5 CSS3 JavaScript MySQL MongoDB Docker Kubernetes Google Cloud

Demo

DemoGIF

Application Links

Description

  • ChatApp is a chat application that is implemented as a couple of microservices communicating with each other. The application uses 4 services.
    • The chat messaging service
    • The User information service.
    • Mysql and Mongodb services.
  • The chat messaging service that employs node.js and express.js to create neat APIs, and socket.io library for dynamic client/server interaction.
  • The second is a user authentication and management service that employs Restify to implement REST interface and a data model using Sequelize to communicate with a database to add users and stores user information such as username, password, etc .. in the database. the users directory corresponds to this service.
  • The third and fourth services are a mysql database to store user information and a mongodb database to store chat messages. The data models of the databases are in models directory, named Chat and Message modules.
  • I used HTML/CSS and Bootstrap to make minimal UI.
  • Finally, I deployed ChatApp using Google Kubernetes Engine(GKE) with 4 pods running corresponding to the 4 microservices. I containerized the 4 microservices using docker and uses those containers to create the pods. The yaml files for the containers are in the GKE_Yaml directory. Below are the screenshots of the running pods in the GKE and also cluster services.

Screen Shot 2022-07-06 at 3 16 15 PM

Screen Shot 2022-07-06 at 3 16 42 PM

Authors

  • Bereket Assefa

GitHub

View Github