Skip to content

Commit 4ded615

Browse files
committed
added project page with details
1 parent b9b8759 commit 4ded615

File tree

3 files changed

+1083
-41
lines changed

3 files changed

+1083
-41
lines changed

index.html

Lines changed: 80 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,28 @@ <h2 class="project-title">Syscall-Based Runtime Detection & AI Enrichment</h2>
652652
<!-- Add more projects here when you have them -->
653653
<!-- Example: Copy a project-card from above and paste here -->
654654

655+
<article class="project-card">
656+
<div class="project-header">
657+
<div>
658+
<!-- <div class="project-id"></div> -->
659+
<h2 class="project-title">CI/CD Automation for SIEM Applications</h2>
660+
</div>
661+
<span class="tlp-label tlp-clear">TLP:CLEAR</span>
662+
</div>
663+
<p class="project-description">
664+
Built a fully automated CI/CD pipeline for SIEM applications delivery. Eliminated manual packaging and testing , reduced deployment time from hours to minutes.
665+
</p>
666+
<div class="project-tags">
667+
<span class="tag">CI/CD</span>
668+
<span class="tag">SIEM Engineering</span>
669+
<span class="tag">Automation</span>
670+
</div>
671+
<div class="project-footer">
672+
<a href="projects/ci-cd-automation-for-siem-applications.html" class="project-link" target="_blank">Details</a>
673+
<span class="project-date">2025.04</span>
674+
</div>
675+
</article>
676+
655677
</div>
656678
</div>
657679

@@ -665,51 +687,68 @@ <h2 class="project-title">Syscall-Based Runtime Detection & AI Enrichment</h2>
665687
</div>
666688

667689
<script>
668-
document.addEventListener('DOMContentLoaded', function() {
669-
// Update "Show More" button with additional project count
670-
const showMoreBtn = document.getElementById('showMoreBtn');
671-
if (additionalProjects.length > 0) {
672-
showMoreBtn.textContent = `Show More Projects (${additionalProjects.length})`;
673-
showMoreBtn.style.display = 'inline-block';
674-
} else {
675-
showMoreBtn.style.display = 'none';
676-
}
677-
678-
// Get last update date from most recent project
679-
const allProjectDates = document.querySelectorAll('.project-date');
680-
let latestDate = '2024.01.01';
681-
682-
allProjectDates.forEach(dateEl => {
683-
const dateText = dateEl.textContent.trim();
684-
if (dateText > latestDate) {
685-
latestDate = dateText;
690+
document.addEventListener('DOMContentLoaded', function() {
691+
// Count main projects (only the first projects-grid, not the one inside additionalProjects)
692+
const mainProjectsGrid = document.querySelector('.projects-grid');
693+
const mainProjects = mainProjectsGrid.querySelectorAll('.project-card');
694+
695+
// Count additional (hidden) projects - THIS WAS MISSING
696+
const additionalProjects = document.querySelectorAll('#additionalProjects .project-card');
697+
698+
// Auto-number all projects
699+
const allProjectCards = document.querySelectorAll('.project-card');
700+
allProjectCards.forEach((card, index) => {
701+
const projectId = card.querySelector('.project-id');
702+
if (projectId) {
703+
const projectNumber = String(index + 1).padStart(3, '0');
704+
projectId.textContent = `PROJECT-${projectNumber}`;
705+
}
706+
});
707+
708+
// Update "Show More" button with additional project count
709+
const showMoreBtn = document.getElementById('showMoreBtn');
710+
if (additionalProjects.length > 0) {
711+
showMoreBtn.textContent = `Show More Projects (${additionalProjects.length})`;
712+
showMoreBtn.style.display = 'inline-block';
713+
} else {
714+
showMoreBtn.style.display = 'none';
686715
}
687-
});
688-
689-
// Update status bar with latest date (only 1 status-item now)
690-
const statusItems = document.querySelectorAll('.status-item');
691-
if (statusItems.length >= 1) {
692-
const dateSpan = statusItems[0].querySelector('span');
693-
if (dateSpan) {
694-
dateSpan.textContent = `LAST UPDATE: ${latestDate}`;
716+
717+
// Get last update date from most recent project
718+
const allProjectDates = document.querySelectorAll('.project-date');
719+
let latestDate = '2024.01.01';
720+
721+
allProjectDates.forEach(dateEl => {
722+
const dateText = dateEl.textContent.trim();
723+
if (dateText > latestDate) {
724+
latestDate = dateText;
725+
}
726+
});
727+
728+
// Update status bar with latest date
729+
const statusItems = document.querySelectorAll('.status-item');
730+
if (statusItems.length >= 1) {
731+
const dateSpan = statusItems[0].querySelector('span');
732+
if (dateSpan) {
733+
dateSpan.textContent = `LAST UPDATE: ${latestDate}`;
734+
}
695735
}
696-
}
697736
});
698737

699-
function toggleProjects() {
700-
const additionalProjects = document.getElementById('additionalProjects');
701-
const btn = document.getElementById('showMoreBtn');
702-
const additionalProjectCount = document.querySelectorAll('#additionalProjects .project-card').length;
703-
704-
additionalProjects.classList.toggle('expanded');
705-
btn.classList.toggle('expanded');
706-
707-
if (additionalProjects.classList.contains('expanded')) {
708-
btn.textContent = 'Show Less';
709-
} else {
710-
btn.textContent = `Show More Projects (${additionalProjectCount})`;
711-
}
712-
}
738+
function toggleProjects() {
739+
const additionalProjects = document.getElementById('additionalProjects');
740+
const btn = document.getElementById('showMoreBtn');
741+
const additionalProjectCount = document.querySelectorAll('#additionalProjects .project-card').length;
742+
743+
additionalProjects.classList.toggle('expanded');
744+
btn.classList.toggle('expanded');
745+
746+
if (additionalProjects.classList.contains('expanded')) {
747+
btn.textContent = 'Show Less';
748+
} else {
749+
btn.textContent = `Show More Projects (${additionalProjectCount})`;
750+
}
751+
}
713752
</script>
714753

715754
</body>

0 commit comments

Comments
 (0)