Software Projects


Uses: Java with front-end AWT & Swing GUI libraries.

Blackjack_WPL is a cross-platform Blackjack game that works on Linux, Windows, and Mac. Eventually it'll be ported to Android and iOS. More advanced features like better graphics and the ability to add more players are planned.

The current version is Blackjack_WPL v0.3. Also, make sure to read the instructions on how to run the program after you download it.

Uses: PHP, HTML5/CSS3/JavaScript, and MySQL. is a web application that demonstrates how charities might be able to receive more awareness of which non-monetary goods they may need donated to them to help aid their operations. For example, a homeless shelter could inform the public that they need 50 Men's T-shirts (Size: Extra Large), 20 Women's Sweaters (Size: Medium), and so forth quickly and easily.

In the future, the site could automatically record donations received from donors and do other things like automating the creation of "Thank You" letters. However, at present, the core site design works, security measures were built-in, and the database architecture was designed to support a massive amount of users.

Cybersecurity is very important to me, so I engineered the codebase to try and defend against:

  • Cross-Site Scripting (XSS)
  • SQL Injection (SQLi)
  • Cross-Site Request Forgery (CSRF)
  • Brute Force Attacks
  • Password Sprays
  • Session Fixation Attacks

It was created for William's capstone project for his Master's degree. For additional information about this project, please see the briefing slides.

OpenVigilance Task

Uses: PHP, HTML5/CSS3/JavaScript, Ajax, and MySQL.

OpenVigilance Task is a web application that measures the reaction time of test participants by having them stare at a screen for about 25 minutes while a bunch of random letters flash in-and-out quickly and which they must only press a button when they see the correct letter. It is pretty tough, believe me! In the future I'll set up a short demo for those who may want to test out the system.

It allows researchers to place a test participant into four different test conditions. For instance, some people may or may not get a short break and those with a break may see either a short video, a blank screen, or just more random flashing letters (that doesn't require them to press a button during the break).

It was built for a Ph.D. student studying the reaction time of people for high-concentration tasks.