A real-time chat application where users can join a single chat room by providing a unique username, send and recieve messages instantly and interact using emojis.
Users can join the chat room by entering a username and once in, users can send messages, see a live of online users, use emojis to express themselves, etc. The app broadcasts when users join or leave the chat, indicates when someone is typing and ensures users cannot join with a username already taken providing an interactive and user-friendly experience.
- All users are part of the same chat room.
- Users must enter a username that isn't already taken.
- Displays the number of online users.
- Whenever a user joins/leaves, everyone in the chat is notified.
- Each message includes a timestamp.
- Indicates when someone is typing.
- Users can user emojis to have fun.
Backend:
- Spring Boot (Java)
- WebSockets for real-time communication with STOMP
Frontend:
- Thymeleaf for html
- CSS and Javascript for client side activity (e.g. handling messages, typing indicators, etc).