Chatter System

This set of applications was created as a UIS CSC583 network programming term project in the fall of 2015. It includes a chatter server and a chatter client, and provides instant messaging services over the local area network. The chatter server application is command line based, and runs on a vacant port of its host computer. The chatter client is a graphical user interface based application that allows communication through the chatter server to other clients on a local area network. Each client connects to the server, and the server broadcasts incoming messages from a client to all other connected clients. The server has the capability of maintaining a list of users who have previously connected to the system in a MySQL database. Continue reading

ComputerSMS Android and Desktop Applications

I currently own a Moto X and looked forward to the Motorola Connect feature when it was first released. The promise of Motorola Connect was to allow SMS messaging via a Chrome browser plugin. Unfortunately, the delivered product fell well short of my expectations. Initialization was slow, messages weren't sent and received in a timely fashion, messages sent and received within Motorola Connect were not accessible in the messages app on my phone, and using the plugin meant that my messages were being stored on yet another server over which I have no control. Needless to say, I stopped using the Chrome browser plugin after my first experience. I needed to create a better solution for my personal needs. Continue reading


For the software engineering capstone course at University of Illinois at Springfield, my team developed a version of the popular dice game Farkle using Java. This project went well beyond simply coding an application. It was an exercise in overall software engineering. In addition to coding, this project included overall project planning, team management, requirements documentation, design documentation, testing documentation, and user documentation. Our team was composed of three individuals that had never met prior to this project. We had to overcome hurdles of not knowing each other's strengths and weaknesses at the beginning of the project, working remotely (we were in different time zones), and a compressed schedule to deliver the final project. This project represents one of the greatest learning experiences of my life. Continue reading

Music Organizer

My music file collection has grown rapidly since 1998, when MP3s first became popular. Over the past 17 years, this collection has become a tangled mess. I had no naming or tagging convention for the MP3s I owned. I had many song duplicates located in various folders and under different names. When I first began ripping my music, I didn't take the time to properly name and organize each track of each album. This resulted in many, many songs labeled track1, track2, etc., in a folder structure consisting of just the album name. Furthermore, these songs were not tagged in any way. Searching for a particular song or artist was nearly impossible. Organizing this mess would be a painful task. I set three goals to accomplish this task: properly tag each file, develop a unified folder structure to store each file, and eliminate duplicate files. I developed a Java program to make this possible. Continue reading

Ant Simulator

In one of the first classes I took at UIS, CSC 385: Data Structures & Algorithms, the semester project required the development of an ant colony simulation in Java. For the sake of future students taking that course, I will not be revealing the source code or my methods for implementing the project in this summary. Continue reading