Perhaps the favorite event I've been a part of in college has been HackTX. HackTX is an annual university hackathon that aims to push students to push their personal boundaries. We don't care if you're a computer prodigy or never written Hello World, it's designed to be inclusive of everyone.
In 2015, I switched from participant to organizer on Team HackTX. I serve on the technical team, which means that we code in-house all the technology necessary to make the event run smooth. Specifically, my duties center around the iOS app. The most logical way to complete this was through the use of a tabbed application. Our team decided to split this up into Schedule, Announcement, Twitter, Maps, and Partners. Because of the advantages of MVC, this actually made it really easy for our team to collaborate and merge branches without merge conflicts.
The schedule was one of the most important parts of the app. We didn't want people running around, not knowing when something was going to happen. If they could access this information themselves, our help desk would be significantly alleviated from a lot of traffic. This information could change quickly, so we needed to again pull information from our server to meet the constantly changing needs. Nucelus, our central hub, would serve this information in JSON. When the information was downloaded from Nucelus, it stored everything in
Event objects. Once finished downloading the information from Nucleus, the app would then render all events. Each
Event had more details that the user could view. When the user clicked on the event title, they were directed to a screen that contained all
We wanted to make it as easy as possible for us to send announcements as possible and account for those who didn't have the app (we only developed for iOS and Android). Slack was the best answer. Slack's API conveniently provides a channel's history in JSON, and supports webhooks. You can see the flowchart of how the entire system worked below. (You'll need to take a look on desktop because it's not readable on phone screens)
First an admin would post an announcement on our event slack. This would then send a webhook to Nucelus, our platform identity system built by Robert Lynch. Nucleus would then send a webhook to Parse, so that all devices would be sent a notification. The user would then see this notification on their lock screen. When they opened the notification, they'd be brought directly to the announcements screen, which would then send a request to Nucleus asking for the latest announcements data. It would download any changes in the JSON data, parse it, and show the user the list of all notifications.
An AngularJS web app that takes advantage of AngularJS's two-way data binding to provide real-time score results
Behind the design and coding of my own personal website
A native Objective-C reference app utilizing UITableView to provide users with quick, easy acces to planetary reference data