portfolio overhaul

This commit is contained in:
SowinskiBraeden committed 2026-03-14 15:41:08 -07:00
1 parent 2b0b41f773
commit 7c26e115ee
20 files changed
+1874 -683

No files matched your search

+80 -209
View File
@@ -1,27 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<html lang='en'>
<head>
<title>Braeden Sowinski</title>
<meta name='description' content="Web portfolio of Braeden Sowinski (McDazzzled)" />
<meta name='description' content="Braeden Sowinski's portfolio" />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, McDazzzled" />
<meta name='keywords' content="Braeden Sowinski, projects, portfolio, software engineer" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<!-- Load CSS -->
<link rel="stylesheet" href="./public/css/style.css">
<link rel="stylesheet" href="./public/css/projects.css">
</head>
<body class="js-stop-transition">
<header class=header>
<nav class=nav>
<div class=logo>
<a href="/" title="sowinski.dev">
<img src="https://avatars.githubusercontent.com/u/48144618?v=4" alt=logo style="border-radius:50%;"
aria-label=logo height=32>sowinski.dev
<header class="header">
<nav class="nav">
<div class="logo">
<a href="./" title="sowinski.dev (Alt + H)">
<img src="https://avatars.githubusercontent.com/u/48144618?v=4" alt="logo" style="border-radius:50%;"
aria-label="logo" height="32">sowinski.dev
</a>
<span class="logo-switches">
<button id=theme-toggle accesskey=t title="(Alt + T)">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z" />
@@ -43,17 +43,17 @@
</div>
<ul id="menu" class="nav__links">
<li id="home-link">
<a href="/" title="Home">
<a href="./" title="Home">
<span class="active">Home</span>
</a>
</li>
<li id="about-link">
<a href="/about" title="about">
<a href="./about.html" title="About">
<span class="active">About</span>
</a>
</li>
<li id="projects-link">
<a href="/projects" title="projects">
<a href="./projects.html" title="Projects">
<span class="active">Projects</span>
</a>
</li>
@@ -61,215 +61,86 @@
<p class="menu cta">Menu</p>
</nav>
<!-- Moble Nav Menu -->
<div id="mobile__menu" class="overlay">
<a class="close">&times;</a>
<button type="button" class="close" aria-label="Close menu">&times;</button>
<div class="overlay__content">
<a href="/" title="Home">
<span class="active">Home</span>
</a>
<a href="/about" title="about">
<span class="active">About</span>
</a>
<a href="/projects" title="projects">
<span class="active">Projects</span>
</a>
<a href="./" title="Home"><span class="active">Home</span></a>
<a href="./about.html" title="About"><span class="active">About</span></a>
<a href="./projects.html" title="Projects"><span class="active">Projects</span></a>
</div>
</div>
</header>
<section class="card-body">
<div class="container">
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>01</h2>
<h3>Schedule Generator App</h3>
</div>
<div class="content-body">
<p>
A desktop application to interact with my schedule generator algorithm.
The algorithm is written in Python and generates master and student timetables.
I am proud of the algorithm I devised to solve this complex real-world problem.
</p>
<a href="https://github.com/SowinskiBraeden/ScheduleGeneratorApp" target="_blank">Github</a>
</div>
</div>
<main class="projects-page page-shell">
<section class="projects-hero">
<p class="eyebrow">Projects & Updates</p>
<h1>Selected work, recent milestones, and technical writeups.</h1>
<p class="projects-intro">
This section now loads portfolio entries from markdown files so new projects, updates, and achievements can be
added without rebuilding the page structure by hand.
</p>
</section>
<section class="content-section">
<div class="section-heading">
<div>
<p class="eyebrow">Portfolio</p>
<h2>Selected Projects</h2>
</div>
<a class="section-link" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer">View Github</a>
</div>
<div id="projects-grid" class="content-grid">
<p class="loading-state">Loading projects...</p>
</div>
</section>
<section class="content-section updates-section">
<div class="section-heading">
<div>
<p class="eyebrow">Recent</p>
<h2>Updates & Achievements</h2>
</div>
</div>
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>02</h2>
<h3>School Management API</h3>
</div>
<div class="content-body">
<p>
I have developed an API to manage an entire school, keeping track of students and staff
details. With the potential to be expanded upon more, I have yet to find the time to
further develop this API, but I used this project to deepen my understanding of the
programming language Go, API development, and clear documentation.
</p>
<a href="https://github.com/SowinskiBraeden/school-management-api" target="_blank">Github</a>
</div>
</div>
</div>
<div id="updates-grid" class="content-grid updates-grid">
<p class="loading-state">Loading updates...</p>
</div>
</section>
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>03</h2>
<h3>Lines Police CAD</h3>
</div>
<div class="content-body">
<p>
<strong style="color:#eb5234;">Lines Police CAD</strong> is a website service built with
Node.js utilizing Express.js and the MongoDB frameworks. With over half a million users, I
have contributed new features, bug fixes as well as serving general tech support.
</p>
<div id="links">
<a href="https://www.linespolice-cad.com/" target="_blank">View LPC</a>
<a href="https://github.com/LinesMerrill/police-cad" target="_blank">Github</a>
</div>
</div>
</div>
</div>
<footer class="footer flex-container site-footer">
<p>Get in touch with me!</p>
<div class="social-icons">
<a class="icon" href="https://www.linkedin.com/in/SowinskiBraeden" target="_blank" rel="noopener noreferrer me"
title="LinkedIn">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-linkedin"
viewBox="0 0 16 16">
<path
d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" />
</svg>
</a>
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="Github">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0020 4.77 5.07 5.07 0 0019.91 1S18.73.65 16 2.48a13.38 13.38 0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 005 4.77 5.44 5.44 0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 009 18.13V22" />
</svg>
</a>
<a class="icon" href="mailto:braeden@sowinski.dev" target="_blank" rel="noopener noreferrer me" title="Email">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 21" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" />
<polyline points="22,6 12,13 2,6" />
</svg>
</a>
</div>
</footer>
</main>
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>04</h2>
<h3>DayZ Reforger Bot</h3>
</div>
<div class="content-body">
<p>
Another Discord bot I have developed for a game, greatly displays my ability to work on
large scale projects, with modularity, and expandability in mind. This project focuses
on parsing data, storing data, and providing this data in an appealing way to users. With
many key features built on top of the parsed data from the game server.
</p>
<a href="https://github.com/SowinskiBraeden/dayz-reforger" target="_blank">Github</a>
</div>
</div>
</div>
</div>
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>05</h2>
<h3>XP-System</h3>
</div>
<div class="content-body">
<p>
An old programming project that introduced me into the valuable world of web applications.
The XP-System was a way for teachers to create assignments for students, and for students
to gain XP from completing assignments, unlocking levels to make the learning experience
more fun and interactive with their peers.
</p>
<a href="https://github.com/SowinskiBraeden/XP-System" target="_blank">Github</a>
</div>
</div>
</div>
</div>
<div class="card">
<div class="box">
<div class="content">
<div class="content-head">
<h2>06</h2>
<h3>Portfolio</h3>
</div>
<div class="content-body">
<p>
I am not a huge fan of UI design, but I am a fan of minimalistic design, and this portfolio
is just that. Simple, minimalistic, and sleek for the eye. Displaying my projects and sharing
about me.
</p>
<a href="https://github.com/SowinskiBraeden/SowinskiBraeden" target="_blank">Github</a>
</div>
</div>
</div>
</div>
<footer class="footer flex-container">
<p>Get in touch with me!</p>
<div class="social-icons">
<a class="icon" href="https://www.linkedin.com/in/SowinskiBraeden" target=_blank rel="noopener noreferrer me"
title=LinkedIn>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-linkedin"
viewBox="0 0 16 16">
<path
d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" />
</svg>
</a>
<a class="icon" href=https://github.com/SowinskiBraeden target=_blank rel="noopener noreferrer me" title=Github>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22" />
</svg>
</a>
<a class="icon" href=https://twitter.com/braedensowinski target=_blank rel="noopener noreferrer me" title=Twitter>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
d="M23 3a10.9 10.9.0 01-3.14 1.53 4.48 4.48.0 00-7.86 3v1A10.66 10.66.0 013 4s-4 9 5 13a11.64 11.64.0 01-7 2c9 5 20 0 20-11.5a4.5 4.5.0 00-.08-.83A7.72 7.72.0 0023 3z" />
</svg>
</a>
<a class="icon" href="mailto:braeden@sowinski.dev" target=_blank rel="noopener noreferrer me" title=Email>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 21" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path d="M4 4h16c1.1.0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1.0-2-.9-2-2V6c0-1.1.9-2 2-2z" />
<polyline points="22,6 12,13 2,6" />
</svg>
</a>
</div>
</footer>
</div>
</section>
<!-- Import Mobile.js for mobile nav menu -->
<script src="./public/scripts/mobile.js"></script>
<!-- Disable transitions on webpage load -->
<script>document.body.classList.remove('js-stop-transition')</script>
<!-- Change Theme Scripts -->
<script src="./public/scripts/theme.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="./public/scripts/content.js"></script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
document.body.className.includes("light") ? (
document.body.classList.remove('light'),
localStorage.setItem("pref-theme",'dark')
) : (
document.body.classList.add('light'),
localStorage.setItem("pref-theme",'light')
),
"dark" == sessionStorage.getItem("theme") ? sessionStorage.setItem("theme", "light") : sessionStorage.setItem("theme", "dark");
});
</script>
<script>
// If storage is supported set theme to light by default
if (typeof(Storage) !== "undefined") {
if (sessionStorage.getItem("theme") == null || sessionStorage.getItem("theme") == undefined) sessionStorage.setItem("theme", "dark");
if (sessionStorage.getItem("theme") == 'light') {
document.body.className.includes("dark") ? (
document.body.classList.remove('dark'),
localStorage.setItem("pref-theme",'light')
) : (
document.body.classList.add('dark'),
localStorage.setItem("pref-theme",'dark')
);
}
}
window.PORTFOLIO_CONTENT.initListPage();
</script>
</body>