Peter's Current and Completed Projects    

LifeLine Android Application

Smartphone application on Android OS (iOS Version in Development)
Designed for senior citizens and those with limited
mobility at risk of serious injury from a fall.
The app utilizes the device’s on-board sensors to detect falls and solicit emergency medical assistance autonomously, without requiring input. I have included accessibility features like Voice Commands and OCR Image Processing.

In addition to this, I constructed a complex system for storing this sensor data in a memory efficient serialized form. To do this I built my 'PKDataLogger' tool, which is described in more detail below. This data can then be uploaded to a central server routinely whenever WiFi is available. The intended purpose being to provide test-cases for a future project implementing Machine Learning and Neural Network technologies to improve the app's responsiveness. I also made a free promotional page early in the summer on for investors, click below to see it.

LifeLine Standalone Hardware Device

A standalone, hardware implementation of
My completed LifeLine fall detection Android app.
Built around an Arduino microcontroller,
the device monitors data from an accelerometer
and utilizes a GSM module to send SMS and phone calls
to emergency services after detecting a fall.


Independent symmetric encryption and decryption java programs,
implementing a stream cipher and a 512-bit cryptographic key.
The algorithm I wrote myself, using a PRNG and bitwise operators.
Encryption is done multiple times to ensure that a string of identical characters,such as AAAA, will not produce a sequence of repeated cipher text strings.

Users can encrypt from a file or console input, and decryption can be
displayed in the console as well as being saved to an output file.
The crypographic key can be generated using a 9 digit alphanumeric password,for ease of access when producing cipher text / clear text.

HideAndSeek - JavaScript Version[NEW]

Also I recently began teaching myself the fundamentals of JavaScript, HTML and CSS for the purposes of web development. As a learning exercise, I converting the afforementioned HideAndSeek programs into a single, consolidated web-based JavaScript script running comfortably within a streamline HTML page.

This allows for the user to upload a TXT file to have it parsed by either the encryption or the decryption script. Although, if they'd prefer, the option is also available to directly enter text into the textbox and then have the input string encrypted or decrypted depending on the circumstances. The password no longer needs to be exactly a 9 digit long alphanumeric string, although the longer and more complex of a password chosen will of course improve the production of the random number used in my encryption / decryption algorithm.

I used Johannes Baag√łe's extremely fast Alea PRNG
As it allowed for the use of a PRNG constructed from a custom seed

Headless Raspberry Pi Packet-Injection Tool

A wireless platform running Kali Linux, built using the Raspberry Pi platform. It can be interfaced with directly by plugging in an HDMI Display and attaching a Bluetooth Keyboard, or remotely through SHH. The Kali Linux OS offers numerous tools for testing network vulnerability and this device removes the need to install Kali Linux directly on your own machine. I constructed this portable pen-testing device following a series of tutorials from Null-Byte, the wonderful folks there also provide a plethora of other tutorials in using the various tools packaged with the Kali Linux OS distribution

References |

My Personal Webpage (The One You're Currently On)

I had previously not been familiar with the various tools and techniques used in building a webpage, hence why the promotional page for my LifeLine product was built on using their free web development tools. More recently I have been introduced to a function of Kean University's Computer Science Department Server 'Eve' which allows me to host my own personal webpage by uploading the main index.html page to their server and, providing that I include the proper access control settings, I can allow others to view my Projects, Resume, Artwork and other items through the internet. First and foremost, this allowed me to familarize myself with the SSH File Transfer Protocol which is used for file transfer to and from Kean's server. The benefit of this is that my webpage is hosted under the Domain Name.

In order to build this website I had to become well acquainted with the HTML markup language. At first this allowed me to build a very simple and bare bones webpage, on which I could present a brief summary of my projects and a link to download my resume, but I wanted to do more than just that. So I then set out on learning how to use CSS in order to perfect the presentation of my website and the other pages nestled beneath it. Of course this still left me on the introductory side of the fence in terms of designing the best possible web pages, because I was still unfamilar with any scripting languages which could be used to embed programs within the HTML page. Luckily I have a strong background in Java, therefore I elected to begin learning the scripting language JavaScript.

I had my fair share of difficulties when it came to transitioning from programming in Java to scripting in JavaScript, but after a few days of hard work I was able to produce the website as it can be seen today. Since then I've been learning new methods and practices for improving the design and functionality of the site, this helped me to produce the afforementioned JavaScript version of my HideAndSeek program, as well as provide an interactive portfolio for some of my best paintings and photography. The World Wide Web Consortium (W3C) offers a multitude of great resources and tutorials on their website, and without them I would not have been able to teach myself these rudimentary web development skills in such a short timeframe

References |


Java based tool that can be integrated in Android apps to organize data structures passed to it, as well as other hardware that may implement sensor data collection, such as the Raspberry Pi. The program can generate averages for entries within structures, in addition to allowing data sets to be saved in binary quickly and space efficiently, while still preserving the object structure to facilitate deserialization.

Binary Image Threshold - Swing

A simple image processing program that allows for the input of an image file after launching through the command line. Once loaded into the program, I used Java's built-in GUI toolkit "Swing" in order to present the user with a more dynamic image manipulation experience. The loaded image can be rotated and resized to the user's preference, faciliating the primary function of the application which is to decrease the color depth of an image from 32bit, 8bit, ect to 1 bit (hence binary) image based on a predefined threshold. This threshold can be selected using the menu bar at the top of the window. This was extremely effective for what I needed, as I had multiple photographs taken of handwritten notes and reducing the images' color depth to just black and white both improved readability, and reduced the amount of ink wasted in printing copies

I built this program following the instructions provided in Priceton's 'Introduction to Programming in Java - Standard Librarys' as they have an excellent set of tutorials on Swing and Java-based image processing in general. It was a great introduction into the skills and techniques needed to design programs with an actual User Interface, and the intricacies of programmatic image processing with Java

References |

NJ Crime Data Aggregation (HackKean, 2016)

Java program that parses large crime data yearly reports from NJ State Police into numerical values, generates statistical data to represent crime rates divided by county. This data is then displayed through an interactive UI based on the New Jersey state map, where users can select a county to quickly see a summary of crime data historically in simple graphs.