Skip to content

[C4GT Community]: Create additional adapters for the UCI framework to enable multiple channel communication #60

@omkar309

Description

@omkar309

Ticket Contents

Description

The UCI system in BharatSahAIyak provides a completely pluggable interface to integrate any provider (Gupshup, Netcore, Firebase, etc.) + channel (Whatsapp, Telegram, Discord, etc.) combination as long as there is an adapter to support it. The current system enables communication with:

  • Gupshup + Whatsapp (2 way)
  • Discord + Discord (1 way)
  • Telegram + Telegram (2 way)
  • Pwa + Pwa (2 way)

Where the former is the provider and the latter is the channel.
We need to create more adapters that would help UCI system to integrate with much more channels.

Here is the updated package that can be used for new adapters:

Adapters repository.

Goals

  • Implement two way comms on discord.
  • Implement two way comms for slack.
  • Implement two way comms for email.
  • Enable complex message types like audio, image and button choices etc.
  • The adapters should include unit tests for each case.

Expected Outcome

Once the adapters are created, the UCI system should be able to seamlessly integrate with new channels such that, the rest of the system remains same.

Acceptance Criteria

  • Two way communication working on Discord (Messages can be sent from channel to UCI as well as from UCI to channel)
  • Two way communication working on Slack.
  • Implement two way comms for email.
  • Complex messages are working.
  • All providers are unit tested.

Implementation Details

The adapters are written in Typescript and all implement one of 4 defined provider types. The implementation only needs two functions (one for 1 way comms and other for 2 way comms) defined in the interfaces to create a working adapter.

Mockups/Wireframes

No response

Product Name

BharatSahAIyak

Project Name

Extend UCI integration with more channels

Organisation Name

SamagraX

Domain

Communications and Media

Tech Skills Needed

Typescript, NestJs, Unit Testing

Mentor(s)

@chinmoy12c

Complexity

Medium

Category

Feature

Sub Category

Accessibility

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions