Inspiration

We were initially inspired by our common aversion to using Slack--Discord was just the preferred method of communication for our entire team, and many team members had the experience of missing important messages altogether in messaging apps, despite literally being on the computer/phone at the time. Interestingly enough, a few friends of their team voiced a similar aversion to using Discord! And so, we got to work creating chat proxy. Of course, our first two messaging services were decided to be Slack and Discord, and we decided to make the service two-way to support both the Discord enjoyers as well as the Slack enjoyers.

What it does

chat proxy is a service that automatically ports messages from one messaging application to another, and it works both ways! In this hackathon, we implemented many other functionalities, including the ability to also port usernames and profile images with the message so that the recipient(s) know who is contacting them, the ability to port images and files over different messaging applications, so you're not limited to sending messages only, and the ability to mirror channels to the other application (for example, if you send a message in a new channel in Slack, the channel will be automatically mirrored to Discord as a new channel and future messages in that channel will remain in that channel).

How we built it

We built this service using an amalgamation of Python, discord.py, and the Slack API, and we used flask and ngrok as our web servers.

Challenges we ran into

Most of the documentation for the Slack side of the application was very obsolete, being either no longer supported or simply nonexistent without the paid version of the app. This being the case, it was a struggle connecting Slack into our application. However, we used creative ways to circumvent this challenges, such as finding obscure references to similar code online or reverse engineering certain actions (a funny example is using the Discord tag to differentiate between user and bot rather than relying on the Slack API).

In addition, none of us has much experience with creating bots, so it was a fun experiment learning how to make these type of bots in a real-world setting with effective functions. We definitely look forward to experimenting and learning more in the future as well!

Accomplishments that we're proud of

We initially considered our product finished and quite good at that right after finishing the ability to port over usernames and profile pictures in addition to messages sent (before all the other functionalities were added). However, we came to the conclusion that it was doable to create more functions within the given timeframe, and so we powered on and continued to hack away at our project. Ultimately, we ended up implementing the function of sending images, creating channels to match the other messaging applications, starting on our edit/delete message functionality, and more, and so we're proud of our perseverance and work ethic.

Of course, our team is also proud of all the learning we've done this hackathon, whether it be how to use specific APIs (Slack, Discord) or using Webhooks in general. None of us had previously been part of such a project before, and we all learned a lot these past few days at SB Hacks. We entered as a couple of friends mostly just to learn--and we're proud of completing our initial objective as well as our project.

What's next for chat proxy

We'd love to implement more functionalities for our service, such as the ability to port over videos, the ability to update edited and deleted messages (we've already started both of these), and the ability to mirror reactions with emojis. We would also love to expand the amount of applications covered, such that Discord/Slack would also be able to send and load various communications from Messenger/Instagram/WeChat/etc., and vice versa.

Built With

Share this project:

Updates