Chat Mingle is a MERN stack web application that serves as a WhatsApp clone, allowing users to register, log in, and communicate in real-time. It features a dynamic authentication page, a contact list with real-time updates, a messaging container, and various other functionalities.
- Demo username: aman
- Demo password: 1234
- Features
- Pages
- Technologies Used
- Server Setup
- Client Setup
- Implemented real-time data communication using socket.io-client.
- User online/offline status updates.
- Dynamic authentication page with user registration, login, and password reset facilities.
- Displays a list of contacts/users.
- Shows the most recent message under each contact name.
- Refreshes contact list on new messages.
- Users can update their credentials through a profile modal.
- Profile image upload during registration or later from the profile modal.
- Individual user conversations in a message container.
- Message timestamps using the moment package.
- Emoji Picker for selecting and sending emojis.
- Users can search for other users in the contact list.
- Utilizes react-hot-toast to notify users about important notifications.
- React-Redux and Redux Toolkit for efficient state management.
- Uses react-icons for a consistent set of icons across the application.
- Dynamic page with user registration, login, and password reset functionalities.
- Contact list, showing online/offline status.
- Message container for individual conversations.
- User Menu Modal.
- Profile Modal.
- React for the user interface.
- Redux and Redux Toolkit for state management.
- Socket.io-client for real-time communication.
- react-icons for iconography.
- react-hot-toast for notifications.
- Express.js for the server.
- Socket.io for real-time message transfer/communication.
- Bcrypt.js for password hashing.
- CORS for production and deployment environment setup.
- Clone the repository
git clone https://github.com/b0n21en5/ChatMingle.git
- Navigate to the server directory
cd server
- Install server dependencies
npm install
- Configure environment variables
- Run the server.
npm run server
- Navigate to the client directory
cd client
- Install frontend dependencies
npm install
- Run the client
npm run dev
- Access the application at http://localhost:5173