A full-featured video conferencing application built with the MERN stack (MongoDB, Express.js, React.js, Node.js).
- ✨ HD Video & Audio Communication
- 🖥️ Screen Sharing
- 💬 Real-time Chat
- 🎨 Virtual Backgrounds
- 📝 Interactive Whiteboard
- 🎥 Meeting Recording
- 🔒 Password Protection & Waiting Rooms
- 📱 Cross-Platform Support
- 🌐 WebRTC Peer-to-Peer
Frontend: React 18, TypeScript, Tailwind CSS, Socket.io Client, WebRTC
Backend: Node.js, Express.js, MongoDB, Socket.io
Real-time: Socket.io for signaling and chat
- Node.js (v16+)
- MongoDB (v5+)
- npm or yarn
- Clone and Install
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ..
npm install- Configure Environment
Create server/.env:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/zoomify
NODE_ENV=development
CORS_ORIGIN=http://localhost:5173Create .env:
VITE_API_URL=http://localhost:5000/api- Start MongoDB
# Windows
net start MongoDB
# Mac
brew services start mongodb-community
# Linux
sudo systemctl start mongod- Run the Application
Terminal 1 - Backend:
cd server
npm run devTerminal 2 - Frontend:
npm run devZoomify/
├── server/ # Backend (Express + MongoDB)
│ ├── config/ # Database configuration
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ └── server.js # Main server file
├── src/ # Frontend (React + TypeScript)
│ ├── components/ # React components
│ ├── lib/ # Utilities (API, Socket, WebRTC)
│ └── App.tsx
└── public/ # Static assets
GET /api/meetings- Get all active meetingsPOST /api/meetings- Create meetingGET /api/meetings/code/:code- Get meeting by codePATCH /api/meetings/:id/end- End meeting
GET /api/participants/meeting/:meetingId- Get participantsPOST /api/participants- Join meetingPATCH /api/participants/:id- Update status
GET /api/chat/meeting/:meetingId- Get messagesPOST /api/chat- Send message
Anonymous Users (IP-based): 1 active meeting
Future - Authenticated Users:
- Free: 3 active meetings
- Pro: 10 active meetings
- Business: Unlimited
- Enter your name and meeting title
- (Optional) Set password and enable waiting room
- Click "Create Meeting"
- Share the meeting code
- Enter your name
- Enter the meeting code
- Enter password if required
- Click "Join Meeting"
# Backend development
cd server
npm run dev
# Frontend development
npm run dev
# Production build
npm run buildMongoDB Connection Issues:
- Ensure MongoDB is running
- Check
MONGODB_URIin.env
WebRTC Issues:
- Use HTTPS in production
- Check camera/microphone permissions
- Verify firewall settings
Socket.io Connection Issues:
- Check CORS settings
- Verify
VITE_API_URLin.env
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License
For support, please open an issue in the repository.