Introduction

ZDK

The abbreviation ZDK, standing for ZuCasa Development Kit, is a blend of “ZuCasa” and “SDK”, highlighting its unique identity in ZuCasa’s tech ecosystem.

Modules

ZDK is divided into modules, and the functionality it offers depends on the modules you use. Keep in mind that some of the modules depends of another. It means that they need another module to be created. All modules available in the ZDK with their depends are listed below:

Core

A basic module that is required for any module to run. (Other modules depends on it internally, you don’t need to pass it as argument to other modules).

Dependencies: none dependencies

User

The User module is the primary module responsible for connecting the user to the ZDK system. It requires a token to establish a connection and provides various actions and data accessors to manage and retrieve user-related information.

Dependencies:

  • core

Websocket

The WebSocket module in ZDK provides users with a seamless connection to WebSockets. It is dedicated to ensuring that packets are accurately read and dispatched. Notably, in cases where the connection is disrupted, this module possesses a built-in mechanism to attempt reconnection, ensuring persistent communication and enhanced user experience.

Dependencies:

  • core
  • user

Chats

The Chats module is responsible for managing chats. It provides actions to send, update, delete, and resend messages, as well as accessors to retrieve chat-related data. When the Chats module is integrated with the Room module, it enables users to seamlessly send and receive messages within a room, enriching the in-room communication experience.

Dependencies:

  • core
  • user
  • websocket

Room

The Room module in ZDK primarily handles user entry and exits from rooms. Acting as a foundational layer, it can be enhanced with additional modules to bring in diverse functionalities specific to the room’s purpose. Users have the flexibility to choose which modules to integrate based on their needs. For instance:

  • Incorporating the Chats module will empower users to exchange text messages within the room.
  • Integrating the Conference module allows participants to engage in video calls while in the room.

For those looking to maximize their room capabilities, both modules can be used concurrently, offering a comprehensive communication experience that encompasses messaging and video conferencing.

Dependencies:

  • core
  • user
  • websocket
  • chats (Optional)
  • conference (Right now required but in future optional)

RoomChat

The RoomChat module in ZDK acts as a bridge between the Chats and Room modules, streamlining the chat experience within a specific room. By serving as this intermediary, it offers users direct access to the chat associated with the current room without any additional complexities. Notably, the RoomChat module stands out for its ease of use, ensuring a seamless and intuitive chat experience within rooms.

Dependencies: (added automatically)

  • core
  • user
  • websocket
  • chats
  • room

DeviceManager

The DeviceManager module in ZDK is dedicated to managing a device’s microphones and cameras. It provides users with the capability to switch among available cameras or microphones as needed. This module furnishes developers with straightforward access to these feeds, allowing them to integrate and present them as desired in their applications. If any permission-related issues arise, the module produces clear error messages, ensuring that developers can relay user-friendly notifications to end-users, guiding them to address any access concerns.

Dependencies:

  • core

Conference

The Conference module in ZDK is an integral component for facilitating video and audio interactions. Leveraging the capabilities of the DeviceManager module, it efficiently sends video and audio streams. Beyond just transmission, the Conference module also retains the video and audio data from other participants, ensuring a coherent communication experience. Central to its operation is the maintenance of a WebRTC connection, which ensures real-time, high-quality communication between users. Importantly, for the Conference module to function, it must be integrated within the Room module; it cannot operate in isolation.

Dependencies:

  • core
  • user
  • websocket
  • deviceManager

Event

The Event module in ZDK primarily handles user join and leave actions for a single, time-boxed session (webinar, AMA, workshop). It provides a built-in chat so participants can exchange messages, ask questions, and see announcements during the event.

Focused on live participation, the module offers a simple, standalone experience for running interactive sessions with real-time text communication.

Dependencies:

  • core
  • user
  • websocket
  • chats (Optional)

EventChat

The EventChat module in ZDK acts as a bridge between the Chats and Event modules, streamlining the chat experience within a specific event. By serving as this intermediary, it offers users direct access to the chat associated with the current event without any additional complexities. Notably, the EventChat module stands out for its ease of use, ensuring a seamless and intuitive chat experience within events.

Dependencies: (added automatically)

  • core
  • user
  • websocket
  • chats
  • event