Skip to content

A real-time communication platform where users come from the all over worlds and have casual meeting and some fun conversations

Notifications You must be signed in to change notification settings

shivamEr/BharatMeet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

📞 Real-Time Meeting App

A full-stack web application that allows users to create and join public or private real-time meetings with messaging, video chat, screen sharing, and file sharing.

🚀 Tech Stack

Frontend:

  • React + Vite
  • Axios
  • React Router DOM
  • Socket.IO Client

Backend:

  • Node.js + Express
  • MongoDB + Mongoose
  • JWT (Authentication)
  • Socket.IO (WebSockets)

🏗️ Project Structure

your-app/
├── client/           # React frontend
│   ├── public/
│   └── src/
│       ├── components/
│       ├── pages/
│       ├── services/
│       ├── sockets/
│       ├── context/
│       └── App.jsx
├── server/           # Express backend
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   ├── middleware/
│   ├── sockets/
│   ├── config/
│   ├── utils/
│   ├── app.js
│   └── server.js
├── .gitignore
└── README.md

🛠️ Local Setup Instructions

⚙️ Prerequisites


🔧 Step 1: Clone Repo

git clone https://github.com/yourusername/your-repo-name.git
cd your-repo-name

⚙️ Step 2: Backend Setup

cd server
npm install

➕ Create .env in server/

PORT=5000
MONGO_URI=mongodb+srv://<user>:<pass>@cluster.mongodb.net/dbname
JWT_SECRET=your_jwt_secret_key

▶️ Run Server

npm run dev

💻 Step 3: Frontend Setup

cd ../client
npm install

➕ Create .env in client/

VITE_API_URL=http://localhost:5000/api
VITE_SOCKET_SERVER=http://localhost:5000

▶️ Run Client

npm run dev

📡 API Endpoints

Method Endpoint Description
POST /api/auth/signup Register a new user
POST /api/auth/login Login and get token
POST /api/meeting/create Create a meeting
GET /api/meeting/public Get public meetings
POST /api/meeting/join Join a meeting

🔌 Socket.IO Events

Event Payload Description
user:join { userId, meetingId } User joins meeting
message:new { sender, content } Chat message sent
user:mute { userId } Host mutes user
screen:share { stream } Start screen share
user:kick { targetId } Host kicks a user

📦 Scripts

Backend (/server)

npm run dev   # start dev server with nodemon

Frontend (/client)

npm run dev   # start Vite dev server

🧾 .gitignore (Recommended)

In both server/ and client/

node_modules/
.env
uploads/
dist/
build/
.DS_Store

🌐 Deployment Tips


📌 Roadmap

  • Auth system (JWT)
  • Meeting creation + joining
  • Real-time chat (Socket.IO)
  • WebRTC video/audio
  • Screen sharing
  • File uploads (AWS or local)
  • Host controls panel
  • Recording support

🧑‍💻 Author

Built with 💻 & ❤️ by TeamWork

About

A real-time communication platform where users come from the all over worlds and have casual meeting and some fun conversations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages