diff --git a/Portfolio.Domain/Features/Portfolio/WorkExperience.cs b/Portfolio.Domain/Features/Portfolio/WorkExperience.cs new file mode 100644 index 0000000..6589290 --- /dev/null +++ b/Portfolio.Domain/Features/Portfolio/WorkExperience.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Portfolio.Domain.Features.Portfolio +{ + public class WorkExperience + { + public string Title { get; set; } + public string Company { get; set; } + public int StartYear { get; set; } + public int EndYear { get; set; } + public string Details { get; set; } + } +} diff --git a/Portfolio.WebUI.Server/Components/Pages/Home.razor b/Portfolio.WebUI.Server/Components/Pages/Home.razor index 351a833..05305bb 100644 --- a/Portfolio.WebUI.Server/Components/Pages/Home.razor +++ b/Portfolio.WebUI.Server/Components/Pages/Home.razor @@ -127,8 +127,8 @@
-
-
+
+
@@ -137,17 +137,120 @@
@if (isExperience) { -
Experience
-
-
Stuff
-
+
+ Experience +
+ @if (experiences == null) + { +
Loading...
+ } + else + { + @foreach (var experience in experiences) + { +
+
+

@experience.StartYear – @experience.EndYear

+

@experience.Title - @experience.Company

+

@experience.Details

+
+
+ } + } + } else if (isProjects) { -
Projects
-
-
Stuff
+
Projects
+ +
+
+

Temperature Blanket Visualizer

+

Useful tool to help visualize and refine blanket planning for crochet temperature blankets. +

+

A personal project, but a fun one. +

+ + + + + +
+
+ +
+
+

PokemonSleep Toolset

+

A webpage constructed for the purposes of assisting players in the mobile game, Pokemon Sleep. Featuring a Pokemon Rater that derives ratings utilizing this publically available spreadsheet constructed by other fans of the game. +

+

A personal project, but a fun one. +

+ + + + + + +
+
+ +
+
+

AI-Driven D&D 5E Character Generator with React, Next.js, and OpenAI GPT-3 Engine

+

Creates a credible D&D 5E character sheet, including backstory, based on user input. Ex."I would like to play a magical elf." Or "I want to smash things with a big hammer." Would result in the AI choosing the best character to play with given the limitations and rules of the game (class, race, etc). The user would still be able to customize their character afterwards, and be prompted if they happen to “break” the rules of character generation; i.e. too many skill points assigned. +

+

Lead development in core functionality, including front and back-end development. Developed all JavaScript components and pages including the deterministic logic depending on decisions made by the AI, and the styling using the emotion library. +

+ CS 494 Hall of Fame recipient. + + + + + +
+
+ +
+
+

iOS Gesture Alphabet with Swift and CoreML

+

iOS keyboard extension that translates movements made by the user’s phone to corresponding letters. The model used has been trained with Apple’s CoreML to follow the user’s movements as though they were writing them in the air, through the detection of the device’s sensors, primarily through roll/pitch/yaw. Developed as a means of accessibility for users who may not be able to use a traditional phone keyboard effectively. +

+

SCRUM team lead and lead developer during each phase of project lifecycle. Collected, cleaned, trained and tested model with data personally collected and collected by other users. Developed core functionality, including keyboard extension interface and translation of motion to letter. +

+ + + + + +
+
+ +
+
+

Android Mobile App with Backend PokeAPI and Java

+

Using the PokeAPI, created the app “UltimateDex”, which acts as a complete Pokedex from the series Pokemon. Accesses all possible Pokemon, allows the user to search, filter their searches, and save entries to their personal repository for easy retrieval. Each entry when selected comes with its own page which displays all relevant information regarding the entry, including the image associated with the Pokemon, and styled similarly to that of the series. +

+ + + + + +
+
+ +
+
+

NodeJS WebApp with MYSQL Database and Handlebars

+

Fantasy task-assignment system. Utilizes MYSQL to organize and contain guilds, “quests” posted to the forum/board, and guild members whose accounts are associated with the webapp. Handlebars template to display contents, NodeJS to serve. +

+ + + + + +
+
}
diff --git a/Portfolio.WebUI.Server/Components/Pages/Home.razor.cs b/Portfolio.WebUI.Server/Components/Pages/Home.razor.cs index 5aef31c..853b289 100644 --- a/Portfolio.WebUI.Server/Components/Pages/Home.razor.cs +++ b/Portfolio.WebUI.Server/Components/Pages/Home.razor.cs @@ -1,10 +1,13 @@ -namespace Portfolio.WebUI.Server.Components.Pages +using Portfolio.Domain.Features.Portfolio; + +namespace Portfolio.WebUI.Server.Components.Pages { partial class Home { private List skills; private List tools; private List courses; + private List experiences; private bool isExperience = true; private bool isProjects = false; @@ -15,6 +18,7 @@ skills = await http.GetFromJsonAsync>("data/skills.json"); tools = await http.GetFromJsonAsync>("data/tools.json"); courses = await http.GetFromJsonAsync>("data/courses.json"); + experiences = await http.GetFromJsonAsync>("data/workexperiences.json"); } private void ToggleExperience() diff --git a/Portfolio.WebUI.Server/Components/_Imports.razor b/Portfolio.WebUI.Server/Components/_Imports.razor index 1b603f7..17abc70 100644 --- a/Portfolio.WebUI.Server/Components/_Imports.razor +++ b/Portfolio.WebUI.Server/Components/_Imports.razor @@ -12,6 +12,7 @@ @using Portfolio.WebUI.Server.Components.Component.Pokemon_Components @using Portfolio.WebUI.Server.Components.Component.Crochet_Components @using Portfolio.Domain.Features.Articles +@using Portfolio.Domain.Features.Portfolio; @using Portfolio.Domain.Features.Pokemon @using Portfolio.Domain.Features.Pokemon_Natures @using Portfolio.Domain.Features.Pokemon_Subskills diff --git a/Portfolio.WebUI.Server/wwwroot/data/projects.json b/Portfolio.WebUI.Server/wwwroot/data/projects.json new file mode 100644 index 0000000..017e533 --- /dev/null +++ b/Portfolio.WebUI.Server/wwwroot/data/projects.json @@ -0,0 +1,7 @@ +[ + { + "title": "AI-Driven D&D 5E Character Generator with React, Next.js, and OpenAI GPT-3 Engine", + "description": "Creates a credible D&D 5E character sheet, including backstory, based on user input. Ex.I would like to play a magical elf. Or I want to smash things with a big hammer. Would result in the AI choosing the best character to play with given the limitations and rules of the game (class, race, etc). The user would still be able to customize their character afterwards, and be prompted if they happen to break the rules of character generation; i.e. too many skill points assigned.", + "responsibilities": "Lead development in core functionality, including front and back-end development. Developed all JavaScript components and pages including the deterministic logic depending on decisions made by the AI, and the styling using the emotion library." + }, +] \ No newline at end of file diff --git a/Portfolio.WebUI.Server/wwwroot/data/workexperiences.json b/Portfolio.WebUI.Server/wwwroot/data/workexperiences.json new file mode 100644 index 0000000..2a8f451 --- /dev/null +++ b/Portfolio.WebUI.Server/wwwroot/data/workexperiences.json @@ -0,0 +1,24 @@ +[ + { + "title": "Junior Web Developer", + "company": "Universal Flight Concepts", + "startYear": 2022, + "endYear": 2024, + "details": "Part of a development team that worked on a full rewrite of a 'Secure Area' used by Admin, Students, Instructors and University coordinators to schedule flight and ground instruction, and took the application from ASP.Net 4.0/SQL Server 2016 to a stand-alone C# .Net Core 8, with Blazor WASM (Web Assembly) Microservices API, Identity Server integration, SQL Server 2019, Code-First Entity Framework & DB Migrations, Auto-Scaling Cloud Application" + }, + { + "title": "Web Development & Cybersecurity Teaching Assistant", + "company": "Oregon State University", + "startYear": 2019, + "endYear": 2020, + "details": "Interacted with and mentored students with relation to their area of study; created solutions to development projects before being assigned to students to ensure guidance and engrain best coding practices; held personal office hours to assist students mwith needs. HTML/CSS, C++, JavaScript, JSON, Node.js, RESTFUL API, MYSQL; public/private keys, key exchange, modern encryption methods, cyberattacks, TOR." + }, + { + "title": "Junior Web Developer", + "company": "DzyneFX", + "startYear": 2018, + "endYear": 2018, + "details": "Developed front-end UI and code for websites, as well as back-end code, data access layers, web services and RESTful APIs. Worked with symmetric and asymmetric data schemas. Request, register and configure SSL and TLS certificates. C#, PHP, MSSQL and MYSQL." + } + +] \ No newline at end of file