Ravichandra89/Real-Time-Chat-Application: A scalable and secure chat application built with Node.js, WebSockets, and Redis, supporting one-on-one and group chats, online presence indicators, offline message storage, and push notifications. It uses SQL, Docker, Kubernetes, and geo-location-based server allocation for performance and scalability, with end-to-end encryption for security
This is a scalable and secure real-time chat application built using Node.js, WebSockets, and Redis. It supports one-on-one messaging, group chats, online presence indicators, offline message storage, and push notifications. Designed for performance and reliability, the application ensures seamless communication with geo-location-based server allocation, end-to-end encryption, and fault-tolerant architecture.
- Node.js: Server runtime for handling chat logic and APIs.
- TypeScript: Server Side Language for application.
- WebSockets: Real-time bi-directional communication.
- Redis: Pub/Sub system for managing online users and routing messages.
- PostgreSQL: Database for storing user data, messages, and group details.
- Firebase Cloud Messaging (FCM): Push notifications for offline users.
- JWT: Authentication and authorization.
- WebRTC: For Vedio calling feature.
- Docker: Containerization of backend services.
- Kubernetes: Orchestrating containerized services for scalability.
- NGINX: Load balancer for WebSocket servers.
- End-to-End Encryption (AES): Protects message content.
- HTTPS: Ensures secure API communications.
- User Connection: Users connect to WebSocket servers distributed across geo-locations for optimal performance.
- Message Routing: WebSocket servers use Redis to identify where the recipient is connected and deliver messages in real time.
- Offline Messages: Messages for offline users are stored in MongoDB and delivered when the recipient reconnects.
- Push Notifications: Firebase Cloud Messaging notifies offline users of pending messages.
- Scalability: Kubernetes ensures horizontal scaling, handling increased traffic efficiently.
- Security: All communications are encrypted, and sensitive user data is protected with secure protocols.
This chat application is built to handle real-time communication needs with a focus on scalability, security, and performance. It is ideal for modern applications requiring seamless and reliable chat systems.
Read more here: Source link

