Senior Projects

Senior projects by academic year

  • 2009/2010
  • 2010/2011

2009/2010

PGP on Android Phone
Vinit Agrawal

PGP (Pretty Good Privacy) is an email encryption service which provides cryptographic privacy and authentication. Although PGP has been already implemented in most of the email-systems for desktop environments, it has still not been implemented in most mobile and embedded devices. So the project entails an open-source solution of providing PGP Support in Android phone. The functionality has been achieved by successfully integrating java API for Open PGP, Bouncy Castle in Android. The future goal of the project is to integrate PGP with the native email client available in Android- K9Mail.

Implementing an Ad-Hoc Communication Protocol on Android Platform
Chris Fei

POSIT (Portable Search and Identification Tool) is an Android application written by students with the Humanitarian FOSS Project. The application helps aid search and rescue efforts by allowing the transmission of data recorded in the field to and from a central server. Data is typically sent to and from an Android device via a WiFi connection or cellular data network such as 3G. However, when POSIT is deployed to help relief efforts in a disaster situation, there is no way we can rely on the existence of such wireless infrastructure. Thus, POSIT and the Android platform need a way to allow devices to communicate directly with one another, without employing a central server. That is, we need a way for Android devices to form an ad-hoc network. We have implemented ad-hoc communication as a module in POSIT by using the Random-Walk Gossip (RWG) protocol, developed at the Real Time Systems lab at Linkoping University in Linkoping, Sweden. The protocol functions with reasonable latency and with no knowledge of the rest of the network, making it suitable for mobile devices. POSIT's ad-hoc communication functionality currently supports sending and receiving text-based message. I report results of field experiments testing the limits of both my implementation and of the protocol itself.

Integrating POSIT into Sahana
Rachel Foecking, '11

This project is an attempt at integrating two free and open source software systems related to disaster management: POSIT and Sahana. Sahana is an all-purpose, one stop disaster management system. It is a web based collaboration tool that addresses the common coordination problems during a disaster: managing aid and supplies, finding missing people, managing volunteers and the victims themselves. POSIT is a portable, open source tool written on the Android platform for use with mobile devices that aids search and rescue efforts by enabling them to transmit field data between users and central servers. This project establishes a basis for communication between Sahana and mobile phone software like POSIT. Sahana administrators and users would benefit from on-site information that mobile devices can provide by giving them more awareness of the situation out in the field. The POSIT project (a small, homegrown effort) will benefit by being associated with a well-known FOSS project, which might spark contributions from newly interested developers.

A Streamlined Approach to Doctor-Pharmacy Communication
Chris Hawley

Physicians spend a non-trivial amount of their time calling in prescriptions to pharmacies, resulting in a net loss of time that they can be helping patients. Innovations as simple as the “waiting room in the doctor’s office” have helped to decrease this time loss. Example: A doctor’s time, as a skilled professional, is relatively more valuable than the average person. Therefore, as a society, we should try to maximize their time by enabling them to always have a patient to help. By having a waiting room full of queued patients, while the doctor is working, he/she always has someone to help- i.e. no wasted time. A further solution to this problem would be to minimize the time doctors are dealing with clerical work. My project’s solution is to create a secure online system where doctors can prescribe medicine for patients, pharmacies can receive the prescriptions, and patients can adjust the prescription at their convenience. This is an improvement in efficiency for both the doctor’s office and the pharmacy, an improvement in patient convenience and a victory for the environment by removing much of the paper involved in this process.

The Kindle Remote
Dana Merrick

Have you ever wished you could remote control your computer? With portable computers getting smaller and more powerful, the role of the desktop is shifting towards a media center. Many smartphones come with tools to control your media library, but not everyone uses one. My goal was to design a piece of software that would allow me to control my desktop from a device that I do use -- Amazon's Kindle™ ebook reader. Many things had to be considered, including feature set, security implications, and application design, in addition to many Kindle-specific problems, such as working around limitations on the display, processor, and most importantly the ability to run third party applications (for which the Kindle does NOT have support). The result was a series of clever design choices that led to the Kindle remote, a personalized remote control for the desktop.

Grammar-Aware English-Latin Machine Translation
Paul Mertens

Consider the following situation: you have a text written in a language you are very familiar with. You wish to translate it into a language you are not familiar with. You want the translation to be accurate, but once translated, you have no way of verifying whether the translation is accurate or not. Regardless of how the text gets from one language to another, you want to be reassured that it the meaning of the text is faithfully upheld. The goal of this project was to design and create a program that would translate from one language to another with perfect accuracy under these conditions. Time, speed, memory usage and overall convenience come secondary to the primary goal of Accuracy. For the context of this project, I chose two languages that I am personally familiar with: English and Latin. In operation, the user inputs text and identifies the grammatical structure of the text manually. Given this information, the program then converts the grammatical structure of the source language into a corresponding grammatical structure in the destination language. It then translates the individual words into their new form. A database was used to store a subset of the vocabularies and grammatical structures of the English and Latin languages as well as the relationships between the two. The program uses Java to manage the application logic, Apache Derby to manage the database logic, and Apache Tomcat to manage the server logic and provide an interface for the user. The eventual product was a web application presented to the user through JavaServer Pages.

Trinity Softball Play By Play Application
Jessica Tait

College athletes play for schools that are often far from their homes, families and friends. Therefore, it is often difficult for those people to see the games in which their loved ones compete in person. This can make it difficult for fans to keep up with the team. One solution to this problem is to broadcast the games online through statistics. This idea is similar to the program that Major League Baseball uses to broadcast its games online called Gameday. The Trinity Play-by-Play web application is comprised of two parts: an administrator page and a viewer page that are written mainly in Actionscript, Javascript, mySQL and html, among other programming languages. The administrator page includes buttons that someone watching the game in person can use to record the events of the game. These events are uploaded to a web server where the viewer page can access them so that anyone at home can go to the viewer webpage and be able to follow along with the game. The main statistics that are recorded are ball, strike and out counts, the type of play that occurs, the scores, as well as the names of the teams playing, their players and the player’s statistics.

Writers Workshop Website
Sarah Thayer

The Writers Workshop Website (http://writers-workshop.org) is a forum-based website aimed at helping writers receive constructive feedback from fellow writers. Many other writing websites require intensive registration forms before the user is allowed to view creative pieces. Most do not prompt constructive comments, so writers struggling with a work do not get help to improve upon it. The Writers Workshop Website does not require any registration to view the forums. This transparency allows potential users to get a feel for what the forums are like before joining the community. Multiple literary genres have been included in the forums, and additional comment fields encourage helpful feedback. Implementation of this project initially included database configuration and server setup with the aid of phpMyAdmin and MySQL. For software, Wordpress.org (an open-source Content Management System) was used in conjunction with modified PHP code and CSS to achieve desired functionality and design. Additional technologies used include FileZilla, BBCode, Facebook, MeetUp, LinkedIn, and VastHTML. Results have been positive: the website launched on March 17, and after just over 5 weeks, total views were up to 747 and there were 18 users, 18 posts and 15 topics on the forums. The Writers Workshop Website also includes forums dedicated to writing prompts and site feedback, as well as mobile-friendly viewing, automatic broken link checks, and a constantly-updated “Tips and Tricks” page for users.

Musical Composition Assistant Application
Keith van Stolk-Riley

Most musical compositions are formed using a set of rules, namely Music Theory, to form a guideline of what will please an audience. These rules dictate which chords to play in backing a certain melody and which notes can be written within a certain key, for instance. Music Theory’s rule set was used to help create an application meant to aid an aspiring songwriter in writing a composition. The user is prompted to begin a new composition and given a choice between starting from a chord progression or a melody. Each musical chord has specific member notes which make up the chord. This relationship is used to generate the complement of whichever aspect of the composition the user has chosen to input. The output is then written to a text file using ABC notation. ABC notation is a standard for writing notated music using plain text characters, so it can be opened in any text editor and easily read by the user. There also exist many free and open-source utilities which read ABC notation and convert the document into other formats; like PostScript for viewing the notation on a musical staff, or MIDI for listening to how the document sounds. Since the explosion of Web 2.0 and user-generated content on the internet, the streamlining of content generation for the user in any form is very important. Future work will focus on expanding the scope and musical complexity of the program beyond its current limitations of one key and a subset of defined chords, as well as refining the generation of complements to the user’s input.

back to top