Projects

Here's a selection of projects that I believe people might find useful. Most are hosted on NC State's GitHub, and therefore only accessible to members of the University.

Apache+Shibboleth SP Docker Image

Two Apache (httpd) 2.4 Docker images configured to serve as NCSU Shibboleth SPs. apacheshib: This image provides an Apache 2.4 server configured as an NCSU Shibboleth SP. You will want to use this image to protect content that you serve directly with this server. apacheshib-proxy: This image extends apacheshib to act as a reverse proxy for other Docker containers. These images are available to all NC State users via a private Docker registry hosted by CSC IT. It is used extensively by Senior Design students who are working on projects with campus stakeholders.

DockerApacheShibbolethReverse Proxy

Moodle Download Labeler

Python tool to process Moodle quiz submissions by adding the student's name and Unity ID to the top right corner of every submission. It accepts submissions as PDFs, images (GIF, JPEG, PNG), or plain text. This is useful, for example, when uploading Moodle submissions to be graded in Gradescope.

PythonPillowPyPDF

Game Design Document Tool

Web application developed to support the redesign of CSC 281 under a DELTA grant. The tool provides dynamic features for students to generate one or more game design documents. Documents can be shared with others with support for real-time collaboration.

JavaScriptReactMaterialUINode.jsWeb SocketsREST APIMySQLCSS

Senior Design Center App & Website

Development and support of website and Web app for the SDC at NC State allowing students to submit and view assignment documents, peer evaluations, hourly effort logs, and submit IT resource requests. For the teaching staff and administrators, this app provides automated provisionign of Git repositories and tiered permissions of student teams on GitHub Enterprise, optimized workflow of feedback coordination and delivery across multiple instructors, background generation of submission bundles for archival, and general management of semesters, sections, student teams, instructors, and project sponsors.

DockerJavaScriptJSONAngularJSReactWeb AppREST APIPHPSlim FrameworkMySQLGearmanAutomationCSSCron Jobs

GitHub Provisioning Automation

Command-line application that allows automation of GitHub tasks, such as repository creation, team and permission assignments, and member access control within a GitHub organization.

PHPJSONREST APIGitHub APIGitGitHub Enterprise

PubViewer

Web component used to display an interactive, categorized list of publications on any website. A single file source can be used to display publications of an entire lab/organization and of individual authors in a standard and styleable way.

JavaScriptWeb ComponentsJSONReactBibTeX

P&P Slideshow Viewer

Send an email to to request more information.

Allows presentation of multiple PowerPoint files as a single slideshow without actually concatenating the files. This enables the insertion of transition slides and easy replacements of slideshow segments. The order is defined in a JSON configuration file. All animations, transitions and properties of the original files are preserved. The app can start the presentation at any PowerPoint file in the sequence.

C#.NETJSONMS Office API

bib-parser - A JavaScript BibTeX Parser

Parse BibTeX entries into JavaScript objects (and back) including processing of basic LaTeX in entry fields.

JavaScriptBibTeXJSONLaTeX