ASP.NET
COPOS report tooling
The original project pages described generated report tables, initiative management, report downloads, organization summaries, and a rule creator used for graphics and reporting workflows.
Archived ASP.NET portfolio recreation
Bachelor of Computer Science
Indiana University of PA
Pennsylvania State University
Junior Web Developer (Full Stack)
Proficient: C#, VB.NET, ASP.NET, HTML/CSS, SQL, Java, XML, JSON, JavaScript, jQuery.
Familiar with: Vue.js, Sass, PHP, C, Python, C++, shell scripting, Bootstrap, Ajax, CSS3 Flexbox.
Currently learning: Go, CSS Grid, Firebase authentication and data.
Community Action, Inc. - Junior Web Developer (Full Stack), June 2016 to August 2017.
Static reconstruction of the old WebForms shell. The database, login, admin, and form actions are intentionally stubbed.
ASP.NET
The original project pages described generated report tables, initiative management, report downloads, organization summaries, and a rule creator used for graphics and reporting workflows.
Desktop project
A college calculator application using mXparser for arithmetic expressions, scientific operations, and a pop-out history panel.
Mortgage amortization
Task Scheduler System
The old page described a WebForms replacement for Windows Task Scheduler using Quartz.NET, persisted tasks, and URL-triggered jobs.
public static object CreateJob(string jobIdentity, string triggerIdentity, string url, string scheduledTime)
{
IJobDetail job = JobBuilder.Create<Jobs>()
.WithIdentity(jobIdentity)
.UsingJobData("URL", url)
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(job)
.WithIdentity(triggerIdentity)
.WithCronSchedule(scheduledTime)
.Build();
return new NewJob(job, trigger);
} Hashing and salting
The archived code example hashed a password plus random salt using SHA-512, then checked a second input against the generated hash.
static string Hash(string input, string salt)
{
byte[] convertedToBytes = Encoding.UTF8.GetBytes(input + salt);
HashAlgorithm hashType = new SHA512Managed();
byte[] hashBytes = hashType.ComputeHash(convertedToBytes);
return Convert.ToBase64String(hashBytes);
}