Skip to content

armangupta910/Video-Call

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Calling App

This project is a full-stack video calling application. The backend is built using Spring Boot, WebRTC, WebSockets, and the frontend uses HTML, CSS, JavaScript, along with STOMP Client and SockJS for WebSocket communication.

Features

  • Real-time video and audio communication.
  • User signaling using WebSockets.
  • Interactive and responsive UI.
  • Easy integration with WebRTC for peer-to-peer communication.
  • STOMP protocol for WebSocket communication.

Technologies Used

Backend:

  • Spring Boot: REST API and WebSocket server.
  • WebRTC: Peer-to-peer video calling.
  • WebSockets: Signaling mechanism.

Frontend:

  • HTML, CSS, JavaScript: User interface.
  • STOMP Client: Communication protocol over WebSockets.
  • SockJS: Fallback support for WebSocket communication.

System Design

The application uses WebRTC for establishing peer-to-peer communication. A Spring Boot server acts as the signaling server to exchange metadata between peers (SDP and ICE candidates) using WebSockets.

Diagram

Below is the system design diagram illustrating the flow of the application:

System Design Diagram


Project Setup

Backend Setup

  1. Clone the repository:
    git clone <repository-url>
  2. Navigate to the backend directory:
    cd backend
  3. Build and run the Spring Boot application:
    ./mvnw spring-boot:run
  4. Now open "https://localhost:3000" to access the frontend.

How It Works

  1. Signaling:
    • The client connects to the Spring Boot WebSocket server.
    • Users exchange SDP (Session Description Protocol) and ICE (Interactive Connectivity Establishment) candidates through WebSockets.
  2. WebRTC Peer Connection:
    • WebRTC APIs establish a peer-to-peer connection between users for audio and video streaming.
  3. Media Stream:
    • Local media streams are captured using WebRTC and shared over the peer connection.

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.


About

This project is a full-stack video calling application. The backend is built using Spring Boot, WebRTC, WebSockets, and the frontend uses HTML, CSS, JavaScript, along with STOMP Client and SockJS for WebSocket communication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors