Senior Projects

Senior projects by academic year

  • 2009/2010
  • 2010/2011
  • 2011/2012
  • 2012/2013


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 ( 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, (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.


Prasanna Gautam ‘11
Faculty Sponsor:  Timothy Richards

Distributed Hash Tables (DHT) is a storage system that provides a hash-table interface distributed over many individual devices on the network. Commonly used by Bittorent applications and network providers for redundancy, in both cases the nodes can come in and out of the network unpredictably. This is analogous to Mobile Ad-hoc networks in mobile devices where devices communicate without a common network provider. Project Thor was developed to simulate these DHTs over Adhoc networks. Since the existing network simulators were focusing on low level link or network layer, Thor was developed to study DHTs at a higher abstraction level using Clojure - a functional programming language running on Java Virtual Machine (JVM). A domain specific language called Hammer was written to facilitate this task. Hammer is evented and allows for Clojure functions in the simulation which provides concise and expressive syntax. Upto 10,000 nodes were simulated running DHT on Adhoc network and time, power degradation and network performance were measured.

Dimitar Gochev ‘11
Faculty Sponsor:  Peter Yoon

This project explores the area of General Purpose Graphics Processing Unit (GPGPU) programming with nVidia's CUDA technology. More specifically, it concentrates on the Convex Hull problem, which has various applications in computer visualization, pattern recognition, geographical information systems, statistics and other fields. The experiment tries to determine whether a parallel Convex Hull algorithm running on the nVidia Tesla GPU can achieve better runtime performance than a conventional CPU implementation. It is known that this problem cannot be solved faster than sorting, and has a computational complexity of O(n log n) in the general case. Parallel solutions to the problem have a higher level of complexity, but make up for it by utilizing multiple processing cores simultaneously. Runtimes are compared for different-sized inputs to see if this new technology is more suitable for solving this problem.


Sheena Elveus ‘12
Faculty Sponsor:  Madalene Spezialetti

The ‘A Walk Down Memory Lane’ Website allows members of Trinity community to interact with others, regardless of when time was spent here, and reminisce over memories involving the Trinity campus. Users can go through galleries of images and mark them with their recollections, big and small. They can send messages to their friends, upload photos, and just catch up with people they knew. As a computer science major and architectural studies, this project combines the technological with the visual. This website is designed to be used by all Trinity members, including students, faculty, and alumni.

Ben Hartung ‘12
Faculty Sponsor:  Peter A. Yoon

Social media platforms offer a large amount of data that can be used to find and plan events, but currently, there are no applications to view all the available event data from multiple platforms. Using the Android operating system as a development platform, an application was created to allow users to view information about events occurring at and nearby Trinity College by gathering data from their social media accounts and from public event announcements. Using the Facebook API , the application draws  data about events published by friends. Additional information about events is collected using  RSS feeds containing details about events planned around Trinity College. Posts made with Twitter are used as another source of events and are retrieved with the Twitter API, sent to a a server and stored in a database. Once stored these posts are filtered by means of a support vector machine and separated into two categories: those that contain event data and those that do not. Any posts containing event details are sent back to the user. Details about public events are collected using the information available from the APIs of five public event announcement websites: Patch,, Eventful, Eventbrite, and Upcoming.  Having collected this data, the application displays the events in two formats. The first format invovles a series of filterable lists containing event titles which could be expanded to display details about each event. The second centers around a map interface that displays the location of events in the selected region. With the increased use smartphones, there is a growing audience for easier mobile  event identification. Further work will focus on making the application more appealing by improving the user interface and increasing the accuracy of the filtering for Twitter posts.

Richard Sung ‘12
Faculty Sponsor:  Ralph A. Morelli

In the past few years, Twitter has become a major social networking service with over 200 million tweets made every day. With this newfound source of expanding information, can people stay up to date with what others are posting? Along with the increasing processing power of computers, is there a way computing can analyze tweets on a large scale? Moreover, can computers understand what people think based on what they post? This senior project explores this question by determining the positive or negative sentiment of twitter posts by using a machine learning algorithm called Support Vector Machines. Based on a labeled dataset of tweets, a parser then extracts present features in the text to create a vector. Once a collection of vectors is compiled, data is trained and tested to create a working model, which can then be evaluated to determine the effectiveness of the classifier. Based on a dataset of 359 tweets and 329 features, a model can accurately classify tweets as high as 74.84% using a linear classifier.

Gregory Vaughan ‘12
Faculty Sponsor:  Madalene Spezialetti

In the last five years, casual gaming has exploded into the video game market. With the promise of products that have a social component, are easy to learn, and are easy to play, casual gaming  attracts many who previously would have never considered playing video games. Ka-Boom! seeks to develop a browser based video game, modeled after the well known Bomberman series, that is simple and focuses on player vs. player competition. Since the goal of Ka-Boom! includes multiplayer interaction, a client-server networking model is adopted so that players can interact with the game, as well as each other, over the internet. To develop this model Java is used for the server while the client consists of Flash and Actionscript. Players visit the site hosting Ka-Boom! (, create a user account, play games against other users, and view their in-game statistics. Ka-Boom! is one of first multiplayer video games that is free, simple, and available over the web.


Rahul Chatterjee ‘13
Madalene Spezialetti

WarBot is an Online-Multiplayer-Battle-Arena with support for up to 10 players simultaneously. It allows friends to team up as robots and fight an opponent team and to reap the benefits with an in-game gold system that allows the purchasing of upgrades for your weapons to further bring about the enemy’s demise.  

The aim of this project will be to emulate an industry standard Multiplayer Flash Game with all the necessary implementations required to make it a viable competitor in a real-world market. The tools used in this project will also be that of industry standard IDEs such as Flash from Adobe’s Creative Suite and the popular java IDE Eclipse. The features of the game will include multiplayer support, an achievement system, chat rooms to serve multiple clients, robust gameplay and a certain degree of character progression all of which are expected in today’s multimedia.

Nyi M. Htet ‘13
Faculty Sponsor:  Ralph Morelli

This project is a cross platform mobile application that addresses the issues of customizable data collection, and data visualization in one application package. The goal of this project is to provide an easy way to create and share custom data forms in order to perform data collection as an individual or group project, and integrate the data visualization component into the data collection process. With just a smart phone or tablet, and a free Google Cloud storage account, data collection can be performed through customizable forms, and the collected data can be saved on the device. The collected data is then sent to the cloud, and connected to the cloud based data visualization tools. The visualized data can be shared among the users or downloaded and saved onto the device.

Pauline Lake ‘13
Faculty Sponsor:  John Ridgway

The Computer-Technology Helper is a digital repository that allows educators to view, edit, create, upload, and comment on teaching materials related to Computer Science and Technology.  More importantly, it provides a social space in which educators can collaborate and share teaching ideas. The application also includes membership management that allows for differentiation in user roles and user access. Since there is a lack of Computer Science and Technology in K-12 schools, having a website like the Computer-Technology Helper is a great way to provide educators with access to Computer Science and Technology teaching resources and provide a support system for non-Computer Science educators. The Computer-Technology helper was created using Ruby on Rails along with HTML and CSS.

William Laughlin '13
Faculty Sponsor:  Madalene Spezialetti

Help Me Now is a help website where users can post jobs, request help, or even make money by helping others.  Will Laughlin began Help Me Now about 9 months ago as his senior project and has since developed it into the website it is now.

Willem van Daalen ‘14
Faculty Sponsor: John Ridgway

The Internet has revolutionized content consumption in the twenty-first century for people around the world. One of the challenges the people now face when attempting to find information is not that the information does not exist, but rather that it is located in too many sources, some more trustworthy than others. Additionally, the process of data discovery and recovery has become increasingly time consuming, often negating the benefits gained from the easy access to data provided by the Internet.

Muse is a web application designed to help resolve this problem in the field of music; it provides a single live-feed of new songs customized to each user’s preferences. Specifically, muse works by parsing through a wide variety of user-specified websites and extracting song information which is then presented to the user in their feed. Muse also allows users to specify content filters based on song metadata, allowing users to exercise fine-grain control over the songs that appear in their feed. Lastly, muse uses Jaccardian similarity and memory-based collaborative filtering to provide custom recommendations for each user based on trends in their likes and dislikes.

back to top