As software developers, sometimes organizing a group lunch or meetings with our coworkers can seem more difficult than completing programming tasks. Numerous teams use Slack to communicate nowadays, and we found ourselves slacking one another when trying to plan impromptu events (i.e., ping-pong games). Rather than sending detailed event messages to numerous people and asking each other who else is attending, we thought it would be a great idea to have a bot do all the work for you! In comes UDown?, named after the common convention of asking "are you down?"
What it does
UDown? is a Slack bot that can be installed as a plugin to an existing Slack team. The UDown bot converses with a user to retrieve the time, place, and people to invite to an event. UDown bot creates the event, inviting the given users via Slack message, providing them with a link to the event. Invited users can reply to UDown with acceptable yes/no responses to RSVP, which is then relayed to display on the event link located on UDown?'s website. Users with access to the event link can view the time, place, and everyone who accepted the invitation to attend.
How we built it
We used botkit with the Slack API to create the web socket backend. We used mongo labs to connect in a mongo db and used to heroku to deploy the app. We planned out how the bot communicates with users to smoothly transition with the functionality of the bot to make it seem like a real person. For the front end we used bulma for the layout and were able to design a clean and simple user interface.
Challenges we ran into
Connecting UDown bot to Slack was a bit glitchy if numerous servers were deployed; they would overlap which sometimes miscommunicated messages to the user. Also, once adding UDown? to a Slack team, the bot wouldn't show up instantly for users and introduce itself despite being successfully installed. After debugging and asking the Slack booth for some guidance, we were able to improve on both these issues.
Accomplishments that we're proud of
Due to the time crunch, we are proud of what we accomplished in the time allotted. This includes creating a landing page, logo, color scheme for UDown?, a pluggable Slack bot using the Slack API and web sockets, and a functional event creating service.
What we learned
Team members inexperienced with the Slack API learned how to integrate it to create a bot, and teammates enhanced their UI capabilities by learning and teaching each other ReactJS, Sass, and Bulma for front-end. Some of us are hackathon first-timers as well!
What's next for UDown?
Since UDown? helps solve our personal problem of planning office events, we are going to continue building on top of what we have so far. We will enhance UDown?'s communication to be more efficient with the user by accepting more valid response messages, and possibly create a more detailed user experience on UDown?'s website (i.e., ability to create event, show "not down" users). We will be asking friends and coworkers for additional feedback so we can improve UDown? and cater to a wider audience.