Skip to content

gauravmk/hacknight-checkin

Repository files navigation

Hack Night Check In

Add to Slack

We built this app at OpenOakland to track our hack night attendance.

On the frontend, we integrate with slack using a slash command to make it dead simple for brigade members to check in each night:

checkin-demo

On the backend, we store everything in Google Sheets making it easy for any member to access and analyze our attendance information. (Our members names are blacked out below to respect their privacy)

Screen Shot 2020-04-05 at 10 25 13 PM

Contributing

Currently Gaurav is the only person working on this but if you are interested in getting involved, just let me (me being Gaurav) know. You can email me at gaurav@gauravkulkarni.com or hit me up on slack if you're on either the OpenOakland or Code for America slack.

Having both a slack app and a google app is required to be able to dev on this repo and I'm still in "dev on the prod apps" point with this repo. So if you're interested in working on this project, just hit me up and we can work through making the dev experience usable.

On the other hand, if you just want to tell me what's broken or what you wish was different, open up some github issues. I'm all for that.

Tech stack

This is just in case you're curious. There are a few key dependencies:

Python

This is written in python 3. Really 3.6 or higher

Heroku

We're hosted on heroku at hacknight-checkin.herokuapp.com. Nothing actually lives at that index page though.

Flask (app.py)

We need a webserver for a couple reasons. Mostly oauth flows with slack and google, but also to receive the slash commands that members send. We use flask

APScheduler (app.py)

APScheduler is a super basic scheduler library for python. We use it to periodically sync data from redis to google sheets.

Mostly it's just handling receiving the /checkin slash command from users though we occasionally use the web api. For instance, we grab users' display names to make the attendance sheet readable.

Google Sheets (google_client.py)

We store everything in google sheets. We're using the sheets v4 api. You can find the quickstart for the API here.

Redis is our datastore. All keys are namespaced with the prefix: checkin:[your slack team id]:.

About

Track attendance at your hack night

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published