Skip to content

ciukstar/videre

Repository files navigation

En français

În română

На русском

Videre

Instant Messaging and Video Calling

Overview

Application Videre allows users to exchange instant messages via WebSockets, make audio and video calls via WebRTC, and be notified via Web Push.

Usage

To call each other, users must register in the application and add each other to their contact list from among registered users.

When adding a user to your contacts list, the app will ask for permission to send notifications and subscribe to the push notification service.

The app uses the browser's push notification service to notify the callee of an incoming video or audio call.

By accepting the call, a peer-to-peer encrypted video/audio session will start between the caller and the callee as described by the WebRTC protocol.

Superuser

  • Username
    $YESOD_SUPERUSER_USERNAME
  • Password
    $YESOD_SUPERUSER_PASSWORD

A superuser account is defined at deployment time. The superuser manages other users and grants or revokes administrator privileges to specific users.

Integration with external APIs

  • Email: Gmail API

    • Client id
      $YESOD_GOOGLE_CLIENT_ID
    • Client secret
      $YESOD_GOOGLE_CLIENT_SECRET
  • Web Real-Time Communication: WebRTC API

    • Configuration
      $YESOD_RTC_PEER_CONNECTION_CONFIG

      The configuration can be provided as a textual representation of a JSON object as described in RTCPeerConnection() constructor.

      Mainly used to specify STUN and TURN servers.

Search Engine Optimization

Basic Entities

User

A new user can sign up using an existing Google account or using a verified email address. Gmail API is used as an intermediary to send verification links to the user's inbox.

A user can be grated the administrator role by a superuser or by another administrator. Only users with the administrator role have access to administrative data.

Contact

A contact is created when a user adds another user to their contact list. If each user has each other in their contact list, then they can call each other.

Push subscription

A push subscription is created when the user is added to the contact list, or it can be deferred until later.

The subscription can be checked or renewed from the “View contact” menu item.

Web Push Notifications are used to notify a callee of an incoming video/audio call. It is also used to end the video/audio session.

Call

The entity Call represents outgoing and incoming calls to the currently logged in user.

Chat

The Chat entity represents messages exchanged between two users. By default, chat messages are exchanged and stored using the WebSockets protocol. Peer-to-peer messaging without intermediate storage is planned for future releases.

Ringtone

New ringtones can be added by an administrator in the "Ringtones" section of the "Data" menu.

An administrator can also set default ringtones for each call type, outgoing or incoming call.

Users can change their preferred ringtones in their account settings.

ER Diagram

Entity Relationship Diagram

Demo

Click here to see demo

* Click on the Demo user accounts button to get a list of demo accounts