Note: PingNest is a fun, themeable, and emotion-aware chat platform built using the MERN stack. It is designed for expressive, real-time conversations with customization, emoji-style tones, and image support.
A dynamic & responsive, emotion-driven real-time chat app with theme customization and photo support.
- β Emotion-Based Messaging: Choose the tone of your message from a dropdown. Each tone changes the message color β making chats more expressive.
- β Theme Customization: Choose from multiple chat UI themes using DaisyUI.
- β Real-Time Messaging: Messages appear instantly using Socket.IO.
- β Chronological Ordering: Messages are sorted from newest to oldest.
- β Online Status Viewer: See whoβs currently active in real-time.
- β Image Upload with Cloudinary: Upload and share photos directly in chat.
| Technology | Description |
|---|---|
| MongoDB | NoSQL Database |
| Express.js | Backend Framework |
| React.js | Frontend Library |
| Node.js | Runtime Environment |
| Socket.IO | Real-Time Communication |
| Cloudinary | Image Hosting & Delivery |
| Tailwind CSS | Utility-first Styling |
| DaisyUI | Theme & Component Library |
| JWT | Secure Authentication |
- Node.js >= 14.x
- MongoDB Atlas or local MongoDB
- Cloudinary account (for image uploads)
git clone https://github.com/blackcat-007/PingNest-fullstack.git
cd PingNest-fullstack
PORT=5000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_secret
npm install
cd client && npm install
cd ..
npm run dev
The backend runs at localhost:5000 and frontend at localhost:3000
- Message tone dropdown with color-coded styling.
- Switch between DaisyUI themes without reloading.
- View who's currently active via sockets.
- Drag and drop or upload images β stored via Cloudinary.
- Newest messages appear first.
- Use
dotenvsecurely - Enable CORS
- Use MongoDB Atlas
- Run
npm run buildfor production build - Use platforms like Vercel/Netlify
- Passwords hashed with
bcrypt - Authentication via
JWT - Image uploads protected with Cloudinary keys in
.env
This project is licensed under the Apache License 2.0.
Β© 2025 Shubho. All rights reserved under the Apache License 2.0.
Made with β€οΈ by Shubho (blackcat-007)
Pull requests are welcome. Fork it, improve it, PR it.









