NeoMeet is a modern real-time video conferencing application that enables seamless communication through high-quality video calls, screen sharing, and instant messaging.
Built using React, Node.js, WebRTC, and Socket.io, NeoMeet provides a simple interface for hosting and joining meetings with minimal setup.
| Feature | Description |
|---|---|
| Video Calls | Real-time video and audio communication |
| Real-Time Chat | Send messages during meetings |
| Screen Sharing | Share screen with participants |
| Multi-Participant Meetings | Support for multiple users |
| Secure Authentication | Login and registration system |
| Dark / Light Mode | UI theme toggle |
| Meeting Code Join | Join meeting via code |
| Responsive Design | Works across devices |
| Real-Time Signaling | WebRTC signaling via Socket.io |
| Technology | Purpose |
|---|---|
| React | Frontend UI framework |
| Material UI | UI component library |
| React Router | Client-side routing |
| Socket.io Client | Real-time communication |
| WebRTC | Peer-to-peer video/audio streaming |
| Technology | Purpose |
|---|---|
| Node.js | Runtime environment |
| Express.js | Backend framework |
| Socket.io | WebSocket communication |
| MongoDB | NoSQL database |
| JWT | Authentication tokens |
| bcrypt | Password hashing |
flowchart TD
A[ApnaVideoCall]
A --> B[backend]
B --> C[src]
C --> D[controllers]
D --> D1[socketManager.js]
D --> D2[user.controller.js]
C --> E[models]
E --> E1[meeting.model.js]
E --> E2[user.model.js]
C --> F[routes]
F --> F1[users.routes.js]
C --> G[app.js]
A --> H[frontend]
H --> I[public]
I --> I1[screenshots]
I --> I2[index.html]
H --> J[src]
J --> K[contexts]
K --> K1[AuthContext.jsx]
K --> K2[ThemeContext.jsx]
J --> L[pages]
L --> L1[landing.jsx]
L --> L2[authentication.jsx]
L --> L3[home.jsx]
L --> L4[VideoMeet.jsx]
L --> L5[history.jsx]
J --> M[styles]
M --> M1[videoComponent.module.css]
J --> N[utils]
N --> N1[withAuth.jsx]
J --> O[App.js]
J --> P[App.css]
J --> Q[index.js]
A --> R[README.md]
- Node.js (v14 or higher)
- MongoDB (local or MongoDB Atlas)
- npm or yarn
cd backend
npm install
cp .env.example .env
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_secret_key
PORT=8000
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
npm start
Server runs on
http://localhost:8000
cd frontend
npm install
cp .env.example .env
REACT_APP_API_URL=http://localhost:8000
REACT_APP_SOCKET_URL=http://localhost:8000
npm start
Frontend runs on
http://localhost:3000
Users can
- Create an account
- Login to account
- Join meeting as guest
Users can
- Register new account
- Login using credentials
Passwords are securely hashed using bcrypt.
Users can
- Create meeting
- Join meeting using meeting code
Before joining users can
- Preview camera
- Enable microphone
- Enter display name
Meeting interface includes
- Video grid
- Chat panel
- Meeting controls
- Participant display
Controls available
- Camera toggle
- Microphone mute/unmute
- Screen sharing
- Chat panel
- Copy meeting code
- Leave meeting
Create Procfile
web: node src/app.js
Deploy
heroku create neomeet-backend
git push heroku main
Set environment variables
heroku config:set MONGODB_URI=your_uri
heroku config:set JWT_SECRET=your_secret
Build production
npm run build
Deploy using
vercel --prod
or
netlify deploy --prod
Never commit .env files to Git.
Check
git status
If tracked remove
git rm --cached .env
git rm --cached backend/.env
git rm --cached frontend/.env
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
1 Fork the repository
2 Create branch
git checkout -b feature/your-feature
3 Commit changes
git commit -m "Add feature"
4 Push branch
git push origin feature/your-feature
5 Open Pull Request
This project is licensed under the MIT License.
NeoMeet Development Team
For support or issues open a GitHub issue.






