https://github.com/uddipta7/pingchat-realtime
โก PingChat is a full-stack real-time 1:1 chat app built with React, Node.js, Socket.io, and MongoDB. It features live messaging, typing indicators, JWT auth, Cloudinary uploads, and a clean responsive UI with Tailwind CSS.
https://github.com/uddipta7/pingchat-realtime
chat-app jwt-auth mern-stack react real-time socket-io
Last synced: about 2 months ago
JSON representation
โก PingChat is a full-stack real-time 1:1 chat app built with React, Node.js, Socket.io, and MongoDB. It features live messaging, typing indicators, JWT auth, Cloudinary uploads, and a clean responsive UI with Tailwind CSS.
- Host: GitHub
- URL: https://github.com/uddipta7/pingchat-realtime
- Owner: Uddipta7
- Created: 2025-06-24T06:00:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-24T06:17:00.000Z (about 1 year ago)
- Last Synced: 2025-07-30T01:37:35.948Z (11 months ago)
- Topics: chat-app, jwt-auth, mern-stack, react, real-time, socket-io
- Language: JavaScript
- Homepage:
- Size: 6.51 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ฌ PingChat โ Real-Time Messaging Redefined
**PingChat** is a lightning-fast, full-stack real-time chat application built with the power of **Socket.io** and the modern MERN stack. Whether you're chatting with friends or building the next-gen messenger, PingChat brings you the tools and experience you need โ secure, scalable, and stylish.
---
## โก Features at a Glance
โ
1:1 **Real-Time Messaging** with Socket.io
๐ **User Authentication** using JWT
๐ง **Redux Toolkit** for seamless state management
๐๏ธ **MongoDB + Mongoose** for user & chat persistence
๐ผ๏ธ **Cloudinary Image Uploads** for profile pictures and media
โ๏ธ **Live Typing Indicators**
๐ข **Online/Offline Status**
๐ฑ **Fully Responsive Design** โ Mobile + Desktop ready
๐จ Built with sleek **Tailwind CSS** styling
---
## ๐งฐ Tech Stack
**Frontend:**
- React.js
- Redux Toolkit
- Axios
- Tailwind CSS
**Backend:**
- Node.js
- Express.js
- MongoDB with Mongoose
- Socket.io
- JSON Web Tokens (JWT)
- Cloudinary API
---
## ๐ Getting Started
### ๐งพ Prerequisites
- Node.js (v14+)
- MongoDB (local or Atlas)
- A Cloudinary account
---
### ๐ง Installation
#### 1. Clone the repository:
```bash
git clone https://github.com/your-username/pingchat-app.git
cd pingchat-app
```
#### 2. Backend Setup
```bash
cd backend
npm install
```
Create a .env file in /backend with the following:
```env
PORT=5000
MONGO_URI=your_mongodb_connection_uri
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
```
Start the backend server:
```bash
npm run dev
```
#### 3. Frontend Setup
```bash
cd ../frontend
npm install
npm start
```
### ๐ Project Structure
```php
pingchat-app/
โโโ backend/ # Node.js + Express backend
โ โโโ config/ # DB and cloudinary config
โ โโโ controllers/ # Route handler logic
โ โโโ middlewares/ # Auth, error handling, etc.
โ โโโ models/ # Mongoose schemas (User, Chat, Message)
โ โโโ public/ # Static assets if any
โ โโโ routes/ # API endpoints (user, chat, message)
โ โโโ socket/ # Socket.io real-time logic
โ โโโ .env # Environment variables
โ โโโ index.js # Entry point of the backend
โ โโโ package.json # Backend dependencies
โ
โโโ frontend/ # React + Vite + Redux frontend
โ โโโ public/ # Static files
โ โโโ src/
โ โ โโโ assets/ # Icons, images, etc.
โ โ โโโ components/ # Reusable UI components
โ โ โโโ context/ # React context providers
โ โ โโโ customHooks/ # Custom reusable hooks
โ โ โโโ pages/ # Main pages (Chat, Login, Signup, etc.)
โ โ โโโ redux/ # Redux slices and store setup
โ โ โโโ App.jsx # Root component
โ โ โโโ index.css # Global styles
โ โ โโโ main.jsx # React app entry point
โ โโโ tailwind.config.js # TailwindCSS config
โ โโโ vite.config.js # Vite bundler config
โ โโโ package.json # Frontend dependencies
โ
โโโ .gitignore
```
### ๐ Security & Performance
- JWT-based route protection for authenticated endpoints
- Efficient socket connection management
- Cloudinary for secure and scalable image storage
### ๐ License
This project is licensed under the MIT License โ feel free to use, modify, and share!