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 Wix.com for investors, click below to see it.
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.
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
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 | https://null-byte.wonderhowto.com
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 Wix.com 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 eve.kean.edu Domain Name.
References | https://www.w3schools.com
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.
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 | https://introcs.cs.princeton.edu/java/stdlib/
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.