Kathryn's Portfolio

Photo-bot - a photo-sharing and editing web application

One of my favorite projects for class so far was the development of a photo sharing and editing site using Google App Engine: http://photo-bot.appspot.com. Project requirements included:

  • Upload of photos (any size)
  • Tag photos
  • Share photos with friends
  • Edit photos (resize, rotate, flip)
  • Delete photos
  • Search photos

I went above and beyond the requirements by using AJAX for improved usability. Photos were deleted and edited seemlessly without page reloads because of AJAX. In addition, I implemented a couple jQuery plugins to create a unique user interface. Users can scroll through photos using the Scrollable plugin and photos are resized using jQuery Resizable.

Developed with:
Google App Engine, python, HTML, JavaScript (jQuery), AJAX, CSS

Master's Project - Android-iPhone Communication

For my master's project, I continued my work on the communication framework for mobile devices. Since the iPhone is a very popular device, we decided to port the Android framework to the iPhone. My teammates and I used the design of the Android version as a guide for the design on the iPhone. We utilized a couple libraries, including JmDNS for Bonjour discovery on the Android and ASyncSocket for TCP sockets on the iPhone. To test our framework, we implemented the distributed contact search application.

The framework has been quite successful so far. There was much interest in the project. In fact, one of the other master's project teams is utilizing our framework in their own project!

Teammates: Jasper Roel, Peifeng Kuang

Our Presentation

Summer Research - Motel (Mobile Intelligence)

Over the summer of '09, I was honored to have the opportunity to work on Prof. Rollins' team to develop an Android application to study collaboration and parallel computing in mobile devices. For the project, I helped develop a framework that allows for communication between devices. To test our framework, we developed a distributed contact search application that searched for contacts on all devices running our framework.

Teammates: Jeremiah Porten and Colin Bean

Summer Research - Battery Consumption

I helped research the effect of mobile, collaborative environments on battery consumption. My contributions to the project included developing software that mimicked a typical laptop user. I also ran several experiments on my computer that tested the battery consumption while running as baseline, running LimeWire as a leaf node, and running LimeWire as an ultrapeer. I created a python script to calculate the slope of a line using the equation for linear regression. Finally, I helped interpret the data that was collected and summarized it for use in a paper.

Teammates: Jeremiah Porten

Summer Enrichment Program 2009

The Summer Enrichment Program is a program for high school girls interested in learning more about Computer Science. I was a TA for the program this summer. Each TA choose a topic to teach the students about. I choose Java SunSPOTs, small wireless sensors that have buttons and LED lights. I prepared a short lecture covering the basics of SunSPOTs and created 2 new exercises. The first exercise I created was an extension of a demo that allowed the sensors to send "tweets" to Twitter. The girls added a couple lines of code to the application to personalize their sensor's tweets. The other exercise was an application that allowed them to "find a friend". They answered 8 multiple choice questions about themselves, placing their answers in the code. When a sensor was brought near another, the lights lit up according to how many questions were answered similarly.

I had actually come up with the idea for the "find a friend" application a while back when I first saw the SunSPOT. I finally had the opportunity to test this app with a large group. The girls loved it! This is a quote from one of the girl's surveys: "The sunspots social project should be the ice breaker for the class! Or at least one of the first things we do." It was so nice to get this affirmation about my application.

To find out more about my experience, please feel free to read this letter.

INSync - a File Sharing Application

For my Distributed Software Development course, I spent the semester developing a file sharing application that allowed different devices to share files over the internet using the Restlet framework. Once the application was installed and running on a particular device, the user could choose a root directory to share. The files in this directory would then be accessible to all other devices running the application. Backups could be made across devices, and deleted files could be restored if backups were available. Google authentication using the AuthSub API was required for login. This allowed access to the user's Google Docs files. Files could be uploaded or downloaded to the uesr's Google Doc account. In addition to Google Docs, I incorporated Android devices as well. Images captured by the Android camera could also be shared across devices.

Developed with:
Java (using Restlet framework), HTML, JavaScript (jQuery), CSS

Games - Stunt Driver, Tank Force, and Pong

During Spring semester of 2009, I took a course on Game Engineering. For the course, we used OGRE (open-sources graphics rendering engine), a free C++ library. We used Blender to create the 3-D meshes. The 3 games I developed for this class were Pong, Tank Force, and Stunt Driver. The pong game was just a basic, 2-D game with simple physics. Tank Force was a first-person shooter that I developed with Jeremiah Porten. Stunt Driver was a racing game in on an RC-style course that I developed with Jasper Roel and Jeremiah Porten.

