CS@GWU homepage


world wide web
cs @ gwu

Department of Computer Science
The George Washington University
801 22nd Street NW, Suite 704
Washington DC 20052

Voice: (202) 994-7181
Fax: (202) 994-4875
E-mail: cs@gwu.edu

Senior Design Projects - 2005

This page contains the project synopsis of Senior Design Projects completed in 2005.

 

Jay Paul Agrawal - Plagiarism Detection System 2.0

This project extends an existing Plagiarism Detection System to include the ability to add new detection algorithms through the use of plug-ins. The program is composed of two main modules: the GUI module and the plug-in module. The plug-in module in turn contains two sub-modules: the analysis module and the report module. The analysis sub-module in turn contains two sub-modules: the file comparison module and the progress module. The program will run on a Pentium II equivalent, or higher, computer with at least 64 MB RAM and the Java 2 SE run-time environment. The interface between the user and the program is a graphical user interface.

Oliver Christensen - FeedMe, a Recipe Manager

FeedMe, more than a simple recipe manager, categorizes a user's recipe collection and rates incoming recipes based on the current recipe box and user ratings. The program will also allow a user to create, edit, delete, export, and import recipes in the RecipeML format. The program is comprised of five main modules and ten sub modules. The main modules are the user interface, the data converter, the data store, the rating engine, and the match engine.

Mehdi Derdouri - Thought Drop System

The Thought Drop System is a program designed for Java-enabled cell phones that have both GPS and WAP capabilities. It gives users the ability to "drop" thoughts for people to read using the cell phone's current GPS location. A sample application of this is someone touring the Mall area in downtown Washington, DC. While standing in front of the Lincoln Memorial, a person could "drop" their thoughts in front of the Memorial, and other visitors could read those thoughts, and leave some of their own. Thoughts are stored in a database and can be read by anyone in range of where the message was dropped, as long as the message is public or if users are in the same group. The program consists of two main elements: A Server which contains a database and a Security Module, and a client (on the cellular phone) which contains a Security Module, a Display Module, an Interaction Module, an Input Module and a GPS Module.

Michael Gaiman - $ython

$ython (pronounced Sython) adds the ability to specify certain variables in the Python programming language as secure. The values of these secure variables are restricted and stored securely in memory. This protects sensitive data from malicious attackers and provides a higher level of assured security. Access to the values of the data can only be gained via special python commands. $ython consists of three main modules: the $ython main module, the modified Python interpreter module (known as the Python module) and the sandbox module. $ython will be a standalone application that embeds a modified version of Python. It features a plug-in based architecture to allow the way data is secured in memory to vary with the application. The Python module modifies the core language to add support for "secure" types and "secure" blocks of instructions. A dollar sign ($) is used to denote a variable as secure. The sandbox module is where the secure data is actually stored. It is responsible for protecting the data in memory and for granting access to the secure data values. This is done via a plug-in system because not all data is equally sensitive. A plug-in system allows the application developer to find the desired balance between security and performance.

Sisay Habte - Internet Usage Monitor

This project outlines, designs, and builds an Internet usage monitoring program. The program will have three components: the client, server, and viewer. The client component of the program will monitor the local computer by creating a log of the user name, URLs visited, and time spent online. The information captured is transferred to a server component of the program running on a remote machine where it is analyzed and stored in a database. The viewer component of the program also runs on a remote server and provides the means to view information from the database or live from the client program.

Jarrod Jaffe - Linkdeman

This project modifies a Web browser to allow for the insertion of hyperlinks onto a Web page based on glossaries. A glossary entry consists of a phrase paired with one or more URLs. If a matched phrase is found between the Web page and the glossary, the links associated with the phrase will be automatically inserted, and displayed in the browser. The project has been separated into four software modules: the Preferences User Interface, the Linkify Module, the XML Manager, and the Startup Module. Mozilla Firefox was selected as the Web browser to modify.

Daja O'Bryant - Automated Shopper

