A comprehensive real-time chat and collaboration platform built with React, Node.js, and WebRTC technology.
- Real-time Messaging: Instant message delivery using Socket.IO
- Direct & Group Chats: Create private conversations or group discussions
- File Sharing: Upload and share files with drag-and-drop support
- Message Reactions: React to messages with emojis
- Message Editing & Deletion: Modify or remove your messages
- Read Receipts: See when messages are read by recipients
- Typing Indicators: Real-time typing notifications
- Message Search: Search through conversation history
- Link Preview: Automatic link metadata extraction
- WebRTC Integration: High-quality peer-to-peer communication
- Video Calls: Face-to-face video conversations
- Audio Calls: Voice-only communication
- Screen Sharing: Share your screen during calls
- Call Controls: Mute, camera toggle, and call management
- Call History: Track all call activities with timestamps
- Call Recording: Automatic call logging and statistics
- User Authentication: Secure login and registration system
- Role-based Access: Manager and Employee roles with different permissions
- User Profiles: Customizable profiles with avatars
- Online Status: Real-time user presence indicators
- User Search: Find and connect with team members
- Pending User Approval: Manager approval system for new registrations
- Task Creation: Create and assign tasks to team members
- Task Tracking: Monitor task progress and completion
- Task Comments: Collaborative task discussions
- Task Categories: Organize tasks by priority and type
- Calendar Integration: View tasks in calendar format
- Task Notifications: Real-time task updates
- Team Creation: Create and manage project teams
- Team Members: Add and remove team members
- Team Roles: Assign different roles within teams
- Team Collaboration: Shared workspaces for teams
- Team Analytics: Track team performance and activity
- Comprehensive Logging: Track all system activities
- User Actions: Monitor login, role changes, and user management
- Chat Activities: Log message creation, editing, and deletion
- Call Records: Track call history and statistics
- Advanced Filtering: Filter logs by action type, date, and user
- Search Functionality: Search through audit logs
- Export Options: Export logs in CSV, JSON, and PDF formats
- Real-time Statistics: View activity statistics and trends
- Scroll Navigation: Easy navigation through large log datasets
- User Oversight: Monitor all user activities
- System Statistics: View comprehensive system analytics
- Content Moderation: Review and manage chat content
- Broadcast Messages: Send announcements to all users
- System Health: Monitor application performance
- JWT Authentication: Secure token-based authentication
- Role-based Permissions: Granular access control
- Data Encryption: Secure data transmission
- Session Management: Automatic session handling
- Input Validation: Comprehensive input sanitization
- React 18: Modern UI framework
- TypeScript: Type-safe development
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Socket.IO Client: Real-time communication
- WebRTC: Peer-to-peer video/audio calls
- React Hot Toast: User notifications
- Date-fns: Date manipulation utilities
- Lucide React: Beautiful icons
- Node.js: JavaScript runtime
- Express.js: Web application framework
- Socket.IO: Real-time bidirectional communication
- MongoDB: NoSQL database
- Mongoose: MongoDB object modeling
- JWT: JSON Web Token authentication
- Multer: File upload handling
- Cors: Cross-origin resource sharing
- Helmet: Security middleware
- Simple Peer: WebRTC peer connection management
- WebRTC Adapter: Browser compatibility layer
- Node.js (v16 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd iib-chat
-
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the root directory:MONGODB_URI=mongodb://localhost:27017/iib-chat JWT_SECRET=your-secret-key PORT=3000
-
Start the application
# Start both frontend and backend npm run dev # Or start them separately npm run server # Backend only npm run client # Frontend only
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Register/Login: Create an account or login with existing credentials
- Create Admin: Use the admin creation feature for first-time setup
- Join Chats: Start conversations with team members
- Make Calls: Initiate video or audio calls
- Manage Tasks: Create and assign tasks to team members
- User Management: Approve new user registrations
- Audit Logs: Monitor system activities and user actions
- Content Oversight: Review chat content and user interactions
- System Analytics: View comprehensive system statistics
- Broadcast Messages: Send announcements to all users
- Chat Participation: Join conversations and share files
- Task Management: Create and track personal and team tasks
- Call Features: Use video/audio calls for communication
- Profile Management: Update personal information and settings
The application uses MongoDB for data storage. Ensure MongoDB is running and accessible.
File uploads are configured to support various formats with size limits. Configure in server/middleware/upload.js.
WebRTC settings can be modified in the frontend configuration for optimal performance.
| Feature | Description | Access Level |
|---|---|---|
| Real-time Chat | Instant messaging with typing indicators | All Users |
| Video/Audio Calls | WebRTC-based communication | All Users |
| File Sharing | Drag-and-drop file uploads | All Users |
| Task Management | Create, assign, and track tasks | All Users |
| Team Management | Create and manage teams | Managers |
| Audit Logs | Comprehensive activity tracking | Managers |
| User Management | Approve and manage users | Managers |
| Call History | Track call activities | All Users |
npm run buildNODE_ENV=production
MONGODB_URI=your-production-mongodb-uri
JWT_SECRET=your-production-secret
PORT=3000docker build -t iib-chat .
docker run -p 3000:3000 iib-chat- JWT Token Management: Secure token storage and rotation
- Input Validation: Comprehensive input sanitization
- CORS Configuration: Proper cross-origin settings
- File Upload Security: File type and size validation
- WebRTC Security: Secure peer connections
- Vite Build Tool: Fast development and optimized builds
- Code Splitting: Lazy loading for better performance
- Image Optimization: Compressed file uploads
- Database Indexing: Optimized MongoDB queries
- Caching: Efficient data caching strategies
-
WebRTC Connection Issues
- Check firewall settings
- Ensure HTTPS in production
- Verify STUN/TURN server configuration
-
Socket.IO Connection Problems
- Check server status
- Verify CORS settings
- Check network connectivity
-
File Upload Issues
- Verify file size limits
- Check file type restrictions
- Ensure proper permissions
Enable debug logging by setting DEBUG=true in environment variables.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
- Initial release with core chat features
- WebRTC video/audio calls
- Task management system
- User authentication and roles
- Audit log system
- Admin panel with comprehensive oversight
- File sharing capabilities
- Real-time notifications
Built with β€οΈ for IIB Team Collaboration