Real-time Communication Platform with AI Intelligence
RapidChat is a modern, full-featured communication platform combining real-time messaging, AI-powered conversations, and multimedia capabilities. Built with a scalable microservices architecture, it delivers seamless chat experiences with intelligent features.
β¨ Real-Time Messaging - Instant message delivery with Socket.io
π€ AI Integration - Smart AI responses with RAG capabilities
π₯ Video Calls - High-quality peer-to-peer video communication
π± Group Chat - Organize conversations in collaborative groups
ποΈ Voice Features - Speech-to-text and audio message support
β‘ High Performance - Redis caching and optimized queries
π Secure - JWT authentication and encrypted connections
π Document Support - PDF handling and processing
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB
- Cache: Redis
- Real-time: Socket.io
- Media: Cloudinary
- AI/ML: Embeddings & RAG Engine
- Framework: React 19+
- Build Tool: Vite
- State Management: Redux
- Styling: Tailwind CSS
- Media Upload: Multer
- HTTP Client: Axios
- Containerization: Docker
- Orchestration: Docker Compose
- Deployment: Vercel (Frontend)
RapidChat/
βββ backend/ # Node.js Express Server
β βββ src/
β β βββ controllers/ # Request handlers
β β βββ models/ # MongoDB schemas
β β βββ routes/ # API routes
β β βββ middleware/ # Auth, cache, file upload
β β βββ lib/ # Utilities & services
β β β βββ rag/ # RAG pipeline
β β β βββ socket.js # WebSocket config
β β β βββ db.js # Database connection
β β β βββ redisClient.js # Cache layer
β β βββ index.js # App entry point
β βββ Dockerfile # Docker config
β βββ package.json # Dependencies
β
βββ frontend/ # React Vite App
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ redux/ # State management
β β βββ store/ # Custom hooks
β β βββ lib/ # Utilities
β β βββ main.jsx # App entry
β βββ vite.config.js # Vite configuration
β βββ package.json # Dependencies
β
βββ readme.md # This file
- Node.js 18+
- MongoDB (local or Atlas)
- Redis (optional, for caching)
- Docker (optional)
git clone https://github.com/yourusername/RapidChat.git
cd RapidChatcd backend
npm install
# Configure environment variables
cp .env.example .env
# Edit .env with your configuration
npm run devcd frontend
npm install
# Configure environment variables
cp .env.example .env
npm run devcd backend
docker-compose up --buildPORT=5000
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/rapidchat
REDIS_URL=redis://localhost:6379
CLOUDINARY_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
JWT_SECRET=your_jwt_secretVITE_API_URL=http://localhost:5000
VITE_SOCKET_URL=http://localhost:5000- Send and receive messages instantly
- Typing indicators
- Message read receipts
- Media sharing support
- Context-aware responses using RAG
- Document embeddings
- Semantic search
- PDF processing and Q&A
- Create and manage groups
- Role-based permissions
- Group notifications
- Invite system
- Peer-to-peer video calls
- Screen sharing capabilities
- Call history and logs
- Live streaming capabilities
- Stream management
- Real-time broadcast
- Speech-to-text transcription
- Audio message recording
- Voice call support
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/messages/:userId- Fetch messagesPOST /api/messages/send- Send messageGET /api/messages/:messageId- Get message
GET /api/groups- List all groupsPOST /api/groups/create- Create groupPOST /api/groups/:groupId/messages- Send group message
POST /api/ai/chat- AI chat endpointPOST /api/ai/embed- Generate embeddingsPOST /api/ai/search- Semantic search
cd backend
npm test
cd frontend
npm testWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Performance: Enable Redis caching for faster queries
- Scaling: Use Docker Compose for multi-container orchestration
- Development: Hot reload enabled for both backend and frontend
THANK YOU