The Automated Shopper application will allow a person to browse, to view detailed information about merchandise, or to purchase products from a Personal Digital Assistant (PDA) device. The development of this tool is comprised of four major modules: User Interface; Client Web Clipping Application (WCA)communications module; Secure Payment module; and Remote Web Server communications module. The user interface contains a series of forms that guide the user through the program. The WCA also known as Palm querying application (PQA) provides a simplified display of HTML pages for small display screens, such as those of PDA devices. The WCA is used to display information extracted from web content to the user. The Secure Payment module provides the secured access and payment verification of the purchase feature. The Remote Web Server provides HTML content to the WCA. The program requires an Internet enabled, Palm OS PDA, with at least 400k of free memory for the WCA application s tore. The server requires at least a 1.0 GHZ processor and 10GB disc space to ensure reliability. A keyboard or stylus can be used as input devices.

Amir Raminfar - Voice Launch

Voice Launch is a speech recognition program that will recognize and launch a selection of at least fifteen words. The user will need to record a number of phrases and associate each phrase with an application. The expected accuracy is equal or greater than 80%. To launch an application via voice, user's phrase is recorded and passed to the recognition thread. The recognition thread will find the most similar item from the library by comparing the recently recorded phrase to all other templates in the library. The user is prompted with a confirmation dialog prior to launching any application. If the found application is not what the user desired then he or she can click or say no and the next best application is chosen. If after three attempts the correct application was not found, then no application is launched.

Brent Roland - Contract Email

Contract Email allows for email exchanges to be logged in a secure way, so as to be used in contract negotiations. The project is a modification to the Pine email client which will allow for the encryption and logging of emails. Within the Pine program, contacts can be flagged as "Contract". Whenever an email is sent to such a contact, the email will be encrypted (via the Blowfish algorithm) and sent to the mail server. Here, the email is decrypted and logged and then either bounced back to the sender or re-encrypted and sent to the recipient depending on if the recipient has set up an account. A Java stand-alone application allows for searching and reconstruction of past emails that have been sent to/from the user.

John Rowe - Xoco: An Automated Speech Recognition System

Xoco is speech recognition system that allows for hands-free control of a Windows system. The system is composed of six modules: a GUI, a Recording Unit, a Normalization Unit, a Feature Extractor, a Comparison Unit, and an Updating unit. The GUI initiates sound recording and confirmation of the command to be used, if the system is in training mode. The recording unit simply records the voice command from the user. The normalization unit and feature extractor work to process and identify important features of the sound. The comparison unit calculates the closest command to the one spoken by the user and sends it to the GUI for confirmation and execution. The updating unit, in training mode, tries to ensure that the commands stored by the system previously are accurate.

Christopher Toombs - Secure Storage Operating System

The Secure Storage Operating System (SSOS) will augment the Linux kernel to allow each user of the operating system to encrypt his/her files on the local hard disk as well as record file access in a log. SSOS will be built on Fedora Core 2 with Security Enhanced Linux. The Advanced Encryption Standard (AES) operating on 128 bit blocks is used for encryption and decryption, and keys are randomly generated when a user is added to the system. This project will be written in C and consists of six major modules: AES Encryption, AES Decryption, Add User, Update User, Key Access, and Logging. There are several submodules for the AES Encryption and AES Decryption process. The File Divider submodule divides the sensitive data into 128 bit blocks on which the AES algorithm operates, while the File Assembly submodule uses the 128 bit block output from AES to construct a complete file. The Key Expansion submodule uses the original key to produce one suitable for the encryption and decryption process. The Shift Rows, Mix Columns, Substitute Bytes, and Add Round Key submodules comprise the "meat" of the encryption process, while the inverse of these submodules are used in the decryption process. SSOS is also comprised of the following submodules: Random Key Generator, Find Encrypted Key, Add Key, and Update Key Table to handle the overhead necessary to support AES.

Adam Zeldis - Gesture Tracker

An application capable of recognizing hand gestures made in front of a webcam and then performing pre-defined corresponding operating system actions such as closing windows, running applications, etc.

 

 

 


Schedule of courses
Libraries

SEAS Website
GWU Website
l>l>