Monday, October 22, 2012

Unwaitlist v1.0 at HackOlympics

Unwaitlist is my first app. Currently, the cron jobs are disabled because enrollment period is closed, but the signup, introductory status checking and email/ text works.

I made it at my first hackathon last Saturday. HackOlympics. It was just two blocks from my apartment, and had I think 40 people at least. Didn't know most of them, but met this guy called PA who was really friendly. Among the projects, there was a tutorial aggregation social site TUTE, a text message help site TextGuru that crowd-sources advice, a site that crowd sources for chefs to cook and deliver to you Let Me Cook That For You, and a site that takes your background image or video, then scrapes Google Image search for content-related and color-correct images and makes a collage from those images. RedBananaPenguin.

The winner, music++, was a Tap dance like music game that only uses javascript "because HTML5 is the future, not flash", where the programmers determined the movements captured on the laptop's webcam by comparing frames. They won the Tech award and Grand Prize Winner.

12PM : 12PM

I signed up solo, and there were 4 only other solos, but before the hacking began we had to pitch ideas to each other or get pitched to by teams, because the organizers preferred it. And I agree. So much more can be accomplished. But generally the vibe was either, "I really want to get my idea off" or "I code a lot better than any of you so I wanna do my own thing." A senior teamed up with me. It was also her first hackathon. She didn't know higher-than-C++-level languages, but did a couple of databases classes, so she wanted to make one. I didn't know anything about databases. Unfortunately, she left later without leaving a db, so we didn't mesh our code together.

Anyway, I planted a bug that was very lame when I rooted it out later. The things is, the user inputs a url, and the app parses the html for stuff. But instead of opening the correct page, we were going to a general page. Think of it as searching for 'X' in google, and coming up with 'www.google.com/?=X' but being re-routed to 'www.google.com'. I thought it was redirecting to the main site and taking away my query string. Finally, I suddenly realized that I'd been cgi-escaping the ampersands in the url I was passing, mucking up the url.

After this bug, things went fast. I read up some on NoSQL, but the GAP Datastore was exceedingly easy to use for basic stuff, so I had a database up in like two minutes. Then I wrote up two Cron jobs, one to periodically check for whether or not the class status' hand changed, then to text/email the user; one to clear out the database before and after enrollment period.

Unfortunately, I didn't have the app done by the demo pitch, but I couldn't stop working on it and it pretty much finished itself at home.

Future

The only thing is that I need to see how this app works when enrolling actually happens, because now that enrollment's over, we don't have classes changing from 'Closed' to 'Open' or vice versa. What happens when there are many users? How efficient is my database querying, and Cron jobs? I know that the status-checking, user-input, and text/email functionality is working. I also wish that the user didn't have to paste the url over. While I have a couple of checks to hopefully prevent breakage, it's not the most user friendly implementation.

No comments:

Post a Comment