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

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.

Support for text formatting using Markdown.

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

ER Diagram

Source code

Project repository on GitHub.

Issue tracking

Please note that the application currently running is a demo application. Any actions are allowed and encouraged. Report issues on GitHub.

New message

Incoming video call
Incoming audio call
Missed call

Missed call,