Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
5 tasks
omkar309 opened this issue Feb 14, 2024 · 11 comments
Assignees

Comments

@omkar309
Copy link

omkar309 commented Feb 14, 2024

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

@MekalaKaveri
Copy link

Could you please assign this to me

@chinmoy12c
Copy link
Member

Could you please assign this to me

Sure.

@vsvishalsharma
Copy link

hello @chinmoy12c,I would also love to contribute towards this project

@NarayanaSabari
Copy link

NarayanaSabari commented Mar 11, 2024

Hey @chinmoy12c ,PR has been raised in the alternative repo, here is the URL for the PR: BharatSahAIyak/packages#42

@Yash-Sajwan24
Copy link

@omkar309 I understand the problem, and I believe I have the necessary skills. Could I have the opportunity to work on this?

@Yash-Sajwan24
Copy link

@omkar309 I understand the problem, and I believe I have the necessary skills. Could I have the opportunity to work on this?

@omkar309
Copy link
Author

@omkar309 I understand the problem, and I believe I have the necessary skills. Could I have the opportunity to work on this?

@Yash-Sajwan24 @chinmoy12c is the mentor for this ticket. He'll be able to clear your doubts.

@omkar309
Copy link
Author

@chinmoy12c requesting you to update the acceptance criteria section by ticking off those that have been contributed, and add any additional sub-tickets if any here in the comments. Thanks!

@NarayanaSabari
Copy link

fixed - BharatSahAIyak/packages#44

@tanishq0421
Copy link

hey @chinmoy12c I would love to work upon this issue, could you please assign this issue to me?

@LavanyaaCSE
Copy link

Hello @chinmoy12c ,
I am interested in working on this issue; could you please assign it to me? I have prior experience working with HTML, CSS and Angular. It would be a great opportunity for me to contribute to this issue. Can you please assign me a task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants