MingleMate is a real-time chat application built with React.js, Tailwind CSS, DaisyUI, Node.js, Express, MongoDB, and Socket.IO. It allows users to connect, chat, and share moments seamlessly.
- Real-time messaging with Socket.IO.
- User authentication and authorization.
- Responsive and modern UI with Tailwind CSS and DaisyUI.
- Persistent chat history with MongoDB.
- Online/offline user status.
- Typing indicators and read receipts.
- Secure password encryption using bcrypt.
- RESTful APIs built with Express.
- Cloud-based image uploads with Cloudinary.
Frontend:
- React.js
- Tailwind CSS
- DaisyUI
Backend:
- Node.js
- Express.js
- Socket.IO
Database:
- MongoDB
Authentication:
- JWT (JSON Web Tokens)
- bcrypt
Cloud Storage:
- Cloudinary
CHAT-APP/
├── backend/ # Express backend
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── index.js # Entry point for backend
│ ├── .env # Environment variables
├── frontend/ # React frontend
│ ├── src/
│ ├── components/
│ ├── lib/
│ ├── pages/
│ ├── store/
│ ├── utils/
│ ├── App.jsx
│ ├── index.css
│ ├── index.js
│ ├── public/
│ ├── dist/
├── .gitignore
├── package.json
├── package-lock.json
├── README.md
└── MingleMate2.svg # App logo
-
Clone the repository:
git clone https://github.com/VijayMakkad/Chat-App.git cd Chat-App -
Install dependencies:
npm install
-
Set up environment variables:
Create a
.envfile in thebackenddirectory and add the following:MONGODB_URI="your URI" JWT_SECRET=mysecretkey CLOUDINARY_CLOUD_NAME="name of cloud" CLOUDINARY_API_KEY="YOUR KEY" CLOUDINARY_API_SECRET="YOUR API SECRET" NODE_ENV=development PORT=5001
-
Start the backend server:
cd backend npm start -
Start the frontend:
cd frontend npm start -
Visit the app:
http://localhost:3000
- POST
/api/auth/register- Register a new user. - POST
/api/auth/login- Authenticate user and return token.
- GET
/api/messages/:chatId- Get messages for a specific chat. - POST
/api/messages- Send a new message.
npm run server- Start backend server.npm run client- Start frontend React app.npm run dev- Start both client and server concurrently.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name. - Commit your changes:
git commit -m 'Add your message'. - Push to the branch:
git push origin feature/your-feature-name. - Create a pull request.
This project is licensed under the MIT License.
For any inquiries, reach out at vijaymakkad0104@gmail.com.



