https://github.com/asirwad/chatgram-nextjs-express-socketio
This project aims to create a clone of the Telegram messaging application using Next.js 13 and Express. It provides a web-based interface for users to send and receive messages and interact with the Telegram.
https://github.com/asirwad/chatgram-nextjs-express-socketio
express-api livekit-sdk mongodb nextjs nodejs socket-io zustand
Last synced: 3 months ago
JSON representation
This project aims to create a clone of the Telegram messaging application using Next.js 13 and Express. It provides a web-based interface for users to send and receive messages and interact with the Telegram.
- Host: GitHub
- URL: https://github.com/asirwad/chatgram-nextjs-express-socketio
- Owner: Asirwad
- Created: 2025-02-05T06:25:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-07T13:19:35.000Z (over 1 year ago)
- Last Synced: 2025-04-03T08:44:51.262Z (about 1 year ago)
- Topics: express-api, livekit-sdk, mongodb, nextjs, nodejs, socket-io, zustand
- Language: TypeScript
- Homepage:
- Size: 3.73 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chatgram: Telegram Clone





A full-stack Telegram clone featuring real-time messaging and video calling capabilities.

## âĻ Features
### Core Functionality
| Category | Features |
|-----------------------|--------------------------------------------------------------------------|
| **Authentication** | JWT-based registration & login, Session persistence |
| **Real-Time Chat** | WebSocket messaging, Message history, Typing indicators |
| **Multimedia** | Video calling (WebRTC), File attachments, Emoji support |
| **UI/UX** | Responsive design, Dark/Light themes, Message animations |
## ð API Documentation
### Participant Token Generation
**Endpoint**
`GET /api/get-participant-token`
**Request Parameters**
```json
{
"userId": "string",
"roomId": "string"
}
```
**Response**
```json
{
"token": "eyJhbGci...",
"expiresAt": "2025-02-07T18:30:00Z"
}
```
## ð ïļ Tech Stack
| Category | Technologies |
|-----------|------------------------------------------------------------------------------|
| **Frontend** | Next.js 13, TypeScript, Tailwind CSS, Zustand, React-Query, shadcn/ui |
| **Backend** | Node.js, Express, Socket.IO, MongoDB, Redis, JWT |
| **DevOps** | Docker, GitHub Actions, ESLint, Prettier |
## ðĶ Installation
### âïļ Server
```bash
# Clone repository
git clone https://github.com/Asirwad/ChatGram-NextJS-Express-SocketIO.git
cd ChatGram-NextJS-Express-SocketIO/server
# Install dependencies
npm install
# Configure environment
cp client/.env.example client/.env.local
cp server/.env.example server/.env
# Start development
npm run dev
```
### ðŠķ Client
```bash
cd ChatGram-NextJS-Express-SocketIO/client
# Install dependencies
npm install
# Start development
npm run dev
```
## ð Environment Variables
| Variable | Description | Example |
|-------------------------|-------------------------------------|----------------------|
| `NEXT_PUBLIC_API_URL` | Backend API base URL | http://localhost:3001 |
| `MONGODB_URI` | MongoDB connection string | mongodb://localhost:27017 |
| `JWT_SECRET` | JWT signing key | super_secret_key_123 |
## ð Project Structure
```
ChatGram-NextJS-Express-SocketIO/
âââ client/ # Next.js frontend
â âââ src/app/ # App router
â âââ src/components # UI components
âââ server/ # Express backend
âââ models/ # MongoDB models
âââ routes/ # API endpoints
```