Demo Link: Chat App Demo
This repository contains a chat application built using React, Socket.io, Express, MongoDB, Redux, TANStack, and Cloudinary. This application provides real-time chat functionality with features like typing status and online status. It's designed to be a modern, efficient, and scalable solution for building chat applications.
The chat app comes with the following features:
- Real-time Chat: Users can send and receive messages in real-time.
- Typing Status: Users can see when someone is typing a message.
- Online Status: Users can see the online status of other users.
- User Authentication: Users can create accounts and log in securely.
- Message History: Chat history is stored in a MongoDB database for easy retrieval.
- Profile Photo Upload: Users can upload and display profile photos using Cloudinary.
- Responsive UI: The user interface is designed to be responsive and user-friendly.
- State Management: Uses Redux for managing UI state and TANStack Query for remote state management.
- Scalable: Built with scalability in mind to handle a growing number of users.
To use the chat application, follow these steps:
- Register for an account or log in if you already have one.
- Upload your profile photo using Cloudinary.
- Start a chat with other users.
- Send messages in real-time, see typing status, and online status.
- Explore the responsive and user-friendly interface.
- React: A JavaScript library for building user interfaces.
- Socket.io: A library for real-time, bidirectional communication.
- Express: A fast, unopinionated, and minimalist web framework for Node.js.
- MongoDB: A NoSQL database for storing chat history.
- Redux: A state management library for UI state.
- TANStack Query: A client-side data-fetching and state management library for managing remote state.
- Cloudinary: A cloud-based image and video management service for handling profile photo uploads.