Skip to content

gophergala2016/festivus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Festivus

Festivus is a Slack app that will help you plan and celebrate the holidays easier.

This 48 hour project was made as a submission to the gophergala 2016 golang hackathon.

Our last years submission to Gopher Gala videq - High quality video encoding for modern web in golang was fun, so we gave Gopher Gala another go this year. :)

TLDR; Wanna try it out?

Great! Just click the Add to Slack button and follow the lights.

Add to Slack

Once you have it in Slack:

  • To see how long till Festivus: /festivus

  • To see upcoming holidays in United States of America: /festivus us

  • In France /festivus fr

  • In UK /festivus uk

  • In ​India /festivus in

  • For more locales: /festivus help

Inspiration

Our team comes from Croatia, young and small European country in which (some say) it’s employed residents value non working holidays a bit more than elsewhere in the world (there are roumours about Italy and France closing in holiday race, feedback needed).

Over our short history we managed to invent many holidays, which on some years fall on week days - effectively making them – governmental non working days.

The sport comes from combining your vacation business off days with holiday non working days in order to maximize your vacation time potential (VTP).

The inspiration for the name comes from legendary Seinfeld episode in which Frank Costanza (Jerry Stiller) created Festivus as an alternative holiday in response to the commercialization of Christmas https://en.wikipedia.org/wiki/Festivus

The inspiration in using Slack comes from article published in Verge some weeks back telling how year 2016. will be the year of Bots with killer AI.

The problem(s)

Our teem started using Slack just recently, and we did not experiment with Slack integrations before whatsoever. We saw Gopher Gala as a great opportunity to experiment with golang and Slack.

Solution

Programming!

How it works

Install Festivus to your Slack team

Personal usage

How to build it for your self

You must create Slack app or & define the command and it's endpoint at https://api.slack.com/applications. Then build and run from command line.

We use following packages so you have to go get them:

go get github.com/nlopes/slack
go get golang.org/x/oauth2

After you have successfully go build, run it:

Usage: ./festivus --address ":8080" --client_id "YOUR_ID" --client_secret "YOUR_SECRET"

Challenges we ran into

Originally, our feature list for Festivus was huge, as you would expect from over the top full blown bot with AI and everything.

After we dug into Slack API, it became pretty clear that 48 hours is not enough for proper implementation of multi team support via websockets and Slack’s Real Time Messaging API.

We scoped it to be able to complete it in time and still have fun doing it.

Accomplishments that we are proud of

We had opportunity to test drive Slack apps, bots, RTM API, commands etc.

The list of holidays per country in the world is hard to find. Luckily our friends at Google have added some of holidays into calendar.google.com in form of custom calendars. @luzel found a technique how to fetch them, and @dvrkps built golang helper parser package around the data files.

What we learned

48 hours is not much, use it wisely. We should have automated git pull/go build/restart on staging server.

What's next for Festivus

Fork, code cleanup, refractoring should be done absolutely first; We are pretty anxious to transfer it to a form of a Slck Bot and continue exploring Slack platform further; Neural Networks and Collaborative Filtering.

The Team

Big shout to fine Festivus team & supporters:

About

🎉 Festivus is a Slack app that will help you plan and celebrate the holidays easier.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages