1-1 instant messaging project designed to demonstrate WebSockets in a load-balanced environment. Users can register, login/logout, see a friendslist, private message all in realtime. WebSocket usages include user presence monitoring, notifications, and chat messages.
- Backend: Kotlin with Spring Boot
- Frontend: Angular 8
- Message Broker: RabbitMQ (PubSub pattern for multi-server messaging)
- Database: MongoDB
- ORM: Spring Data
- WebSocket messaging protocol: Stomp
- WebSocket handler: Sock.js (with cross-browser fallbacks)
- Security: Spring Security
- Spring Controllers couple REST as well as WebSocket traffic
- Solid Design Principals.
- OAUTH2 with Google and Facebook. Users can also register via email.
- Multiple color themes available.
- Private Friends list with blocking unwanted users.
- Messages are persisted. Pwa is available provide desktop application features.
- Offline message support and sync when user is online.
- Easy add new friends via email. Like WhatsApp add via Phone number.
- Chat support Images, Audio, Video, Gif's, Map Location. Multiple files with drop in feature.
If you have any questions, feel free to ask me:
- Mail: deepanshut041@gmail.com
- Github: https://github.com/data-breach/MlAgents
- Website: https://data-breach.github.io/MlAgents
- Twitter: @deepanshut041
Don't forget to follow me on twitter, github and Medium to be alerted of the new articles that I publish