Projects

Collections

Language: C++

Description:

While I was working at the Sandusky library, they started using a new program that would collect data on the circulation of various items in their collection. Based on the information, it would recommend books that should be removed from circulation to make way for more popular titles. I was asked to go through the Children’s section and find and remove the books recommended, since that area was in construction and all of the books were stored away from the public. In storage, however, they had become completely disorganized. After spending one day trying to go through and find a couple hundred copies based on their unique barcode, I made a basic command line application that would take input from one of the barcode scanners and flag books that needed removed, based on a CVS file generated by the new software. After finding only a dozen or so books the first day, I was able to complete the project in 3 days, with a full report on books found and pulled and books that were just lost (another common occurrence that made it that much more difficult to work through the list by hand).

Guillotine

Language: Java

Description:

I was working second shift at a previous job for a while, so since I had the longest stretches of free time during my day, I eventually inherited account termination procedures for employees who had left the company. The existing process was not exactly streamlined, with the HR department simply sending out a few CVS files for employees who had left from each area of the company. I had to copy/paste their information into our IT spreadsheets that tracked all of our terminations, and the status of their accounts with our various services (including our VoIP system, email servers, employee network folder, etc). All-in-all, there were about a dozen different accounts for each employee. We were tasked with logging into the administrative pages, searching for the user, and deleting or suspending their account. It was tedious, and previously just done through a combination of copying and pasting, as well as manually typing in information, for each of 100+ users every week.

Since this took a lot of time and had a huge margin of human error, I wrote what was essentially a sophisticated clipboard manager. I could copy the relevant columns of user information from the spreadsheet into working files for the app, and log in to each administrative page and just paste whatever it used to uniquely identify a user, handle what needed done, and then click a button for whether I terminated the account or there was no account to terminate. The next user’s identifier would be automatically loaded, and the process would repeat. At the end, it would copy the column of statuses to the clipboard, and I would just have to paste it into the spreadsheet. It sped up the process from taking a few days to a few hours, and increased reliability, which was very useful for when names would come through from HR by accident and we would have to show that we received the name and whether they even had an account with a particular service to begin with.

It was a very basic application and not user friendly by any means, but unfortunately I left the company before I was able to redesign and improve the program.

Report Consolidator

Language: Java

Description:

After I switched to working with the Endpoint team as a student at OSU, part of my responsibilities involved compiling lists of computers from our inventory management system for some information, such as user contacts, and our endpoint management suite for other details, such as OS version. Rather than attempt using Excel for our custom needs, I wrote a simple program that could combine the CSVs based on certain criteria and output a single, clean list that I could then forward to my supervisors, or work from myself. Similar to Guillotine, I unfortunately moved onwards to Desktop Support in the middle of redesigning the application to be more user friendly.

Mario Remake

Language: C#, XNA, Monogame

Description:

This program was written as part of a team for a course I was taking, CSE 3902, at the Ohio State University. I had no experience in any of the languages/frameworks before this, however the larger goal of the course was a practical example of project management with a team in an Agile setting. The development was split into a series of sprints, using Visual Studio Team Services and Git repositories to manage tasks and code. Everything was done from scratch, aside from designing the actual graphics for in-game objects.

Geolocation

Language: Java

Platform: Android Mobile/RealWear HMT-1 Android Wearable Headset

Description:

This was a project sponsored by Edu Technologic through OSU. My teammates and I were tasked with adding certain ADA-compliant features to their existing app that was designed primarily for RealWear HMT-1 headsets.

The main goal of the project was to be able to assist visually impaired patrons of the Columbus Museum of Arts navigate throughout the building, as well as get a better experience of the exhibits. To do so, we had three primary objectives.

First was adding OCR functionality within the application. This would enable those with impairments severe enough to prevent them to read the signage and plaques by the exhibits to be able to have them read aloud. We implemented Microsoft’s Azure Cognitive Services OCR features for both handwriting and text, since they both had different strengths and weaknesses (handwriting recognized actual handwriting much better than text recognition, but text recognition more accurately read signage that may have been rotated).

Second, we were aiming to provide indoor navigation instructions throughout the museum, which was two fold. One part was going to be a 2D view of the floorplans created as a custom map, and another was going to use an AR view. We used MapBox’s SDK to layout the framework for both, however there were some issues. We were unable to get the floor plans from the museum before the end of the project’s duration, so we implemented only the default navigation view and the indoor map was delayed for a future team. We also had worked with SmartCity Columbus to create the 3D map of the museum (for the AR view) with a contractor using a Lyka camera to collect the various point-clouds for different sections of the museum, later to be stitched together in Revit. This was in the last week of the project, so it also got delayed. Finally, in the final version of the app that we were working in, the Unity AR view for MapBox introduced compatibility issues with the 2D MapBox SDK that were unsupported by MapBox.

Third, using the MapBox SDK, we were able to implement custom navigation waypoints, integrate the UI with that of the rest of the app, provide voice prompts for navigation, and add custom angles to the turning directions. These all combined to make a more effective directional aid to visually impaired individuals around a location like the museum.

SamuelSmith.Tech

Language: HTML5/CSS Inside WordPress CMS

Description:

I have had this particular domain for about a year now, and originally was running the site off of my own web server at home. It was built on a command-line Ubuntu install with Apache, MariaDB, and PHP5, but the loading times when I was away from home were too rough. Additionally, it was just running inside a VM on my desktop, which I would frequently have to shut down if I wanted to do anything too demanding, or if it needed updated. I got sidetracked with other things, and eventually just never turned the web server back on.

I began working on my AWS Developer certification a time after that. After working on it for a while, a friend asked if I would be open to developing a website for someone he knew. That fell through, though it did point out to me that I had been wanting to do more web design, but had nothing to show for myself.

In the interest of security, I won’t be sharing too many details on the backend of the site though. If you are interested, feel free to reach out via my Contact page, and I would be happy to discuss what I can.