Unichat is a powerful, real-time messaging application designed to be a modern alternative to Facebook Messenger. It leverages the capabilities of Firebase, Stream Chat, and React.js to deliver a fast, responsive, and developer-friendly chat experience.
- Secure sign-in and sign-up flows using third-party providers like Google and Facebook.
- User session management and protected route handling with
authState.
- Real-time messaging through Stream services.
- Handling user connections, channels, and messages via Stream Chat SDK.
- Responsive design optimized for all screen sizes.
- React Router for seamless navigation between chat rooms.
- Real-time updates using Firebase Realtime Database or Firestore.
- Syncing chat data, message status, and read receipts.
- Integrated Facebook for Developers to enable login via Facebook using Firebase.
- Firebase's Google authentication is straightforward and reliable, especially as it’s developed by Google.
- Explored alternatives like LiveChat and SendBird.
- Used React hooks such as
useState,useContext,useNavigate, anduseSelectto manage state and routing. - Found Stream Chat developer-friendly and efficient for chat integration.
- 📁 GitHub Repository: View Code
- 🚀 Live Demo (Hosted on Netlify): Launch App (Please clear cookies if needed)
Follow these steps to get the project running locally.
Ensure you have the following installed:
- Git
- Firebase
- Node.js
- npm (Node Package Manager)
git clone https://github.com/SakshamRajpal/Unichat.git
cd Unichatnpm install- Create a .env.local file in the root directory:
# STREAM_CHAT
REACT_APP_STREAM_CHAT_ID=
REACT_APP_STREAM_CHAT_KEY=
REACT_APP_STREAM_CHAT_SECRET=
#FIREBASE
firebase_apiKey=
firebase_authDomain=
firebase_projectId=
firebase_storageBucket=
firebase_messagingSenderId=
firebase_appId=
Replace the placeholders with your actual credentials.
npm run startVisit http://localhost:3000 in your browser.
- Found a bug or want to contribute?
- Feel free to fork the repo, make changes, and open a pull request.
- ⭐ If you like this project, consider giving it a star!
