- Chat Verse
Chat Verse
is a robust real-time communication platform built on Express.js
, MongoDB
, and Socket.io
. This versatile application offers both individual and group chat functionalities, featuring multi-method user authentication, real-time messaging, and comprehensive group management tools. Users can create groups, share invitation links, and manage their messages, while enjoying features like user search, profile customization, and online status indicators. Chat Verse prioritizes security with measures such as CSRF protection, CORS, and rate limiting.
Its MVC architecture and modular design ensure scalability, while an integrated Socket.io admin UI aids in real-time connection management. Whether for personal or professional use, Chat Verse provides a secure, feature-rich environment for seamless real-time communication.
- Real-time chat (with Socket.io)
- Send Message
- Receive Message
- Delete Message (For Both)
- Delete Conversation (For Both)
- Block & Unblock user
- Unread message status
- Group Chat Functionality
- Create new group chats
- Send and receive messages in group chats in real-time
- Delete your own messages in group chats
- Join groups via invitation links
- Leave groups (group remains for other members)
- View group member list
- Real-time notifications for private and group chats
- Real-time user online status
- Real-time other user's changed details reflection
- User profile (With exciting avatars)
- User search
- User authentication
- JWT
- Google One Tap SignIn
- CSRF
- XSS
- CORS
- Rate limiting
- Session Management
- Cookie Management
- Cache Control
- Admin UI (Socket.io)
- HTML
- EJS
- TailwindCSS
- JavaScript
- Socket.io Client
- Node.js
- Express.js
- Express Session
- Express Rate Limiting
- Socket.io
- PassportJS
- JWT
- Google OAuth
- Google One Tap SignIn
- CSRF
- CORS
- Helmet
- MongoDB
- Mongoose
- Webpack
- Chat Verse deployed on Glitch
-
Clone the repository
git clone https://github.com/Joy9001/Chat-Verse.git
-
Install dependencies
npm install
-
Create a
.env
file in the root directory and add the following environment variablesPORT=3000 DOMAIN=http://localhost:3000 MONGODB_URI=mongodb://localhost:27017/chat-app (Add a Atlas Cluster URL) NODE_ENV=production SESSION_SECRET=your_session_secret ACCESS_TOKEN_SECRET=your_access_token_secret REFRESH_TOKEN_SECRET=your_refresh_token_secret CRYPTO_SECRET=your_crypto_secret ADMIN_EMAIL=your_email ADMIN_HASHED_PASSWORD=your_hashed_password GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/callback GOOGLE_ONE_TAP_CALLBACK_URL=http://localhost:3000/auth/google/one-tap/callback
-
Start the server
npm start
-
Open the browser and go to
http://localhost:3000
- Register a new account or login using your preferred authentication method
- Explore the user search to find and connect with other users
- Start one-on-one chats or create group conversations
- Join existing groups using invitation links
- Send and receive messages in real-time, with the ability to delete your own messages in group chats
- Manage your group memberships by viewing member lists or leaving groups as needed
- Customize your profile and choose from a variety of avatars
- Stay informed with online status indicators and unread message notifications
- Enjoy secure, real-time communication in both individual and group settings
This project is developed by Joy Mridha.
I'm thrilled to announce the launch of the brand-new Group Chat functionality in Chat Verse! π
π₯ New Real-Time Features:
- π₯ Create Group Chats: Bring your squad together in one place!
- π¬ Group Messaging: Chat with everyone in real-time!
- ποΈ Message Management: Oops? Delete your messages anytime!
- π Join via Link: Hop into new groups with just a click!
- π Leave Groups: Step out anytime, messages intact! Last one out turns off the lights!
- π Group Information: Keep tabs on who's in the crew!
- β‘ Real-Time Updates: See messages pop up as they're sent!
- π Instant Notifications: Stay in the loop with group activities!
- π« Updated UI: A fresh look for a seamless group chat experience!
π΅οΈββοΈ Easter Egg Alert! I've hidden a little surprise for the curious minds out there. Try to chat with yourself and see what happens! Who knows, you might stumble upon some programmer humor. Happy hunting!
β¨ All these features operate in real-time, ensuring that every member of a group chat has the most up-to-date information and can engage in fluid, dynamic conversations.
π These enhancements provide a more robust, responsive, and interactive group chatting experience, allowing for seamless collaboration and communication among multiple users simultaneously.
π How to Get Started:
- To create a new group, look for the
New Group
tab in theAdd User
section. - To join an existing group, use the invitation link provided by a group member.
I'm constantly working to improve Chat Verse and welcome your feedback on these new real-time group chat features! π
Happy Chatting! ππ