Tally is a Pinterest budgeting tool that allows users to visually see and group their wishlists and see what the expected costs. We used the Ionic framework (AngularJS) to develop a progressive web app. Features included Pinterest integration, dynamic drag and drop, budget calculation, and data persistence for user accounts.
Jukebox is a collaborative Spotify playlist builder, allowing users to contribute to an ongoing playlist at an event and vote songs up the queue from their own phones. We used the Supersonic framework to develop a mobile web app. We included Spotify integration, playlist management, and contributing to and voting on another user's playlist.
For our Knowledge Representation and Reasoning course, my team created a computer player that tracked all guesses made by each player and use this information to win the game. The computer player used a SAT solver (ZChaff) to keep track of where each card was located, whether it was in its own hand, another player's hand, or in the game's solution. Since each card could only be in one location, the computer player would add what it learned to the SAT solver, based on the guesses made by other players and who was able to refute those guesses, until it could determine the solution to the game. We used created this player using Python and the ZChaff SAT solver.
For our Machine Learning course, my team used the Spotify and EchoNest API to gather song metadata. We then used nearest neighbor, decision tree, and Naive Bayes net classifiers to analyze which classifier was most effective in predicting whether a song would be a Top 100 song of the year as ranked by Billboards. We found that none of the classifiers worked well because the target set was so small, only one hundred songs out of the thousands of songs that are released each year. However, the decision tree and the Naive Bayes net classifiers worked better than the nearest neighbor classifier.
At HackIllinois 2015, my team created a Pebble watch app for passive time management. It simply keeps track of how much time the user is being unproductive and vibrates as a reminder that the time may be better used elsewhere. The Pebble app works in conjunction with a Chrome extension. The Chrome extension checks whether the URL the user is visiting contains any 'unproductive' terms. If so, it updates the status on Firebase, which notifies the watch, starting a timer. At every 'x' time interval, the watch will vibrate to gently remind the user that time is passing.