Project Categories

Project Setting Personal
Team Size 1
Role(s) Creator / Developer
Languages C# HTML CSS JavaScript TypeScript
Software/Tools Used Visual Studio (IDE for WinForms), Atom (Editor for Electron), Windows Forms (API), Electron (API), Node.js (API), JQuery (API), Tippy.js (API)
Status Released (Windows), Hiatus
Time Period March 2020 - July 2020


Project Archivist was created for two reasons: 1. to create something useful in under 24-hours in an almost Hackathon/Game-jam-esque fashion; 2. to give a visual interface for creating scripts for creating backups. Not only am I a very visual/interface-oriented person, creating scripts can be a bit problematic. That is, one could make a typo later in a script and not discover it until encountering an error as late as hours later when considering the length of time backups can take.

This first was created using Windows Forms. The program serves its purpose and accounts for a number of use/error-cases. However, due to the visual and platform limitations of Windows Forms, I decided to migrate this program into Electron and archive the Windows Forms version. I used this as an opportunity to learn both a new API (Electron, + Node.js by inheritance) and a new language (TypeScript) / to practice more in JavaScript. Due to conflicts with TypeScript's compiler's 'intentions' and Electron's expectations, the project was branched into two versions - one based in TypeScript, and one based in JavaScript. The currently available build is based on JS.

My Work


  • Design main, item, exclusion, error, and message windows for the program to use
  • Set up form elements in a semantic way (limitations on numeric up-downs, using the proper file/folder dialogs)
  • Make use of an ArchivedItem object to use information from the forms in setting up the output script
  • Handle a number of error cases to prevent the user from potentially making a mistake


  • Design a single-window interface using HTML/CSS markup/styling, with multiple stylesheets to serve different purposes and to allow for future theming capabilities
  • Make use of JQuery selectors/events for buttons and form elements
  • Make use of Node.js File System module for file writing
  • Make use of Tippy.js for tooltips for form controls
  • Re-create ArchivedItem and similar structures from the WinForms application
  • Use TypeScript syntax to ensure expectations when writing code
  • Reach mirrored functionality with WinForms app for a 1.0.0 full release
  • Resolve numerous bugs found post-release


These are some samples from the project.









Source Code (WinForms) GitHub Repo
Source Code (Electron) GitHub Repo