JoinIn is a powerful, open-source video conferencing platform that brings enterprise-grade meeting capabilities to everyone. Built with modern web technologies, it offers seamless real-time communication without the complexity or cost of traditional solutions.
Most video conferencing solutions are either expensive proprietary software or complex to self-host. Teams need an accessible, privacy-focused platform that they can deploy and customize according to their needs.
JoinIn combines the power of WebRTC for peer-to-peer communication with the reliability of the MERN stack, creating a fast, secure, and scalable video conferencing solution that you can deploy anywhere.
- 100% Open Source: Complete transparency and community-driven development
- Self-Hostable: Deploy on your infrastructure for complete data control
- No Installation Required: Works directly in modern web browsers
- Customizable: Modify and extend to fit your specific needs
- Privacy-First: Your data stays on your servers
|
|
graph TB
subgraph "Client Layer"
A[React.js Frontend] --> B[Context API]
B --> C[WebRTC Client]
end
subgraph "Server Layer"
D[Express.js Server] --> E[REST APIs]
E --> F[Socket.IO Server]
end
subgraph "Signaling"
G[WebRTC Signaling] --> H[Peer Connection]
H --> I[Media Streams]
end
subgraph "Data Layer"
J[MongoDB Atlas] --> K[User Data]
K --> L[Meeting History]
end
A -->|HTTP/WebSocket| D
C -->|Signaling| F
F -->|Events| G
D -->|CRUD Operations| J
style A fill:#61dafb,stroke:#000,stroke-width:2px
style D fill:#68a063,stroke:#000,stroke-width:2px
style G fill:#ff6b6b,stroke:#000,stroke-width:2px
style J fill:#4db33d,stroke:#000,stroke-width:2px
- Node.js 16.x or higher
- npm or yarn package manager
- MongoDB Atlas account (free tier available)
- Git installed on your system
git clone https://github.com/VAMSHIYADAV46/JoinIn.git
cd JoinIn# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment variables file
touch .envConfigure Backend Environment Variables (.env):
# Server Configuration
PORT=5000
NODE_ENV=development
# MongoDB Configuration
MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/joinin
DB_NAME=joinin
# Session Configuration
SESSION_SECRET=your_super_secret_session_key_here
JWT_SECRET=your_jwt_secret_key_here
# CORS Configuration
CLIENT_URL=http://localhost:3000
# Socket.IO Configuration
SOCKET_PORT=5001Start the Backend Server:
# Development mode
npm run dev
# Production mode
npm start# Open new terminal and navigate to frontend
cd ../frontend
# Install dependencies
npm install
# Create environment variables file
touch .envConfigure Frontend Environment Variables (.env):
REACT_APP_API_URL=http://localhost:5000
REACT_APP_SOCKET_URL=http://localhost:5001Start the Frontend Application:
# Start development server
npm start
# Build for production
npm run buildOpen your browser and navigate to:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:5000/api
| Username | Password | Description |
|---|---|---|
demo01 |
12345 |
Demo User 1 |
demo02 |
12345 |
Demo User 2 |
- Sign Up/Login: Create an account or use demo credentials
- Create Meeting: Click "New Meeting" to start a video call
- Share Link: Send the meeting link to participants
- Join Meeting: Participants can join using the link
- Collaborate: Use video, audio, and chat features
-
Create Backend Service on Render:
- Service Type:
Web Service - Build Command:
npm install - Start Command:
npm start - Root Directory:
backend/
- Service Type:
-
Environment Variables:
PORT=5000 MONGO_URI=your_mongodb_atlas_connection_string SESSION_SECRET=your_session_secret JWT_SECRET=your_jwt_secret CLIENT_URL=https://your-frontend.onrender.com -
Deploy:
- Connect GitHub repository
- Select branch:
main - Auto-deploy:
Enabled
-
Create Static Site on Render:
- Build Command:
npm run build - Publish Directory:
build - Root Directory:
frontend/
- Build Command:
-
Environment Variables:
REACT_APP_API_URL=https://your-backend.onrender.com REACT_APP_SOCKET_URL=https://your-backend.onrender.com -
Deploy:
- Connect to same repository
- Auto-deploy on commits
- Create free cluster at MongoDB Atlas
- Whitelist IP addresses (0.0.0.0/0 for all)
- Create database user
- Get connection string
- Add to backend environment variables
- Video/Audio calling
- Real-time chat
- User authentication
- Basic UI/UX
- Screen sharing capability
- Meeting recording
- Virtual backgrounds
- Participant management
- Meeting scheduler
- Unique meeting links generation
- Email invitations system
- Calendar integration
- Breakout rooms
- Polls and Q&A
- TURN server integration
- Load balancing
- Horizontal scaling
- CDN integration
- Analytics dashboard
- SSO integration
- Advanced security features
- Custom branding options
- API for third-party integrations
- Compliance certifications
We welcome contributions from the community! Here's how you can help:
-
Fork the Repository
git clone https://github.com/VAMSHIYADAV46/JoinIn.git cd JoinIn -
Create Feature Branch
git checkout -b feature/AmazingFeature
-
Make Your Changes
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation
-
Commit Your Changes
git add . git commit -m "β¨ Add AmazingFeature"
-
Push to Your Fork
git push origin feature/AmazingFeature
-
Open Pull Request
- Provide clear description
- Link related issues
- Include screenshots/demos
- Code Style: Follow ESLint configuration
- Testing: Write unit tests for new features
- Documentation: Update README for new features
- Performance: Optimize for real-time performance
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Mekala Vamshi Yadav
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
- π WebRTC - For peer-to-peer communication technology
- π Socket.IO - For real-time bidirectional event-based communication
- π Render - For seamless deployment platform
- π MongoDB Atlas - For cloud database hosting
- βοΈ React Team - For the amazing frontend framework
- π’ Node.js Community - For the robust backend runtime
- π₯ All contributors and the open-source community
- Zoom - For setting the standard in video conferencing
- Jitsi Meet - For pioneering open-source video calls
- Google Meet - For simplicity and accessibility
- π Repository: https://github.com/VAMSHIYADAV46/JoinIn
- π Documentation: https://github.com/VAMSHIYADAV46/JoinIn/wiki
- π Issue Tracker: https://github.com/VAMSHIYADAV46/JoinIn/issues
- π¬ Discussions: https://github.com/VAMSHIYADAV46/JoinIn/discussions
- π Live Demo: joinIn