Skip to content

Latest commit

ย 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MeetSpace

A modern, browser-first video meeting platform built with React, Node.js, Express, MongoDB, Socket.IO and WebRTC.

MeetSpace is a portfolio project inspired by familiar video-conferencing products such as Zoom and Google Meet, but designed with its own visual identity and a cleaner, focused meeting experience.

โœจ Features

๐ŸŽฅ Real-Time Meetings

Create and join meeting rooms using a room code / meeting ID

Guest joining without requiring an account

Browser-based video and audio using WebRTC

Real-time participant communication

Camera and microphone controls

Screen sharing

Responsive meeting experience

๐Ÿ’ฌ Collaboration

Real-time room chat using Socket.IO

Emoji support

Participant list

Multiple meeting layouts:

Gallery

Speaker

Sidebar

Spotlight

Participant focus/selection

Clean meeting controls

Leave meeting functionality

๐Ÿ” Authentication & Backend

User registration and login

Token-based authentication

MongoDB database integration

REST API with Express

Health-check endpoint

Socket.IO signaling for WebRTC communication

๐Ÿ› ๏ธ Tech Stack

Frontend

React.js

React Router

CSS Modules

Socket.IO Client

WebRTC APIs

Backend

Node.js

Express.js

Socket.IO

MongoDB

Mongoose

CORS

JWT authentication

Development Tools

Git

GitHub

VS Code

Nodemon

๐Ÿ—๏ธ Project Structure

MeetSpace/ โ”‚ โ”œโ”€โ”€ backend/ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ controllers/ โ”‚ โ”‚ โ”œโ”€โ”€ models/ โ”‚ โ”‚ โ”œโ”€โ”€ routes/ โ”‚ โ”‚ โ””โ”€โ”€ app.js โ”‚ โ”œโ”€โ”€ .env โ”‚ โ””โ”€โ”€ package.json โ”‚ โ”œโ”€โ”€ frontend/ โ”‚ โ”œโ”€โ”€ public/ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ components/ โ”‚ โ”‚ โ”œโ”€โ”€ contexts/ โ”‚ โ”‚ โ”œโ”€โ”€ pages/ โ”‚ โ”‚ โ”œโ”€โ”€ styles/ โ”‚ โ”‚ โ””โ”€โ”€ App.js โ”‚ โ””โ”€โ”€ package.json โ”‚ โ””โ”€โ”€ README.md

๐Ÿš€ Getting Started

  1. Clone the repository

git clone https://github.com/YOUR-USERNAME/MeetSpace.git cd MeetSpace

  1. Backend setup

cd backend npm install

Create a .env file inside backend/:

PORT=8000 MONGO_URI=your_mongodb_connection_string CLIENT_URL=http://localhost:3000

Start the backend:

npm run dev

The API will run on:

http://localhost:8000

Health check:

http://localhost:8000/health

  1. Frontend setup

Open another terminal:

cd frontend npm install npm start

The frontend will run on:

http://localhost:3000

๐Ÿ”ง Environment Variables

Backend

Variable

Description

PORT

Backend server port

MONGO_URI

MongoDB connection string

CLIENT_URL

Frontend URL

Do not commit your real .env file.

๐Ÿง‘โ€๐Ÿ’ป How to Use

Create a meeting

Open MeetSpace.

Sign in or create an account.

Start a room.

Copy the generated meeting/room code.

Share the code with participants.

Join as a guest

Click Join as guest.

Enter the Meeting ID / Room Code.

Enter your display name.

Click Join meeting.

Allow camera/microphone permissions when prompted.

Enter the meeting.

๐ŸŽฌ Meeting Controls

Inside a meeting, users can:

๐ŸŽฅ Turn camera on/off

๐ŸŽค Mute/unmute microphone

๐Ÿ–ฅ๏ธ Share screen

๐Ÿ’ฌ Open room chat

๐Ÿ‘ฅ View participants

โ–ฆ Change meeting layout

โ˜Ž Leave the meeting

๐ŸŒ WebRTC Architecture

MeetSpace uses WebRTC for browser-to-browser real-time media communication.

The application uses Socket.IO as the signaling layer to exchange:

Session descriptions (SDP)

ICE candidates

Participant events

Chat messages

The actual audio/video communication is handled by WebRTC peer connections.

๐Ÿ“ฑ Responsive Experience

The interface is designed to adapt to different screen sizes, including desktop and smaller displays.

๐Ÿ”’ Security Notes

This project is intended as a portfolio/learning application.

For production deployment, additional security and infrastructure would be recommended, including:

HTTPS/WSS

Stronger authentication/session management

Production-grade TURN servers

Rate limiting

Input validation and sanitization

Secure HTTP headers

Production environment configuration

Proper secret management

๐Ÿ› Known Development Notes

The frontend currently uses Create React App / react-scripts.

Start the frontend with:

npm start

not:

npm run dev

๐Ÿ”ฎ Future Improvements

Possible future enhancements:

Persistent meeting history

Meeting scheduling

Screen-sharing indicators

Active-speaker detection

Hand raise

Reactions

Better mobile meeting experience

Recording support

TURN server configuration

Production deployment

Meeting access controls

Host moderation controls

๐Ÿ‘จโ€๐Ÿ’ป Developer

Kunal Sonawane

Software Developer

MeetSpace was developed as a portfolio project focused on:

Real-time communication

WebRTC

Socket.IO

React

Node.js

Express

MongoDB

Full-stack product development

๐Ÿ“„ License

This project is intended for educational and portfolio purpose

About

A modern browser-based video meeting platform built with React, Node.js, Express, MongoDB, Socket.IO, and WebRTC, featuring real-time video, audio, screen sharing, chat, guest joining, and multiple meeting layouts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages