Skip to content

legendary-acp/ChimeCast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChimeCast

ChimeCast is a robust backend solution for a Zoom-like video calling application, crafted in Go. Utilizing the mux router, Gorilla WebSocket, and pion/webrtc, this backend offers seamless real-time communication through peer-to-peer (P2P) video calls. With features like simple session-based authentication and user management, ChimeCast is designed to provide a reliable foundation for high-quality video conferencing experiences.

Features

  • Session-based Authentication: Custom session tokens for secure access without OAuth.
  • User Management: Register, login, and manage user data.
  • Real-time Communication: WebSocket-based signaling for WebRTC connections.
  • Peer-to-Peer Video/Audio: WebRTC support for high-quality media streaming.
  • SQLite Database: Persistent storage for user data and session logs.

Tech Stack

  • Language: Go
  • Framework: mux for routing and API handling
  • Database: SQLite via GORM (ORM for Go)
  • Real-Time Communication:
    • WebSocket: Gorilla WebSocket for signaling
    • WebRTC: pion/webrtc for P2P media streaming

API Endpoints

1. Authentication

  • POST /register
    Registers a new user.
{
  "username": "example",
  "password": "password123"
}
  • POST /login
    Logs in a user and returns a session token.
    {
      "username": "example",
      "password": "password123"
    }
  • POST /logout
    Ends a user session (requires session token).

2. Video Call Management

  • POST /call/start
    Initiates a call session with a target user. Requires authentication.

  • POST /call/end
    Ends an ongoing call.

3. WebSocket Connection (for signaling)

-/ws
Establishes a WebSocket connection for WebRTC signaling between peers.


Libraries and Packages

  • mux: HTTP request router and dispatcher.
  • Gorilla WebSocket: For real-time signaling using WebSocket.
  • pion/webrtc: WebRTC implementation for Go to support P2P media streaming.
  • GORM: ORM for Go, simplifies database interactions with SQLite.

About

Zoom-like Calling App

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages