Jonathan Segal / July 17, 2019
14 min read
This hackathon was the first out of state hackathon that I went to and the first MLH hackathon of the spring semester 2019, the Game Jam was technically before this. Right before HackISU, I hurt my hand really bad and after the hackathon I had my hand put in a cast which severely impacted my ability to do hackathons, but this hackathon was after the break and my hand was fine and we were ready for action!
The event started on Friday and we needed to leave at around 3 in order to get there for dinner and opening ceremonies. So we decided to skip our Digital Logic className which our entire team was taking, none of us really liked the className all that much anyway. So at about 3, we were off in our rented Zipcar, I have a 2 seater truck and no one had a car that we were able to take so we rented one. And we were off on our approximately 4 hr trip down to the University of Kansas.
For our project, we discussed what we were going to do earlier in the week and what prize categories that we were going for. What we really wanted to get was the “Best use of Google Cloud Platform” prize because we all got Google Home mini’s which was definitely one of the better prizes. For our project what we came up with was something similar to the game capture the flag or domination in Call of Duty, Our idea was to have a large group of people using their phones log into a game made by one of the players and to have to go and capture different targets and whichever team had the most targets by the end of the game won.
We went over to the LEAP 2 building which was super nice the building that we were going to be staying in for the weekend and made our way to the registration desk downstairs.
After checking in we quickly put our stuff up in the hacking area with all the tables upstairs and made our way over to the food and the opening ceremony. As we were walking across outside between the two buildings Leep 2 and Eaton hall there was an amazing iced over part of the sidewalk that everyone was sliding on, unfortunately, I don't have a video but believe me it was pretty great. Once we made it over they had two lines of food with pizza and salad and a whole bunch of stuff the food game at Hack KU was off to a great start.
Once we got our food we made our way into the main area and sat down, at this time we met back up with Ben who drove done with some other students from Iowa State and we waited for the opening ceremony to start.
During the opening ceremony, they talked about how hackathons work, the different categories that you could win for prizes and a few other things that would be helpful during the weekend. They also told us that the main theme for the weekend would be Social Good which we quickly found a way to justify our idea to fit into that theme.
After the presentation, we went back to our table and set all of our stuff down and made a game plan for how we were going to break up our time over the weekend. We first decided that we were going to take some time initially and talk through the process and fully understand what we were going to be making then try to break that up into individual steps for each of us so that we would all have a game plan and steps to follow so that none of our time would be wasted and that each of us would not have any time that we were not able to do anything, We quickly found out that nothing ever actually goes according to plan but at least we tried.
After getting our stuff set up we went back over to the other building because Google was giving a talk on Google Cloud and because none of us were very familiar with Google Cloud we all went over to try to learn how to get it set up. This meeting was pretty helpful The guy giving the presentation actually worked for Google and wasn’t just a student. We got the sample website set up and working and got our free \$100 credit for the platform that we get at all hackathons to let us mess around with it at no cost to us. After the presentation, we got back and got to work white-boarding out our plan.
I started drawing out what I thought the most important parts of the app would be and talking through what I was thinking with the rest of the team. Our app would have 3 main screens, one for players to set up the game mode and change the settings of the map, another for connecting to the game, and the last the game itself. There were a few other screens that we were thinking of adding later but that we didn’t have time to make such as a leader board and lobby. For the game modes, we listed all of the settings that we wanted to have control over for each game. Finally, on the left of the whiteboard, we listed the main things that we needed for our idea to become a reality such as being able to use the GPS on a phone, real time updates across different devices, adding the actual game logic, adding a UI, etc. Once we had everything written out we got to work actually making the app.
Originally I was going to build out the UI, Ben and Jack were going to work on the game logic, and Keegan was going to get the cloud set up. We started working on it and everything was going smoothly until I made a login screen using Google’s material web components and gave it to Keegan to deploy and that was when everything stopped working. The web app would just not deploy and no matter what we did we had loads of errors every time we tried to change settings to figure out what was wrong with it. About this time was when Ben and Jack started heading to bed because without the cloud service deployed there was only so much they could work on with the game logic. Keegan and I stayed up the rest of the night working on getting the cloud to work and to deploy or app. The frustrating thing about deploying the app to the cloud was that every time that we tried to deploy it Google Cloud would rebuild the entire application and it would take close to 15 minutes every time so if we wanted to test something we wouldn't know if it worked until 15 minutes later.
Before we knew it the time was getting close to 8 AM and breakfast. We decided to take a break and head down to get bagels. During breakfast, Keegan and I talked to one of the guys working for one of the sponsor companies of the event (I forgot his name) he was a really cool guy that told us about how he liked living in Kansas City and working in a tech company down there. He also gave us some helpful advice on what we could try to maybe get out app working.
We started plugging away at getting the cloud service to work for the next few hours still making no progress on what we were doing. At this point, Ben and Jack were back and started working on their part of the project again and were making good progress on integrating Google Maps API to be able to track users location and create flags for the user to go and capture. Their development was done all locally because at that point we did not have anything deployed. Both Keegan and I were getting frustrated at this point, we spent a good 20 some hours trying to get google cloud set up and got almost nowhere, Keegan was going through all of the node modules and everything that came with Google’s material components package while I started from scratch and tried to get something that was super simple up and working. I eventually got a very simple website up and working and added the components that we needed and eventually just copied the code out of the node modules and put them directly inline to our project and we ended up with only a few actual files because we were scared to mess with routing in Google Cloud, but it finally worked.
After Successfully getting the website deployed on Google Cloud Keegan and I decided it was time to take a break and finally get some sleep. I was planning on going to bed and getting up about an hour before the judging started to the devpost page finalized and to help with any last minute issues that they were having. Ben and Jack were fast at work making the game logic as fledged out as possible with what they had and were able to do with the limited time.
I woke up a bit earlier than my alarm was set for, I guess that’s what happens when you drink an insane amount of redbull the day before. Once I was up I went back to the group who was hard at work getting things finalized and ready for the demo. At this point our app allowed you to login and go the the game screen, on the game screen it shows an overlay of Google Maps and your position on the map as well as a few generated points that you were able to walk over to and change the color of. This was defiantly the minimum viable product if even but at least it was something that we could show that explained what we were trying to do.
As a result of the terrible way I got Google Cloud working by removing all dependency’s we were not able to get more than one file working for each page so everything had to be done inline for all of the logic and everything on the app which caused a lot of problems. It was working at least and we had a decent understanding of what we did and what it was doing at least.
We all drank way to much Redbull but it was totally worth it! Everyone on the team put in a ton of effort to making our app happen and even though because of the cloud deployment we were very short on time we all had a great time and learned a lot. In the future we will probably try to make something similar for another hackathon because we made so much actual progress other than just setting up the most basic back end part of the app we could probably take this same idea and make something very impressive that looks nothing like what we made here. The planning and Idea that we came up with was definitely not the problem, our problem was how long it took us to figure out how to deploy the app to the cloud.
As always we had to get the DevPost page for our project set up. For this I took a few pictures of the team and of the app running and went to work writing out the fields that it has us fill in. The link to the DevPost page is at the bottom of the article.
Paint the World
I did development on the Google Cloud platform and brought our project to life through infrastructure development. I helped my team bring our app online and make it a working, scalable game!
I worked with the google maps API for the first time. Me and Ben discovered how to input a google map into a web page as well as how to receive constant updates from a device. The scripting is written in Java script a language which I had little experience in but now feel comfortable with.
I forgot to do a write up on devpost
Ben didn’t either
During the Judging of our project we had two sets of judges come over to our table and score our project. The judges were professors that taught at KU. The first set of judges came over and were pretty critical of the main premise of our project saying that GPS is not the most accurate way to locate a phone and that it might not work depending on the environment of the user. The other judge Brian McClendon was actually the creator of Google Maps and was impressed with our project and asked us how we liked working the the API. He also gave us some good idea’s of things that we could improve on our app. Overall the consensus of the group was that compared to the judging being done by the companies sponsoring the event having professors do it was not as good. We thought that the professors were very interested in the technical aspect of what we created whereas the company representative’s at other hackathons were looking more at the practical application of the idea and how far we got along to making that with a minimum viable product. Overall the judging went fine but this was the main thing that we would like to see change at HackKU for next year.
After getting our project judged we all got our “I Demoed” MLH stickers which is the official certificate of you participating in a hackathon! We also went around to the other projects and looked at what everyone else did. Some of the projects were really cool. It is great looking at what others have created at these events, you spend so much time working on your own little project its nice to see what the other teams have made when everyone is done.
“Overall we had a great weekend down in Kansas. The space we had was great, the food was pretty good and we all learned a lot. What I learned from the time before this was to set out a plan, which we did but the hard part was being able to execute the plan. Next time what we should do is really access what we think is realistically possible and scale back the idea until we think it is way to easy because that is when realistically you have enough time to actually finish something.”
On the way back from KU we stopped in Kansas City at this burger place that was really good, would defiantly recommend.