During my first year in college, the word “hackathon” had always been a nightmare for me. I couldn’t imagine myself going to one because I kept asking myself what I would do there; I hardly knew Java and some basic data structures. For some odd reasons, I decided to go to one anyway. So to start off my second year of college, I paid an extra 50 bucks to move in a week early. The next weekend, when my peers were busy carrying their TV’s and fridges to their new homes, I found myself downtown San Diego, ready to hack.
The hackathon was hosted by Active Network, a leader in activity and participant management solutions, at Co-Merge Workplace (they had very comfortable couches!). The theme of the hackathon was “connect people with activities and make the world a healthier place”. One of the requirements of the event was the use of Active Network’s API. This was very exciting for me then because I knew nothing about API except what it stood for. After talking to other participants, I learned that API’s usage was very critical in development, prototyping, and data gathering. Glancing over what Active API could provide, I sketched up an obvious idea: a website that could connect people in the same local area so they could attend outdoor activities together. Yes, I knew it was not a viable product, but hey… I was just trying to learn how to use an API…
Coming to the hackathon, I knew enough of HTML, CSS, and Bootstrap to make a front-end only website that looked a little bit better than Times New Roman on Word. I wanted to include more features to the back-end, so I thought messing with the data gathered from Active API would be a good use. The basic logic flow I came up looked something like this:
- Get user inputs (their name, location, and interested activity) from a front-end website
- Store users’ inputs in a SQL table
- Call Active API to request a list of activities formatted in JSON
- Store JSON on the webserver for parsing
- Query for matching activities from JSON file
- Display results as a table on the website
I spent the first few hours mocking up a simple front-end website that had a few bootstrapped forms and buttons to take in a user’s name, contact information, location, and their interested activity. To actually store these information to a database, I figured PHP would be the most appropriate language to do so. I picked up a few tutorial blogs and read about PHP. Writing and reading information on the database was not too difficult, since my web hosting service had a user-friendly phpMyAdmin and SQL web interface. Next, I learned how to use an API. Much to my surprise, using an API was just simply an authenticated URL call to the API provider. The folks at Active Network made the authentication process very simple for developers; they even had API engineers walking around to help participants with the setup.
The most challenging task for me up till then was reading JSON. I did a lot of reading on JSON to understand how it was structured, hoping to be able to parse it. It was also when the night started to creep in and my caffeine level was quite low. Anticipated this, the Active Network staff brought us midnight dinner from Phil’s BBQ and coffee to help us through the night. I actually stayed up through that night, although I was pretty slow on the development process. When it was time to display data parsed from JSON, I was so tired that such a simple task was so buggy. But in the end, I still had a prototype of what I thought of in the beginning. I also learned a lot of different things along the way.
So I went up and presented, in front of a panel of judges and audience. Unfortunately, I didn’t place at the competition. But! Among the audience was Mr. Bret Stateham, a technical evangelist based in San Diego. He approached me and asked if I was interested in being a Microsoft Student representative for UCSD. I immediately got his contact information and set up a meeting afterward. Bret had helped me a lot from the application process to the ongoing events on campus.
My first hackathon experience was very satisfying. I was very proud of my ability to learn new concepts relatively quickly and make good connection with other professionals in the field. I realized that once I exposed myself to learn, I excelled. My plan for this academic year going forward is to attend as many hackathons as possible until I can completely remove my fear of hacking.