An open API service indexing awesome lists of open source software.

https://github.com/sumitti/zappchat

ZappChat is a modern real-time chat website where users can securely sign up, log in, and instantly message each other, share images, and see online statusβ€”all in a fast, responsive interface.
https://github.com/sumitti/zappchat

chat-application express-middleware express-session expressjs jwt-authentication nodejs reactjs render-deployment socket-io

Last synced: 3 months ago
JSON representation

ZappChat is a modern real-time chat website where users can securely sign up, log in, and instantly message each other, share images, and see online statusβ€”all in a fast, responsive interface.

Awesome Lists containing this project

README

          

# ZappChat πŸš€

A modern, full-stack real-time chat application built with React, Express, MongoDB, Socket.IO, and TailwindCSS.

---

## Features

- πŸ”’ **Authentication:** Secure signup, login, and JWT-based session management.
- πŸ’¬ **Real-Time Messaging:** Instant messaging powered by Socket.IO.
- πŸ–ΌοΈ **Image Sharing:** Send and receive images in chat (Cloudinary integration).
- 🟒 **Online Status:** See which users are online in real time.
- πŸ§‘β€πŸ€β€πŸ§‘ **User Sidebar:** Easily select users to chat with.
- 🎨 **Responsive UI:** Beautiful, mobile-friendly design with TailwindCSS and DaisyUI.
- ⚑ **State Management:** Fast and simple state management using Zustand.
- πŸ›‘οΈ **Protected Routes:** Only authenticated users can access chat features.

---

## Live Demo 🌐

πŸ‘‰ [Try ZappChat Live](https://zappchat-1z4w.onrender.com)

---

## Tech Stack βš™οΈ

- **Frontend:** React, Vite, Zustand, TailwindCSS, DaisyUI, Axios, Socket.IO Client
- **Backend:** Express, MongoDB, Mongoose, Socket.IO, Cloudinary, JWT, bcryptjs
- **Deployment:** Render (or any cloud platform)

---

## Getting Started βš’οΈ

### 1. Clone the Repository

```bash
git clone https://github.com/sumitti/ZappChat.git
cd ZappChat
```

### 2. Create .env files

```bash
MONGODB_URI=your_mongodb_uri
PORT=5001
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
NODE_ENV=development
```

### 3. Install Dependencies

```bash
npm install --prefix backend
npm install --prefix frontend
```

### 4. Run the App Locally
#### Start Backend:
```bash
npm run dev --prefix backend
```
#### Start Frontend:
```bash
npm run dev --prefix frontend
```
----

### Folder Structure πŸ—ƒοΈ
```bash
ZappChat/
β”œβ”€β”€ backend/
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ controller/
β”‚ β”‚ β”œβ”€β”€ middleware/
β”‚ β”‚ β”œβ”€β”€ models/
β”‚ β”‚ β”œβ”€β”€ routes/
β”‚ β”‚ β”œβ”€β”€ lib/
β”‚ β”‚ └── index.js
β”‚ β”œβ”€β”€ .env
β”‚ └── [package.json]
β”œβ”€β”€ frontend/
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”œβ”€β”€ store/
β”‚ β”‚ └── App.jsx
β”‚ β”œβ”€β”€ .env
β”‚ └── [package.json]
└── [README.md]
```
---
#### Contributing ✨
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.