Inspiration
I was working solo and pressed for time, so I thought about the things I could make that are both fun and practical. I'm on a course staff here at UC Berkeley, and we use Slack for most of our communication just like many other student organizations, so I thought of making a Slack bot. I didn't just want to make a plain and silly chat bot, so I searched around for interesting tool and datasets, and I came upon the gs-quant package from Goldman Sachs. Goldman Sachs' SDK is intuitive and powerful for financial analysis, so I decided to make a Slack bot that can report on financial data based on the demand of the user. Too bad Slack isn't at this hackathon, haha.
What I learned
I learned that developing a Slack bot in python isn't always the best idea, but by the time I realized this I didn't have much time to re-implement everything in JavaScript. The Slack Events API adapter for Python is still under development, and the newest version of the slack python package isn't actually backwards compatible with the Events API adapter. As a result, I refactored my code three times throughout the hackathon to achieve my key goal of supporting different bot reactions and using gs-quant. That situation was a time sink that prevented me from implementing many more features. I also learned about how convenient the gs-quant package is to use and the amount of abstraction it provides to simply data wrangling.
How I built it
I used Python and packages such as gs-quant, slackclient, pandas, matplotlib and many others to build this project. I mainly read through the Slack and Goldman Sachs API documentations to understand how to use them and their functionalities. I then brainstormed the features I wanted and implemented them. I did debugging as I progressed with my implementation.
Challenges
The main challenge I faced was the complication of using the Slack Events API adapter for Python instead of just doing everything in JavaScript. One of the bugs I encountered (I spent almost two hours debugging it) turned out to be a bug within the slack package and not my project. Another challenge I faced was the parsing of the input that the chat bot gets from listening to events. It was not particularly difficult, but I also had to understand how to use the gs-quant package in conjunction with the result of parsing, so it took some thought.
Log in or sign up for Devpost to join the conversation.