From 9d16f96d83ce8350a9b645968b8d413a2234da9f Mon Sep 17 00:00:00 2001 From: Kilokoopa <57710228+jmcauley04@users.noreply.github.com> Date: Sun, 21 Feb 2021 16:28:56 -0500 Subject: [PATCH] Initial Release Complete --- JMCResume/Pages/Counter.razor | 16 -- JMCResume/Pages/FetchData.razor | 55 ------- JMCResume/Pages/Index.razor | 34 +++-- JMCResume/Pages/Portfolio.razor | 138 ++++++++++++++++++ JMCResume/Pages/Portfolio.razor.css | 59 ++++++++ JMCResume/Pages/Resume.razor | 9 ++ JMCResume/Shared/NavMenu.razor | 13 +- JMCResume/Shared/SVGs/Checkbox.razor | 18 +++ .../Shared/SVGs/TheGroceryListLogo.razor | 28 ++++ JMCResume/wwwroot/css/app.css | 16 +- JMCResume/wwwroot/index.html | 5 +- .../wwwroot/resources/grocerylist_list.png | Bin 0 -> 190723 bytes .../wwwroot/resources/grocerylist_login.png | Bin 0 -> 154698 bytes .../wwwroot/resources/grocerylist_menu.png | Bin 0 -> 256878 bytes .../wwwroot/resources/practice_async.png | Bin 0 -> 4276 bytes .../resources/practice_commandpattern.png | Bin 0 -> 8435 bytes .../resources/practice_designpatterns.PNG | Bin 0 -> 22645 bytes .../wwwroot/resources/practice_topics.png | Bin 0 -> 51907 bytes JMCResume/wwwroot/resources/profile.png | Bin 0 -> 894742 bytes JMCResume/wwwroot/resources/resume.pdf | Bin 0 -> 135924 bytes 20 files changed, 298 insertions(+), 93 deletions(-) delete mode 100644 JMCResume/Pages/Counter.razor delete mode 100644 JMCResume/Pages/FetchData.razor create mode 100644 JMCResume/Pages/Portfolio.razor create mode 100644 JMCResume/Pages/Portfolio.razor.css create mode 100644 JMCResume/Pages/Resume.razor create mode 100644 JMCResume/Shared/SVGs/Checkbox.razor create mode 100644 JMCResume/Shared/SVGs/TheGroceryListLogo.razor create mode 100644 JMCResume/wwwroot/resources/grocerylist_list.png create mode 100644 JMCResume/wwwroot/resources/grocerylist_login.png create mode 100644 JMCResume/wwwroot/resources/grocerylist_menu.png create mode 100644 JMCResume/wwwroot/resources/practice_async.png create mode 100644 JMCResume/wwwroot/resources/practice_commandpattern.png create mode 100644 JMCResume/wwwroot/resources/practice_designpatterns.PNG create mode 100644 JMCResume/wwwroot/resources/practice_topics.png create mode 100644 JMCResume/wwwroot/resources/profile.png create mode 100644 JMCResume/wwwroot/resources/resume.pdf diff --git a/JMCResume/Pages/Counter.razor b/JMCResume/Pages/Counter.razor deleted file mode 100644 index 8641f78..0000000 --- a/JMCResume/Pages/Counter.razor +++ /dev/null @@ -1,16 +0,0 @@ -@page "/counter" - -
Current count: @currentCount
- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/JMCResume/Pages/FetchData.razor b/JMCResume/Pages/FetchData.razor deleted file mode 100644 index 4432ee5..0000000 --- a/JMCResume/Pages/FetchData.razor +++ /dev/null @@ -1,55 +0,0 @@ -@page "/fetchdata" -@inject HttpClient Http - -This component demonstrates fetching data from the server.
- -@if (forecasts == null) -{ -Loading...
-} -else -{ -Date | -Temp. (C) | -Temp. (F) | -Summary | -
---|---|---|---|
@forecast.Date.ToShortDateString() | -@forecast.TemperatureC | -@forecast.TemperatureF | -@forecast.Summary | -
- I began working with relational databases while working as a business analyst. Since, I have made extensive use of MS-SQL almost daily and yet the technology is so powerful I still feel I have much to learn. As of writing this, most recently, I re-designed a very poorly written stored procedure, 2000+ lines of purely unmanageable spaghetti acting on a single dataset to create a report, by breaking the code into logical chunks using table-valued functions and a user-defined type resulting in something understandable and runs in half the original time. + I began working with relational databases while working as a business analyst. Since, I have made extensive use of MS-SQL almost daily and yet the technology is so powerful I often continue to discover new functionality. As of writing this, I recently re-designed a very poorly written stored procedure, 2000+ lines of purely unmanageable spaghetti acting on a single dataset to create a report, by breaking the code into logical chunks using table-valued functions and a user-defined type resulting in something understandable and runs in half the original time.
T-SQL, MS-SQL, MySQL- + Frequent fetches to address conflicts. Frequent commits and pushes to save and safely store work and to allow others to address conflicts. Finally, a pull request to merge changes with a master branch. Source control is a simple concept, albeit serving a critical function, and I believe I'm taking advantage of its primary benefits. Admittedly, it's not a topic I've invested much research into so I may later discover that I'm wrong.
TFS, Git, TFVC- + My company has entered the DevOps world extremely late and still has not quite embraced the potential. Having recognized the value good DevOps can bring, I have pushed for this extensively up to creating our first build, test, and release pipelines to showcase the potential and benefits. We are an on-premise company so this meant working with YAML directly as the hosted pipelines are unavailable.
Azure DevOps, YAML+ Although development is my passion, I have a wide breadth of other skills that accentuate my abilities to create good solutions; key among these is my ability to define and measure a problem, analyze it to find an improvement plan, and finally implement a controllable solution. +
+ Problem Solving, Statistics, Mathematics, Engineering, Lean Six Sigma, Data Analysis ++ This site. I won’t say much about it since by reading this, you are experiencing the work first-hand and can draw your own conclusions. Admittedly, I took design inspiration from others’ (color theme and layout) but the coding is entirely mine. +
+
+ This project is used by my wife and me to make grocery shopping easier. A user picks which recipes he/she wants to make for the two-week period and a grocery list is aggregated automatically showing specific ingredients and quantities. The user then checks off the things he/she already has and is left with the remainder to go shopping. The user can also add non-meal related items to the list.
+
+
+ The main challenges in this project were deciding how to control the user’s choices when creating a recipe (ie. ‘eggs’ vs ‘carton of eggs’), allowing the user to use various units for quantities, and maintaining proper sync if my wife and I were using the app at the same time – we only have one grocery list for both of us.
+
+
+ The app could be improved by implementing a good database-driven inventory system that adds and subtracts according to which meals are eaten and according to expiration date and automatically removing the items that are already available.
+
The image on the right is the login page. The logo is an SVG that I created for this project and I tried to stay with the theme throughout the application. I don't recall from where but I was inspired by another logo. The app was designed with mobile-first in mind as I imagined it being used in a grocery store on a phone or tablet.
+ + +The image on the left is the menu. It scrolls down to show a two-week period.
+The image on the right is of the grocery list that is generated from the selected menu. The unit each item is converted to is chosen according to the magnitude of the item to be user-friendly. Items are checked off using an SVG swap of an image consistent with the logo.
+ +After creating a few WindowsFormApp1, WindowsFormApp2 applications I realized that I could save time by making re-usable code and create permanent reference to remind myself how to do things that I’d once discovered and forgotten by doing it inside a persistent application. To that end, I created this application to practice and share ways of doing things I was learning with my colleagues.
+The image on the right is a list of the topics I have decided to add to this library over the years.
+ + +The image above is a snippet of an asyncronous progress bar form that opens when topic two is selected. Note that async and parallel functionality is accessible. The application serves to show how each behaves and allows the user to toggle them.
+The command pattern is one of the coded design patterns. It is one of my favorite patterns. This view below allows the user to drag the boxes around the screen with the mouse, to move the boxes with the buttons, to move the boxes with the keyboard, and to undo any of those moves with the undo button using the command pattern with an Execute and Undo logic and a Stack object with stack and pop logic.
+ +This project is one of the first manufacturing automation projects that I've worked on. I suggested and supported with data the idea that introducing Indutive Automation's Ignition to replace some of our very old RSView applications for HMIs would be a cost savings and a significant improvement for manageability. The HMI would communicate with our casting furnace PLCs to perform the casting process and communicate with SQL to validate inputs and outputs. As an added bonus, recipe management is now also handled in the HMI with a backing SQL database where as before, the recipes were simple notepad files that were being parsed by RSView. Due to some unexpected circumstances causing a huge priority shift, the project went from infancy to deployed in a little under a week.
+The Engineer's Toolbox started out as a tool written for myself to perform data analysis. Later, I modified it to be usable by others and released it as a tool for engineers to quickly gain insights, especially on dimensional data. Some of the most useful features are: Quickly identified dimensions (features) by percent of non-conformance, calculating leadtimes and expected yields based on WIP, and calculating statistics on a subset of product.
+I created my division's first automated pipelines using Azure DevOps. We use an on-premise solution so the build pipeline required a manual setup since the hosted build pipelines were not available. Additionally, I established an approval gateway to prevent breach of policies stating approval are necessary before release. The process was straight forward and I documented it for future use.
+This is a fairly new project. Presently, our entire system is comprised of hundreds of seperate applications performing extremely specific tasks. In order to reduce complexity and to maximize code re-use, I am planning to fully replace the system with an ASP.NET backed Blazor (server-side) solution. This change will pay for itself very quickly due to the amount of optimization opportunity that exists for both the development and user sides of these applications. This project is set to begin immediately after a blocking issue is resolved.
+