A full-stack video conferencing application built with React, Node.js, Express, MongoDB, and Socket.IO. Users can create or join meeting rooms, communicate with live audio and video, share their screen, and review meeting history.
- User registration and login
- Meeting rooms using a shareable meeting URL
- Real-time video, audio, and chat
- Screen sharing
- Meeting history in the user dashboard
- Socket.IO communication between meeting participants
| Layer | Technologies |
|---|---|
| Frontend | React, React Router, Material UI, Socket.IO Client |
| Backend | Node.js, Express, Socket.IO |
| Database | MongoDB with Mongoose |
| Authentication | Username/password authentication with token-based sessions |
backend/ Express API, MongoDB models, routes, and Socket.IO server
frontend/ React application and meeting interface
- Node.js 18 or newer
- npm
- MongoDB Atlas or a local MongoDB server
- A modern browser with camera, microphone, and screen-sharing support
git clone https://github.com/jayavgune18/Zoom.git
cd ZoomCreate a local environment file from the example:
cd backend
copy .env.example .envOpen backend/.env and set MONGO_URI to your own MongoDB connection string. Never commit this file or share the connection string publicly.
npm install
cd ../frontend
npm installStart the backend in one terminal:
cd backend
npm run devStart the frontend in a second terminal:
cd frontend
npm startOpen http://localhost:3000 in your browser. The local API and Socket.IO server run on http://localhost:8000.
- The backend reads
MONGO_URIfrombackend/.envand uses port8000by default. - The frontend API target is configured in
frontend/src/environment.js. SetIS_PRODtofalsefor local backend development. - Camera, microphone, and screen sharing require browser permissions and may require HTTPS outside localhost.
npm run dev # Start with Nodemon
npm start # Start with Node.jsnpm start # Start the development server
npm test # Run the test suite
npm run build # Create a production buildUser routes are available under /api/v1/users. Meeting communication is handled through Socket.IO.
This project is intended for learning and demonstration purposes.