Developed with:
C++

USF Women in CS Website

I'm excited to be the webmaster for the USF Women in CS website! The goal of the site is to reach out to potential students and also inform current students of upcoming activities. I've made many improvements to the site to reach these goals, including changing the layout, adding an event calendar, and starting a wiki. In addition, I've added analytics to the site to track viewers.

Developed with:
Javascript, HTML, CSS

Java Class Generator

As a Java developer, I find that I often have to build classes with private members and create get and set methods for each of the private members. The process is repetitive, and it seemed like it could be easily automated. So, I created a Java Class Generator to create simple, public classes with private members, and get and set methods for each member. The application runs on Javascript and a bit of jQuery.

Developed with:
Javascript (jQuery), HTML

Threads - an email service

I had the opportunity to create an email application for my first project in grad school. The app connected to a pop server, saved emails from the pop server into a database, displayed the emails in an online UI, and sent emails via an SMTP server. I also added extra features to the email client, including spell check, spam filtering, search (using Lucene) and a contact list. Here are some screenshots of my project, and here is my documentation.

Developed with:
Java, SQL

Libraries used:
JavaMail, Jazzy (spell check), Jasen (Spam filtering), Lucene (search), StringTemplate

Project Buddy

After hours of writing, moving, and then deleting tasks using Notepad, I realized I could use my PHP coding skills to build a task list that could do the same thing but much more efficiently. I immediately started developing the application, which I eventually termed 'Project Buddy'. It was originally built using solely PHP and MySQL. But after learning AJAX, I knew this technology would make the list much more dynamic and user-friendly. I easily translated the code in to an AJAX solution, and even added several new features, including Meeting Notes, regular Notes, and Recurring Task functionality. I am currently working on an Address Book section, as well as working out any bugs that I've come across.

To view this application, please use the following credentials:
Login: guest
Password: guest

Developed with:
HTML, PHP, JavaScript, MySQL, CSS

Check Point - Corporate Section and Datasheets Page

After 6 months of working at Check Point as an Intranet Associate, the team knew I was ready to take on the Corporate section of the Check Point web site. I started working on the Company Information, Public Relations, and Investor Relations sections. My daily tasks include:

  • Developing new pages using templates
  • Creating graphics using Photoshop
  • Updating HTML to display new content

My responsibilities also include updating the datasheets page. The datasheets page was originally a static HTML page. To create a more interactive user experience, I redesigned the page to include a drop-down menu that changed the content of the page based on the user's selection. With this new feature, users can find the information that they need quicker.

Developed with:
HTML, XML, JavaScript, CSS

Service Dogs - UC Center for Animal Alternatives

My senior year in college, I was looking for something new to do for an internship experience. I learned about the UC Center for Animal Alternatives in one of my psychology courses and decided to apply. The main task of the internship was to create web pages for the Center's web site containing information about service dogs. I had no previous experience creating web pages, but I picked it up very quickly. When the project was complete, my Police Dog page was one of the top-viewed pages in the Center's web site. In addition, it's still visible as one of the top Google search results for 'police dogs'.

Recently, I revisited my pages and realized they needed a 'reskin'. I created a CSS file and removed many lines of unnecessary formatting code.

Developed with:
HTML, CSS

Code Library

Writing web applications has become one of my favorite hobbies. When writing code for a new project, I often reuse code that I have already written for other projects. To easily access pieces of code that I use regularly, I created a library to help me find and access that code.

Developed with:
HTML, PHP, JavaScript, MySQL, CSS

your text goes here.

In my free time, I enjoy drawing comic strips. I decided to create a website specifically for my strips.

To make site updates easy, I developed a simple content management system that allows me to add new comics to the site using an online form. I simply upload an image, add a title, give it a category, press submit, and the new comic appears on the site!! Awesome.

Developed with:
HTML, PHP, MySQL, CSS

Kathryn's Reviews

Since I enjoy watching movies and going out to eat, I decided to create a site for my movie and restaurant reviews. The site has 2 different sections: one for public viewing and the other for content management. The section for public viewing allows users to view reviews based on their category. It also allows users to search for specific reviews. The content management section allows me to add new reviews to the site. I can also edit or delete any reviews that already saved.

Developed with:
HTML, PHP, MySQL, CSS