My name is Andrew Piper and I am a Software Engineer. This page highlights the various projects I have created, which are hosted on GitHub.
Anomalous Medical is a 3d human anatomy simulation program. It features stunning 3d anatomy and an accurate simulation of the movement of the mandible.
The Hypermedia Framework is a collection of libraries and services that help to build microservices/microapps based on HATEOAS using ASP.Net Core. This uses a centralized identity server for user management and interapp communication. It also features a large amount of automation to build models, clients and even user interfaces. This is the underlying architecture of the Personal Cloud, but it could be used for other systems as well.
A framework for building DevOps provisioning applications with C# and .Net Core. Using C# gives us several built in advantages for configuration and dependency management and getting parallelism out of creating resources with async/await. This is the DevOps component for the Hypermedia Framework. Even if you aren't using C# there is good info that translates to other languages as well.
HtmlRapier is a lightweight web front end framework written in Typescript. This library has 3 major control types: views, forms and toggles. Views provide a display area for a particular set of data based on templates written into the html. Forms provide read/write access to data. Toggles make it possible to alter the current classes, styles and disabled status of HtmlElements. All of this is tied together with controller classes that can subscribe to html events. There is also a dependency injection system that is based on function prototypes instead of strings. This can be used to build front end code that keeps the developer in control with a high amount of component reusability.
This is an implementation of an identity management microservice. It uses OpenIddict to provide Open ID Connect capabilities, which is used to log into the individual apps. This version comes with user types for both internally defined users in the id server and applications. Either of these can log in in a unified way to individual apps, which greatly simplifies user management. This project also has an app dashboard that is used to define the applications in the id server using metadata from the deployed apps. Automation is also possible and the AppDashboard need not be used at all.
This template is the basic implementation of an app in my architecture. It shows off the major features and can be modified to build real applications. The HATEOAS apis drive the front end, customizing it to the current user's needs and permissions. Users are managed with the Identity Server, which the app will connect to using the client generated from the id server. Finally the model generator is installed, which can be used to add new data and remove the built in example data. This template allows for rapid prototyping of apps by reusing as much code as possible, however, each component can be customized as much as needed to deliver the desired functionality.
Edity McEditface is a silly name for a different kind of CMS. I threw away the common assumptions for these systems, which typically involve a web application serving up pages, which can lead to security issues and hackers trying to exploit them. The sites created with this app are just static content files that are easy to host anywhere. Changes and edits are tracked using Git and you can even publish to a separate Git repository. You can run it either as a local application or host it on a server depending on your needs.
Both this website and Anomalous Medical's were created with this tool and are hosted on github for free.
I have made apps for home automation, voice recognition using a Kinect, note taking, shopping lists, budgeting and file access. User management is handled by the Threax.IdServer project. These apps can be deployed in a variety of ways. There is a reference server setup using Docker on Linux, but Windows and IIS also works great. These apps can even be deployed into Azure using the reference Provisioner implementation.