Skip to content

ParasParashar/Progressive-Chat-App-frontend

Repository files navigation

🚀 Scalable and High-Performance Chat Application

Hey Guys!

This is the best project in terms of scalability and performance, built to handle real-time messaging with efficiency and robustness. Whether you're chatting one-on-one or in groups, this app ensures fast delivery and seamless communication.

🌟 Key Features

  • Real-Time Messaging: Instant delivery of messages, even under high load.
  • Scalability: Designed to scale horizontally with ease, handling thousands of concurrent users.
  • High Throughput: Optimized for high message throughput using Kafka.
  • Reliability: Ensures message delivery and integrity with robust error handling and retry mechanisms.
  • Group Messaging: Supports group chats with all the same performance guarantees as one-to-one messaging.
  • Seen Message Status: Real-time updates of message status (seen/unseen) for better user experience.

🛠 Tech Stack

  • Node.js & Express.js: Server-side framework for building a fast, scalable backend.
  • Prisma ORM: Simplifies database management and queries, providing a type-safe interface to the database.
  • PostgreSQL: Reliable and powerful relational database for storing user data, messages, and conversations.
  • Kafka: Distributed streaming platform used for high-throughput, real-time data pipelines and messaging.
  • Redis: In-memory data structure store used for caching and real-time message notifications via Pub/Sub.
  • Socket.IO: Enables real-time, bidirectional communication between web clients and servers.
  • Zustand: State management library for React to handle global states, particularly for managing the video call state.
  • React & Vite: Frontend framework and tooling for building a fast, interactive user interface.
  • React-query : Data fetching library use in react vite for interacting with the backend.
  • WebRTC: Handles peer-to-peer video calling functionality.

🚀 Why This Stack?

  • Node.js & Express.js: Chosen for its non-blocking, event-driven architecture, ideal for real-time applications.
  • Prisma ORM: Provides a high level of abstraction, type safety, and easy database migration management, making it perfect for complex relational data models.
  • PostgreSQL: Known for its reliability, PostgreSQL ensures data integrity and supports complex queries needed for messaging systems.
  • Kafka: Used for its ability to handle large streams of data with low latency, making it the backbone of the messaging pipeline.
  • Redis: Employed for its speed and simplicity, Redis is perfect for caching and Pub/Sub scenarios, ensuring real-time updates and notifications.
  • Socket.IO: Offers real-time communication capabilities, essential for live messaging and notification systems.
  • React & Vite: Ensures a fast, responsive, and interactive user interface with modern frontend development practices.
  • WebRTC: Facilitates peer-to-peer video calls, adding a layer of interactivity to the chat application.
  • React-query: It helps in manage state and fetch data in this. It can automatically refetch data and update the UI, so users always have access to latest information.
  • Zustand: Simplifies state management in complex applications like video calls, keeping the frontend responsive and efficient.

Visit the app: Open your browser and go to https://progressive-chat-app-frontend.vercel.app/.

Releases

No releases published

Packages

No packages published