Projects

These are a few projects I've either worked on or am currently working on

This is one of my bigger, more elaborate projects that started years ago when I started a course on MongoDB. Driving home from work, I was thinking about it and asked myself how hard it would be to write a basic NoSQL database type system from scratch.

The basic idea behind it is:

  • Information would be stored in Nodes, each Node having a key/value pair
  • Nodes would be stored on Pages
  • Pages would be stored in Folders
  • Folders would either be stored in other Folders or in Drawers
  • Drawers (you guessed it) would be stored in File Cabinets, hence the name of the project

The data is stored between sessions using XML files.

Initially developed using Java, I've made some small steps in replicating in C++ C# and Python. The main Java version uses Swing to build out a User Interface, and the C# has a similar User Interface using WPF.

This was actually a final project for one of the course I took. The base assignment was, given a skelaton project, complete the program to allow two users to place their five ships on a board, then play a game of classic Battleship. The program would handle checking for hits or misses. A simple text display showed the board and the results.

I quickly finished up the base requirement for the assignment and started work on adding to the program, turns out this extra work ended up being an opportunity for bonus points: add to the program and allow a user to play against the program.

"Wouldn't you prefer a good game of chess?" -WOPR

By the time this extra credit was announced, I was half way complete. I mirrored the program's hunting plan on my own, to go with a 'check board' approach, calling every other block and not calling an adjacent block unless I was checking for a hit.In other words: A1, A3, B2, C1, C3 but not the others unless I got a hit in one of those block, and obviously not in that exact order.

Testing that the AI was balanced was a simple case of replicating the end scene from Wargames and having the AI play 100 games against itself and keeping track of the results, checking that the balance was close to 50/50. I don't remember the numbers but it was close enough for me to call it a success.

Initially written in Java, I've done some work to replicate it C++, C# and Python

This is a very basic, registration and login/logout demo I built here with a Django/Python framework. It is a simple example of a system allowing users to register and then log in. No big information is stored beyond first and last name, a user name that is unique, and a password that is stored in the database in a hash format. I will be going through periodically and removing registered users so that the database doesn't become bogged down. Unfortunately, I am having some problems with Heroku and their dashboard at the moment so this feature is currently down

I am working to develop a monolithic Angular/Spring Boot application that is going to be a small (at this point) collection of Angular and Spring Boot project examples. You can find it here

When I was first learning programming languages, one of the early projects was usually a simple Caesar Cipher. For those who haven't heard of it, a Caesar Cipher is a simple, crude encryption method. I would use it as a way of working with arrays, strings and substrings, loops, input and output. Now I am using it as a tool for developing Django, Spring, and ASP.Net based applications. As each application comes online, those will become links to them.

Seeking a way to apply my Spring Boot, SQL and Web Development skills to something I can show off, I'm working on a Spring Boot web application that could be used to manage information at a school.

At this point, my plans for what to track include, but are not limited to:

  • Student information
  • Parent and Emergency Contact information
  • Grades for classwork, homework, quizzes, tests, etc
  • Absences and tardiness

Teachers would enter absences and grades. Office administrators would update tardiness and contact information. Students and parents would be able to view grades, absences and tardiness. Keeping track of which teachers the students had, and which grades were submitted by which teacher in each grade. Parents would be able to enter and update their contact information and emergency contact information. I'm debating adding a very basic messaging system.

Wanting to come up with a more simple application that I could develop and deploy live to show something, I came up with this fairly simple idea: a basic application for keeping track of various lists. Grocery lists, favorite places to visit, packing list for a vacation, etc. The application will require a username and password to login. Once logged in, users will be able to create new lists, view/edit/delete lists.

As of 3 June 2024, this is still in progress.

Similar in approach to my Angular/Spring Monolith, this is intended to be another monolith type application but with a React front end versus an Angular front end (as of 9 August there is no interaction with the backend, but I do have plans to building a few applications that will also interact with the Spring backend used by the Angular front end). You can find it here