A full-stack AI-powered real-time communication platform built with the MERN stack + Socket.io.
Modern teams face communication overload: long chat threads, missed urgent messages, no insight into communication habits. ICEP solves this by adding AI-powered summarization, smart replies, priority detection, and a communication analytics dashboard on top of a real-time chat platform.
| Layer | Technology |
|---|---|
| Frontend | React 18, Tailwind CSS, Vite |
| Backend | Node.js, Express.js |
| Database | MongoDB (Mongoose) |
| Real-time | Socket.io |
| Auth | JWT |
| File Upload | Multer |
| AI | OpenAI GPT-3.5 Turbo |
| Charts | Chart.js / react-chartjs-2 |
- User Authentication — Register / Login with JWT tokens
- Real-time One-to-One Chat — Instant messaging via Socket.io
- Group Chat — Create named groups with multiple participants
- File Sharing — Upload and share images, PDFs, and Word docs
- AI Chat Summarization — Summarize long conversations with OpenAI
- Smart Reply Suggestions — AI-generated quick reply buttons
- Priority Message Detection — Auto-flag urgent messages (keywords: urgent, deadline, important, asap, critical, emergency)
- Communication Analytics Dashboard — Charts for response time, messages sent, efficiency score, leaderboard
- Notifications System — In-app notifications for new messages
- Message Search — Search within a conversation
- Communication Efficiency Score = (Replied Messages / Total Messages Received) × 100
- AI-based chat summarization using OpenAI GPT-3.5
- Smart reply suggestions with context-aware responses
- Priority message detection via keyword analysis (no extra API cost)
- Communication analytics dashboard with interactive Chart.js charts
User → React Frontend (Vite + Tailwind)
↓ HTTP (Axios) ↓ WebSocket (Socket.io)
Node.js / Express Backend
↓ ↓
MongoDB (Mongoose) OpenAI API
↓
Analytics Engine → Dashboard
{ userId, name, email, password(hashed), avatar, role, isOnline, lastSeen, createdAt }
{ conversationId, name, isGroup, participants[userId], admin(userId), lastMessage, createdAt }
{ messageId, sender(userId), conversation(conversationId), messageText, fileUrl, fileType, fileName, priority, readBy[], createdAt }
{ notificationId, recipient(userId), sender(userId), type, message, conversation, readStatus, createdAt }
{ userId, messagesSent, messagesReceived, repliedMessages, totalResponseTimeMs, responseCount, efficiencyScore }
- User → (1:N) → Messages (sender)
- User → (M:N) → Conversations (participants)
- Conversation → (1:N) → Messages
- User → (1:N) → Notifications
- User → (1:1) → Analytics
POST /api/auth/register Register a new user
POST /api/auth/login Login and receive JWT
GET /api/auth/me Get current user (protected)
GET /api/auth/users Get all users (protected)
PUT /api/auth/profile Update profile (protected)
GET /api/conversations List user's conversations
POST /api/conversations Create/get DM conversation
POST /api/conversations/group Create group conversation
GET /api/conversations/:id Get conversation by ID
GET /api/messages/:convId Get messages (supports ?search=)
POST /api/messages Send a message
DELETE /api/messages/:id Delete a message (own only)
POST /api/files/upload Upload file (multipart/form-data)
POST /api/ai/summarize Summarize conversation
POST /api/ai/smart-reply Get smart reply suggestions
GET /api/analytics/me My analytics
GET /api/analytics/all All users analytics (leaderboard)
GET /api/analytics/messages-per-day Daily activity (last 7 days)
GET /api/notifications Get user notifications
PUT /api/notifications/read-all Mark all as read
PUT /api/notifications/:id/read Mark one as read
DELETE /api/notifications/:id Delete notification
root/
├── client/ # React Frontend (Vite)
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── context/ # React context (Auth, Socket, Chat)
│ │ ├── pages/ # Full-page components
│ │ └── main.jsx
│ ├── index.html
│ ├── vite.config.js
│ └── package.json
│
├── server/ # Node.js Backend
│ ├── config/ # DB config
│ ├── controllers/ # Route handlers
│ ├── middleware/ # Auth middleware
│ ├── models/ # Mongoose schemas
│ ├── routes/ # Express routes
│ ├── uploads/ # File storage
│ ├── utils/ # Socket.io logic
│ ├── index.js # Entry point
│ └── package.json
│
├── docs/ # Documentation
├── .env # Environment variables
├── .gitignore
└── README.md
- Node.js v18+
- MongoDB (local or Atlas)
- (Optional) OpenAI API key
git clone https://github.com/yourusername/icep.git
cd icepcp .env.example .env
# Edit .env with your MongoDB URI, JWT secret, OpenAI API keycd server
npm install
npm run dev
# Runs on http://localhost:5000cd client
npm install
npm run dev
# Runs on http://localhost:5173main ← Production-ready, stable
develop ← Integration branch
feature/xxx ← Individual feature branches
fix/xxx ← Bug fix branches
git clone <repo-url>
git checkout -b feature/my-feature develop
# ... make changes ...
git add <files>
git commit -m "feat: add smart reply panel"
git push origin feature/my-feature
# Create Pull Request → develop
# After review → merge → develop
# Release: develop → mainfeat: add new feature
fix: bug fix
docs: documentation changes
style: formatting changes (no logic)
refactor: code refactoring
test: add/update tests
chore: build or config changes
┌──────────────────────────────────┐
│ [ICEP Logo] │
│ Intelligent Communication... │
│ │
│ ┌────────────────────────────┐ │
│ │ Email [__________] │ │
│ │ Password [__________] │ │
│ │ [Sign In Button] │ │
│ │ Don't have account? Sign up│ │
│ └────────────────────────────┘ │
└──────────────────────────────────┘
┌────────────┬──────────────────────────────┐
│ [ICEP] 🔔 │ [Chat Name] 🔍 📄 ⚡ │
│ 🔍 Search │ │
│ │ [AI Summary Panel] │
│ Conv 1 ● │ ─────────────────────────── │
│ Conv 2 │ [Message Bubbles] │
│ Conv 3 │ │
│ Group 1 │ [Smart Reply Chips] │
│ │ ─────────────────────────── │
│ [Analytics│ 📎 [Message Input...] [➤] │
│ [Settings]│ │
│ [Logout] │ │
└────────────┴──────────────────────────────┘
┌─────────────────────────────────────────┐
│ ← Analytics Dashboard │
│ │
│ [Sent: 42] [Efficiency: 78%] [Time: 4s] │
│ │
│ ★ Most Active: John Doe (124 messages) │
│ │
│ [Bar Chart: Daily] [Doughnut: Top 3] │
│ │
│ [Horizontal Bar: Leaderboard] │
│ │
│ [Table: All Users] │
└─────────────────────────────────────────┘
- Communication Efficiency Score — A novel metric calculated as
(Replied / Received) × 100, giving users actionable insight into their responsiveness. - AI Summarization — Long conversation threads can be summarized in seconds using OpenAI, reducing information overload.
- Contextual Smart Replies — AI-generated replies based on conversation context, not just simple canned responses.
- Auto Priority Detection — Messages containing keywords like urgent, deadline, ASAP are automatically flagged with a priority badge — no manual tagging needed.
- Integrated Analytics — Unlike standalone chat apps, ICEP measures and displays communication performance metrics in real time.
- Voice messages
- Email/push notifications
- AI-powered meeting scheduling assistant
- Multi-language support
- Dark mode
- Message reactions / emoji
- Read receipts per user in groups