Building a Chat Application: Step-by-Step Guide — Features & Tech Stack — Part1
Learn how to build a real-time chat application from scratch. This step-by-step guide covers all the key features of a chat app with working code exam

As a software engineer, I have a strong passion for creating innovative and efficient solutions through code. I am a quick learner and always eager to expand my skills and knowledge. I enjoy working in a team environment. I am able to explain technical concepts to non-technical team members in a clear and understandable manner.
Application Requirements
I was building a chat application for one of my clients. The app had basic functionalities that every chat application does, such as
one-to-one person chat
typing indicators
file uploads
read receipts
unread message count
the ability to delete messages
Challenges I faced
However, when I was implementing it, it was difficult for me to figure out how to model the database. For example, if a user is chatting with another person, should the message be added to both users’ records?
I struggled to find good resources online that explained how to model the database and implement the features in a chat application. That’s why I decided to write about my experience and how I solved the issues. My solution may not be perfect, but it solved my client’s issues and met their requirements.
Features I’ll cover in the Series
I am creating a full series where I will explain the code, including working examples and source code. The features I will be covering include
one-to-one person chat
typing indicators
file uploads
read receipts
unread message count
delete messages
audio call
video call
Technology I’ve Picked
I will be using the following technologies
NodeJs
MongoDB
ExpressJs
Socket.io
Jest
TypeScript
Docker
React
I hope you find it helpful. And stay tuned.
If you have any questions please do let me know in the comment section. If you want to support me, buy me a coffee here. Thanks for your time and support. Happy Coding.


