diff --git a/content/images/partsERP-page-product_category.webp b/content/images/partsERP-page-product_category.webp index 39f2404..b5af393 100644 Binary files a/content/images/partsERP-page-product_category.webp and b/content/images/partsERP-page-product_category.webp differ diff --git a/index.html b/index.html index 731ce36..b7bbf3b 100644 --- a/index.html +++ b/index.html @@ -50,79 +50,77 @@

Featured Projects

-
+
+

Enterprise ERP & E-commerce System

Enhanced ERPNext platform with UK-specific accounting features and e-commerce integration. Supports multi-channel retail operations with automated order processing.

-

Key Features:

-
    -
  • UK tax compliance and reporting modules
  • -
  • Real-time inventory synchronisation
  • -
  • Multi-storefront management
  • -
  • Automated order fulfillment
  • -
-

Technologies: Python, MySQL / MariaDB, Docker

- +

partsERP Core Framework

A robust, open-source ERP framework showcasing system architecture and development practices. Over 100K lines of production-grade code.

-

Key Features:

-
    -
  • Data integrity verification
  • -
  • Authentication and role-based access control
  • -
  • Custom reporting API
  • -
  • Database abstraction layer and unit test coverage
  • -
-

Technologies: Python - Flask, MySQL / MariaDB, JavaScript

- +

Financial Data Reconciliation Tool

VBA Excel automation that simplifies complex data processing between multiple spreadsheets.

-

Key Features:

-
    -
  • Multi-system transaction matching
  • -
  • Configurable validation rules
  • -
  • Automated error detection
  • -
  • Audit trail generation
  • -
-
diff --git a/scripts/scripts.js b/scripts/scripts.js index ba78dcc..dc5f18b 100644 --- a/scripts/scripts.js +++ b/scripts/scripts.js @@ -4,7 +4,8 @@ function hookupPage() { console.log("Hooking up home page..."); hookupNav(); hookupScroll(); - hookupProjectThumbnails(); + // hookupProjectThumbnails(); + hookupProjectDetailButtons(); } function hookupNav() { console.log("Hooking up nav..."); @@ -42,6 +43,7 @@ function hookupScroll() { }); }); } +/* function hookupProjectThumbnails() { console.log("Hooking up project thumbnails..."); let demoButtonSelector = '.project-links .button'; @@ -71,6 +73,26 @@ function getProjectThumbnailContainer(projectName) { console.log({container}); return container; } +*/ +function hookupProjectDetailButtons() { + console.log("Hooking up project detail buttons..."); + let detailButtonSelector = '.project-detail-button'; + document.querySelectorAll(detailButtonSelector).forEach(detailButton => { + console.log("Hooking up project detail button..."); + detailButton.addEventListener('click', function() { + let projectDetailContainer = this.parentElement.querySelector('.project-detail-container'); + let wasActive = projectDetailContainer.classList.contains(activeFlag); + if (wasActive) { + projectDetailContainer.classList.remove(activeFlag); + detailButton.innerText = 'Show Details'; + } + else { + projectDetailContainer.classList.add(activeFlag); + detailButton.innerText = 'Hide Details'; + } + }); + }); +} // Google Translate function initGoogleTranslateElement() { diff --git a/styles/styles.css b/styles/styles.css index a8c93c7..036d5aa 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -129,13 +129,14 @@ ul, li { margin-top: 2rem; } +.project-card-gridslot { +} .project-card { background: white; padding: 1.5rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - - position: relative; + height: fit-content; } .expertise-card h3, @@ -196,6 +197,30 @@ ul, li { height: 200px; /* Adjust the height as needed * / } */ +.project-detail-button { + font-size: 0.9rem; + text-decoration: underline; + margin-top: 1vh; +} +.project-thumbnail { + margin-top: 2vh; +} +.project-thumbnail img { + max-width: 100%; + height: auto; +} +.project-detail-container { + display: none; +} +.project-detail-container.active { + display: block; +} + +.project-links { + text-align: center; + margin-top: 1vh; +} + /* Experience */ .experience-card { background: white;