Real-Time Chat Application
Overview
I developed a real-time chat application that allows users to communicate seamlessly through both public and private chats. This project leverages WebSocket technology to provide instant message delivery and a smooth user experience. It features a modern, responsive UI and a well-structured backend powered by Java and Spring Boot.
Features
🔹 Public and Private Chat
Users can join a public chat where everyone can send and receive messages in real time. Additionally, they can initiate private conversations with specific users, ensuring personal and confidential communication.
🔹 Real-Time Messaging
Thanks to WebSocket and STOMP (Simple Text Oriented Messaging Protocol), messages are delivered instantly without requiring page reloads. This ensures a dynamic and engaging chatting experience.
🔹 Online Users List
A live list of online users is displayed, making it easy to see who is currently active in the chat. This updates dynamically as users join or leave the application.
🔹 Unread Message Counters
To enhance user experience, unread message counters are implemented. If a user receives a private message while offline or inactive, they can easily see how many messages they missed.
🔹 Auto-Scrolling and Smooth UI
The chat window automatically scrolls to the latest messages, ensuring users don’t have to manually scroll down to see new conversations. The UI is built with a responsive design, making it accessible on both desktop and mobile devices.
Technologies Used
Frontend: HTML, CSS, JavaScript (for dynamic UI updates)
Backend: Java with Spring Boot
Real-Time Communication: WebSocket & STOMP, ActiveMQ as Broker.
What I Learned
Working on this project significantly improved my skills in various areas:
WebSocket & STOMP: I deepened my understanding of real-time communication protocols and how to integrate them into a Spring Boot application.
Java & Spring Boot: Strengthened my backend development skills, focusing on efficient request handling and scalability.
Frontend Development: Gained more experience with creating responsive and interactive UI elements using JavaScript and CSS.
State Management: Implemented mechanisms for tracking user activity, unread messages, and real-time updates efficiently.
Conclusion
This project was an exciting challenge that allowed me to bring together multiple technologies to create a fully functional real-time chat application. It showcases my ability to work with both frontend and backend development, ensuring a smooth and engaging user experience. I am proud of the final result and excited to continue improving and expanding my skills further!



