A classic arcade game
Zip and unzip your files
Clean CSV data & wrap in XML tags
A simple login GUI module
A more complex login module
Webscraper that pulls Wikipedia table into a CSV file
Clean CSV data & wrap in XML tags
Built with .Net Core framework
Draw & move colored rectangles on an image
A clean website interface created with Bootstrap framework
Resources used for this project
My resume; created using LaTeX editor called Overleaf
This version of the classic Asteroids game was implemented with polymorphism in mind. Many of the objects share the same parent class with inherited attributes, but also contribute their own specialized behavior on the game board.
Abbreviated Class diagram of GameElement object relationships:
These relationships between objects allow them all to be updated in arrays in the AsteroidsGame class, as the game timer iterates. This hierarchy was a key aspect in its object oriented design.
Locate downloaded jar file in command line
Type ‘java -jar Asteroids.jar’ into your command line
Alternatively, you may be able to simply select the executable jar to run depending on the settings on your computer.
If you are still having issues, I reccomend downloading the source code (link below) and compiling & running in your preferred IDE.
(requires class file 59.0 or later/Java version 15 or later)
This file compression utility accomplishes lossless data compression via a ‘Huffman coding tree’ implementation.
The basic premise of the Huffman encoding is that a unique prefix is assigned to each character from the input, where each prefix is determined by that character’s frequency. The more frequent the character, the smaller the prefix code.
This concept can be implemented in a tree-like structure, to be traversed. In this instance, I used Java’s PriorityQueue, an abstract data type similar to stack data structure. The difference being a PQ has an element associated with a priority level where an element with a high priority is served before an element with a lower one.
This program converts a CSV file into an XML file while normalizing values to match the data model of their destination.
This was part of a project to integrate Users from another college into the William & Mary library IT system.
Some values were simply wrapped in XML tags while others needed their values prepared first, and then wrapped in XML tags.
Other non-important values were omitted from the resulting dataset.
This program was created during an internship. The sample dataset accessed by this code has been modified so it does not reveal legitimate user information.
This is a project I started after taking a personal interest in a login project from university. It is still a work in progress. Eventually, it will embody the features of the more complex Login Project 2. For now it is only a prototype Interface.
Locate downloaded jar file in command line then type ‘java -jar UserLogin1.jar’ into your command line. Alternatively, you may be able to simply select the executable jar to run depending on the settings on your computer. If you are still having issues, I reccomend downloading the source code (link below) and compiling & running in your preferred IDE..
User Login Project 2 has a console interface where the menu is printed back to the user in a loop until they choose to exit.
Login information is accesed and stored in a sample file called users.txt within the src folder of this project.
This program provides the base behavioral structure which will be implemented as a GUI for Login Project 1. It will utilize buttons, windows, textboxes and data (user info) storage, as opposed to the menu printing method.
In addition to the functionalities printed within the interface, there is some noteworthy functionality taking place on the backend of this application. This login module offers password encryption via the included & publicly provided GFG.java.
When a user submits their password, it is first checked for validity.
It must conform to these constraints:
- length is at least 8 characters
- includes at least one upper case character
- includes at least one lower case character
- includes at least one numeric digit
- includes at least one special character
- cannot contain a space
Following the password validity check, the password is then encrypted with a “SHA-256” hash algorithm. This work is done using the provided GFG class mentioned before. When a user logs in, the password is first encrypted, then compared to the encrypted password stored in the users.txt file. This is great because the user’s raw password input is never stored and minimally handled by the program making it more secure.
Another feature included throughout this application is input validation, so the user does not end up ‘breaking’ the application while using it with bad input.
This program is an accumulation of my work, as well as some code provided from
course matierials. See README file with source code for more information
Locate downloaded jar file in your command line then type ‘java -jar UserLogin2.jar’ into your command line. Alternatively, you may be able to simply select the executable jar to run depending on the settings on your computer. If you are still having issues, I recommend downloading the source code (link below) and compiling & running in your preferred IDE.
This python script is a web scraping utility for pulling wikipedia tables into a local CSV file. I wrote this program as a personal project.
I Utilized some popular Python libraries in order to accomplish this including:
Requests: This library has a method called ‘urlopen’ which was used to retrieve the initial HTML data stream from the wikipedia URL in my program.
BeautifulSoup4: This useful library helped me parse the data by html tags in the website’s datastream.
Pandas: This library has a dataframe functionality that was used to store the table information. Pandas also has a to_csv function that allows me to export this dataframe as a CSV.
Import the python script into your preferred IDE and simly run it. The program will create a file called OUTPUT.csv in the same folder that the Currency_Display.py exists in. OUTPUT.csv contains the data scraped from the wikipedia tables.
This python script takes an XML file as input. The XML file contains 1000’s of documents.
Each document could be 1 of 4 types:
1. collective_intelligence
2. cyber_incident
3. cyber_threat
4. cyber_vulnerability
The output of this program are these 4 different documents as spreadsheets or CSV files. The program uses beautiful soup to parse this data, and then carries over necessary columns to the newly formatted CSV files.
Additionally I mapped cyber incidents found in this data feed against an open-source database called NVD or National Vulnerability Database, using the CVE number found in both datasets as a foreign key. During analysis, if a particular incident was found of interest, the user is instantly given more access to verified information about that vulnerability.
Learn more about the NVD or National Vulnerability Database here Learn more about the CVE program hereI do not have access or permission to share the data used by this application. Therefore it can not be operated. However, my documented source code is available. A general understanding can be made as to what it does by reading the documentation in the code.
This is a very simple image editor, built using WPF (Windows Presentation Foundation) in C# and .Net Core
- link to source code at the bottom
1. Upload an Image: Button or Drag & Drop File
2. Draw Rectangle : Left Click + Drag Cursor
3. Move Rectangle: Left Click + Drag Cursor
4. Changle Color: Select color from pallete, then Double click any rectangle
5. Triple click to remove Rectangle
6. Reset/clear Drawing canvas: Button
7. Save Image Canvas: Button
This program is an accumulation of my work, plus code I modified from these sources:
• A series of WPF tutorials on Youtube : https://www.youtube.com/@ContinuouslyBuilding
• https://www.youtube.com/watch?v=Bd0KUMjHzI0
• https://stackoverflow.com/questions/6059894/how-draw-rectangle-in-wpf
• https://stackoverflow.com/questions/1495408/how-to-drag-a-usercontrol-inside-a-canvas
• https://stackoverflow.com/questions/16892116/import-a-png-file-into-wpf-canvas
This website is an open discussion about a particular brew style of coffee.
I utilized Bootstrap an open source CSS framework to create a clean user interface
This website is hosted on github's gitpages
This website is inteded for employment purposes. I hope it makes it easier for anyone viewing to see my work.
There are a handful of resources I would like to mention that helped me build this website from scratch. No template was used for this website.
First of all, this website is hosted on Github Pages
Github Pages is a static site hosting service that takes HTML, CSS, Javascript files and more from a github repository, and runs them through a build process.
Git and Github Tutorials - Net Ninja :This youtube series about how to use Git was helpful when choosing a version control system to use to build this site.
Tabbed Containers - Lohar Talk :
This youtube video helped me build basic tabbed contianers from scratch using HTML, CSS, and Javascript.
Column Cards- W3schools :
This tutorial helped me build cards arranged in columns from scratch using HTML, CSS, and Javascript. I then integrated these column cards into my tabbed containers on my own.
Responsive Cards - Mr.WebDesigner :
This youtube video helped me build my column cards into selectable cards in my tabbed container. It also showed me how to display pop ups and more.
This document was created with a programming language called LaTeX, within an editor called Overleaf.