Welcome to ChatVerse, a beautifully designed real-time chat application powered by React and Firebase. With a modern UI and powerful chat features, ChatVerse lets you connect, chat, and share moments with your friends effortlessly.
π Click here to try ChatVerse
- Frontend: React.js
- Styling: CSS
- Backend as a Service: Firebase (Auth & Firestore)
- State Management: Zustand
- Media Uploads: ImgBB for image hosting, Dropbox API for voice note storage
- Media Handling: Custom camera and audio modals
- Scrolling:
react-perfect-scrollbar
- UI Enhancements: Toast notifications, modals, emoji picker
- Deployment: Hosted on Vercel for fast and reliable CI/CD
- Version Control: Git + GitHub
-
Sign Up
- Avatar upload (optional; default avatar applied if not provided)
- Username, Email, and Password fields
- Toast feedback for success or failure (via Firebase Auth)
-
Sign In
- Login using Email and Password
- Welcome message and toast notifications
- Three-panel layout for optimal messaging experience
- Elegant UI with smooth animations
- Perfect Scrollbar for seamless navigation
- Edit profile with updated username, bio, and profile picture
- Search and add new friends by username
- Friend list displays last message preview
- Clear indicators for message type (text, photo, or π attachment)
- Real-time text messaging
- Image sharing from gallery or camera
- Voice notes with recording functionality
- Emoji support using Emoji Picker
- Delete individual messages
- Clear entire chat history
- Shared photos section with collapsible view
- Instant camera integration to take and send photos
- Scrollable shared photo history using Perfect Scrollbar
- Download any shared image
- Block/unblock users with real-time UI updates
- Profile editing with immediate state reflection
- Secure logout functionality
ChatVerse features a clean, three-section layout:
-
User Info Panel
- Shows current user's avatar and username
- βοΈ Edit Profile icon opens modal to change avatar, username, and bio
-
Friend Discovery
- π Search bar to filter friends
- β Add User modal to search and add new friends
- Friend list with avatar, name, and last message:
- Text: displays actual text
- Image: shown as π Attachment
-
Smooth scrolling experience powered by Perfect Scrollbar
-
Top Bar
- Displays friend's avatar, username, and bio
- Clear Chat button removes the conversation history
-
Messages Area
- Supports:
- β Text messages
- β Emojis (via Emoji Picker)
- β Gallery image sharing
- β Camera capture and send
- β Voice notes
- β Timestamps for all messages
- β Delete individual messages
- Supports:
-
Action Bar
- πΌοΈ Image upload icon
- πΈ Open camera modal
- π€ Record and send voice note
- π Insert emojis
- βοΈ Send button to deliver the message
-
Friend Info
- Friend's avatar, name, and bio
-
Shared Photos
- Toggleable gallery showing shared images
- Latest images at the top
- Scrollable with Perfect Scrollbar
- Download buttons for each photo
-
Controls
- Block User button disables messaging for both users
- UI updates input field and disables send button
- Also restricts friend from sending you messages or viewing your avatar
- Unblock User to restore messaging functionality
- Logout to securely sign out and return to login/signup screen
- Block User button disables messaging for both users
src/
βββ components/
β βββ chat/
β β βββ CameraComponent.css
β β βββ CameraComponent.jsx
β β βββ Chat.css
β β βββ Chat.jsx
β β βββ VoiceRecorder.css
β β βββ VoiceRecorder.jsx
β βββ detail/
β β βββ Detail.css
β β βββ Detail.jsx
β βββ list/
β β βββ chatList/
β β β βββ addUser/
β β β β βββ AddUser.css
β β β β βββ AddUser.jsx
β β β βββ ChatList.css
β β β βββ ChatList.jsx
β β βββ userInfo/
β β β βββ Userinfo.css
β β β βββ Userinfo.jsx
β β βββ List.css
β β βββ List.jsx
β βββ login/
β β βββ Login.css
β β βββ Login.jsx
β βββ notification/
β β βββ Notification.jsx
βββ lib/
β βββ chatStore.js
β βββ dropboxUpload.js
β βββ firebase.js
β βββ upload.js
β βββ userStore.js
βββ App.jsx
βββ index.css
βββ main.jsx
- Responsive design for mobile and tablet
- Real-time typing indicators
- Online/offline status indicators
- Group chats and media previews
- Dark mode support
Made with π by MD Abdullah Anwar
Feel free to contribute or reach out!
This project is licensed under the MIT License.