Show & Tell
These are projects that I'm working on currently or worked on in the past. Some of my code can be found publicly in it's entirety on bitbucket.
|Built with||django Python RQ docker|
|Built with||Flask docker Selenium Python RQ|
|Built with||django elasticsearch Python RQ AngularJS asyncio Grafana nginx docker scrapy|
|Built with||django backbone.js jQuery Apache Solr Celery scrapy|
|Built with||django Firefox Add-On SDK dojo jQuery|
During winter break 2013 I teamed up with a friend to create coursepickle.com. At Virginia Tech, there was effectively no way to be notified when a seat opened up in a class that was presently full. We solved this problem by creating a service where people could input course numbers and be notified via e-mail or SMS when an opening was found.
I created the scraper in Python that took all the class data from the Virginia Tech course catalog and timetable of classes and placed it into our own database. The scraper is capable of opening the course catalog asynchronously in a number of threads to speed up the process. With all the course information, we could run full-text searches to match courses on our Apache-Solr search server.
I also created the entire front-end. The front-end was built as a single web page application. I used the backbone.js router and html5 push-state to dynamically create views and build URLs without hitting our Django back-end. I modified twitter's bootstrap typeahead plugin to display course results in a neatly formatted table. We created a simple RESTful API for creating and managing orders that visitors could place.
All of our application parts combined use less than 512 MB of memory so we are able to host on the free tier of AWS (a micro EC2 instance and an RDS instance)
Idderall went through a major refactoring with to upgrade from dojo 1.6 to dojo 1.8. The new dojo uses AMD modules among other changes, and requires major restructuring. The upgrade and refactoring also allowed syncing Idderall across multiple Firefox browsers. So users could have the same settings on their laptop and desktop, for example.
Audioquarium is a music discovery site. A Python script on the back-end scrapes RSS feeds from music blogs for mp3 media. When new media is found, the id3 tag info is extracted from it and the song is added to a database.
The front-page "incoming" shows media that has been found most recently. Users can play the music directly from the site, and continue to navigate while the music is playing. The website was built as a single-page web-app for this purpose.
Users can login via facebook and add songs to their favorites.