Premium video conferencing application built with modern web technologies, providing a seamless meeting experience for users across devices.
- User Authentication - Secure registration and login system
- Real-time Video Meetings - High-quality video and audio communication
- Screen Sharing - Share your screen with meeting participants
- In-Meeting Chat - Text communication during video calls
- Meeting History - View all past meetings with details
- Responsive Design - Works on desktop and mobile devices
- Meeting Security - Only authorized users can join meetings
- Meeting Feedback - Collect user feedback after meetings
- React.js with TypeScript
- React Router for navigation
- Socket.io client for real-time communication
- WebRTC for peer-to-peer video streaming
- TailwindCSS for styling
- Material UI components
- Node.js
- Express.js
- MongoDB for database
- Mongoose for object modeling
- Socket.io for WebSocket connections
- JWT for authentication
- bcrypt for password hashing
VIDEO_MEET/
├── Frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── contexts/ # React context providers
│ │ ├── pages/ # Application pages
│ │ ├── routes/ # Routing configuration
│ │ ├── scripts/ # Utility scripts
│ │ ├── styles/ # CSS stylesheets
│ │ └── utils/ # Helper functions
│ └── public/ # Static assets
└── Backend/ # Node.js backend application
├── src/
│ ├── controllers/# Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ ├── middlewares/# Express middlewares
│ └── Db/ # Database connection
└── .env # Environment variables
- Node.js (v14.x or higher)
- MongoDB (v4.x or higher)
- npm or yarn
-
Navigate to the backend directory:
cd Backend -
Install dependencies:
npm install -
Create a
.envfile in the root of the Backend directory with the following variables:PORT=5000 MONGO_URL=mongodb://localhost:27017/videomeet JWT_SECRET=your_jwt_secret -
Start the server:
npm start
-
Navigate to the frontend directory:
cd Frontend -
Install dependencies:
npm install -
Create a
.envfile in the root of the Frontend directory with the following variables:VITE_BASE_URL=http://localhost:3000 VITE_SERVER_URL=http://localhost:3000 -
Start the development server:
npm run dev
- Register/Login: Create an account or login with existing credentials
- Create a Meeting:
- Click on "New meeting" button from the home page
- Share the generated meeting link with others
- Join a Meeting:
- Enter the meeting code or link in the input field
- Click "Join" button
- During the Meeting:
- Toggle video/audio using the control buttons
- Share your screen with the screen sharing button
- Use the chat feature to send messages to participants
- End the meeting using the red button
- View Meeting History:
- Navigate to the history page from the navbar
- See all past and scheduled meetings
- JWT authentication for secure API access
- Encrypted password storage with bcrypt
- WebRTC encrypted peer-to-peer connections
- Meeting access validation
- Blacklisted token handling for secure logouts
POST /users/register- Register a new userPOST /users/login- Login existing userGET /users/profile- Get user profilePOST /users/logout- Logout userGET /users/history- Get user's meeting historyPOST /users/history- Add meeting to history
POST /meetings/create- Create a new meetingPOST /meetings/join- Join an existing meetingPOST /meetings/leave- Leave a meetingPOST /meetings/end- End a meetingGET /meetings/:meetingId- Get meeting detailsPUT /meetings/:meetingId- Update meeting status
This project is licensed under the MIT License.
- Ananta Chandra Das - Fullstack Developer
We welcome contributions to the VideoMeet project! Here's how you can collaborate:
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/VIDEO_MEET.git - Add the original repository as upstream:
git remote add upstream https://github.com/original-owner/VIDEO_MEET.git - Create a new branch for your feature:
git checkout -b feature/your-feature-name
- Make your changes following the code style guidelines
- Keep your branch updated with upstream:
git pull upstream main - Write tests for your changes when applicable
- Ensure all tests pass before submitting
- Follow the existing coding style in the project
- Use meaningful variable and function names
- Write comments for complex logic
- Follow TypeScript best practices on frontend
- Follow ES6+ standards for backend JavaScript
- Update the README.md with details of changes if applicable
- Push to your fork:
git push origin feature/your-feature-name - Open a pull request against the main branch
- Clearly describe your changes and link any related issues
- Wait for code review and address feedback
- Use the issue tracker to report bugs or suggest features
- Check existing issues before opening a new one
- Provide detailed information when reporting bugs:
- Expected behavior
- Actual behavior
- Steps to reproduce
- Screenshots if applicable
Made with ❤️ by Ananta
