From 903eb88fdcdabdb7ce17bf36dee8a8d1624c23ea Mon Sep 17 00:00:00 2001 From: Zaine Arch Date: Sat, 10 Jan 2026 20:57:54 +0000 Subject: [PATCH] added progress bar for competencies --- assets/scripts/competency-status-board.js | 19 +++++- assets/styles/kanban.css | 25 ++++++++ blogs/blogs-list.org | 4 +- home/status.org | 7 +++ posts/posts-list.org | 2 +- recently-updated.org | 4 +- sitemap.org | 74 +++++++++++------------ 7 files changed, 92 insertions(+), 43 deletions(-) diff --git a/assets/scripts/competency-status-board.js b/assets/scripts/competency-status-board.js index 25cb779..d994c82 100644 --- a/assets/scripts/competency-status-board.js +++ b/assets/scripts/competency-status-board.js @@ -81,6 +81,22 @@ function countByState(items) { }, {}); } +async function updateProgress(items) { + const total = items.length; + const completed = items.filter(i => i.state === "completed").length; + + + const percent = total === 0 ? 0 : Math.round((completed / total) * 100); + + console.log(`Progress: ${percent}% (${completed}/${total})`); + + const fill = document.getElementById("progress-fill"); + const label = document.getElementById("progress-label"); + + if (fill) fill.style.width = `${percent}%`; + if (label) label.textContent = `${percent}% completed`; +} + function createCard(item) { const card = document.createElement("div"); card.className = "kanban-card"; @@ -158,8 +174,9 @@ function renderBoard(items) { async function loadBoard() { const res = await fetch("/api/competencies/items"); const items = await res.json(); + + updateProgress(items); renderBoard(items); populateMobileControls(items); } - loadBoard(); diff --git a/assets/styles/kanban.css b/assets/styles/kanban.css index da639bd..19d3c4b 100644 --- a/assets/styles/kanban.css +++ b/assets/styles/kanban.css @@ -181,3 +181,28 @@ cursor: default; background-image: none; } +#progress-wrapper { + margin-bottom: 16px; +} + +#progress-label { + font-size: 14px; + margin-bottom: 6px; + text-align: right; + color: #555; +} + +#progress-bar { + width: 100%; + height: 10px; + background: #e5e7eb; + border-radius: 999px; + overflow: hidden; +} + +#progress-fill { + height: 100%; + width: 0%; + background: #22c55e; + transition: width 0.3s ease; +} diff --git a/blogs/blogs-list.org b/blogs/blogs-list.org index 231514a..65042be 100644 --- a/blogs/blogs-list.org +++ b/blogs/blogs-list.org @@ -4,8 +4,8 @@ See the categories: @@html:Categories@@ * Blogs: -- [[file:2026/2026-list.org][2026 List]] @@html:06-01-2026 16:08@@ -- [[file:2025/2025-list.org][2025 List]] @@html:06-01-2026 16:08@@ +- [[file:2026/2026-list.org][2026 List]] @@html:10-01-2026 20:49@@ +- [[file:2025/2025-list.org][2025 List]] @@html:10-01-2026 20:49@@ - [[file:2026/01-january/04-01-week-review.org][[04-01-2026] - Weekly Review]] @@html:04-01-2026 12:12@@ @@html: @@ - [[file:2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]] @@html:28-12-2025 12:12@@ @@html: @@ - [[file:2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]] @@html:21-12-2025 12:12@@ @@html: @@ diff --git a/home/status.org b/home/status.org index db75ce9..2cac6b9 100644 --- a/home/status.org +++ b/home/status.org @@ -8,6 +8,13 @@ This page shows the status of the competencies I am working on (*grad*) #+BEGIN_EXPORT html +
+
0% completed
+
+
+
+
+

Loading status…

diff --git a/posts/posts-list.org b/posts/posts-list.org index f905ce9..8c1b0ae 100644 --- a/posts/posts-list.org +++ b/posts/posts-list.org @@ -4,7 +4,7 @@ See the categories: @@html:Categories@@ * Posts: -- [[file:career/career-list.org][Career List]] @@html:06-01-2026 16:08@@ +- [[file:career/career-list.org][Career List]] @@html:10-01-2026 20:49@@ - [[file:career/probation-objectives.org][Probation Objectives:]] @@html:08-12-2025 17:55@@ @@html: @@ @@html: @@ - [[file:career/airflow.org][Datamarts, Airflow and DAG's]] @@html:15-11-2025 18:37@@ @@html: @@ @@html: @@ - [[file:career/normalisation.org][Benefits of Normalisation]] @@html:10-11-2025 18:04@@ @@html: @@ @@html: @@ diff --git a/recently-updated.org b/recently-updated.org index 8d1f1df..d9d3d04 100644 --- a/recently-updated.org +++ b/recently-updated.org @@ -2,6 +2,8 @@ #+OPTIONS: toc:nil num:nil * Recently Updated (top 26 files - per lima's request) +- [[file:home/status.org][Competency Status Board]] @@html:2026-01-10 20:47@@ +- [[file:posts/career/probation-objectives.org][Probation Objectives:]] @@html:2026-01-07 18:03@@ - [[file:posts/career/airflow.org][Datamarts, Airflow and DAG's]] @@html:2026-01-06 16:08@@ - [[file:home/backlog.org][Backlog]] @@html:2026-01-06 16:00@@ - [[file:posts/career/invest-principles.org][Invest Principles]] @@html:2026-01-04 17:15@@ @@ -9,10 +11,8 @@ - [[file:posts/career/lean.org][Lean]] @@html:2025-12-30 21:04@@ - [[file:blogs/2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]] @@html:2025-12-30 18:47@@ - [[file:blogs/2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]] @@html:2025-12-30 10:15@@ -- [[file:posts/career/probation-objectives.org][Probation Objectives:]] @@html:2025-12-29 08:11@@ - [[file:home/notes.org][Notes]] @@html:2025-12-18 22:30@@ - [[file:home/setup.org][Setup]] @@html:2025-12-18 22:00@@ -- [[file:home/status.org][Competency Status Board]] @@html:2025-12-18 21:16@@ - [[file:posts/career/wireframe-designs.org][Wireframe Designs]] @@html:2025-12-16 21:44@@ - [[file:posts/career/solid-principles.org][SOLID Principles]] @@html:2025-12-16 21:44@@ - [[file:posts/career/retrospectives.org][Retrospectives]] @@html:2025-12-16 21:44@@ diff --git a/sitemap.org b/sitemap.org index de70107..c6b74d2 100644 --- a/sitemap.org +++ b/sitemap.org @@ -9,18 +9,36 @@ - [[file:lima/gems.org][gems]] - [[file:lima/one.org][one]] - [[file:lima/limas-play-area.org][limas-play-area]] -- books - - [[file:books/books-list.org][Books List]] - - clean-code - - [[file:books/clean-code/clean-code-notes.org][Clean Code Notes]] +- home + - [[file:home/countdown.org][Countdown]] + - [[file:home/contact.org][Contact]] + - [[file:home/backlog.org][Backlog]] + - [[file:home/services.org][Service]] + - [[file:home/setup.org][Setup]] + - [[file:home/notes.org][Notes]] + - [[file:home/status.org][Competency Status Board]] + - [[file:home/categories.org][Categories]] +- posts + - [[file:posts/posts-intro.org][Posts Introduction]] + - [[file:posts/posts-list.org][Posts List]] + - career + - [[file:posts/career/solid-principles.org][SOLID Principles]] + - [[file:posts/career/owasp.org][OWASP Top Ten]] + - [[file:posts/career/lean.org][Lean]] + - [[file:posts/career/retrospectives.org][Retrospectives]] + - [[file:posts/career/invest-principles.org][Invest Principles]] + - [[file:posts/career/career-intro.org][Career Introduction]] + - [[file:posts/career/wireframe-designs.org][Wireframe Designs]] + - [[file:posts/career/management-of-self.org][Management of self training]] + - [[file:posts/career/requirements-features.org][Requirements, features, user stories, tasks, walking skeletons]] + - [[file:posts/career/normalisation.org][Benefits of Normalisation]] + - [[file:posts/career/airflow.org][Datamarts, Airflow and DAG's]] + - [[file:posts/career/probation-objectives.org][Probation Objectives:]] + - [[file:posts/career/career-list.org][Career List]] - blogs - [[file:blogs/blogs-intro.org][Blogs Introduction]] - [[file:blogs/publish-pages.org][How to publish pages using Org Publish]] - [[file:blogs/blogs-list.org][Blogs List]] - - 2026 - - [[file:blogs/2026/2026-list.org][2026 List]] - - 01-january - - [[file:blogs/2026/01-january/04-01-week-review.org][[04-01-2026] - Weekly Review]] - 2025 - [[file:blogs/2025/2025-list.org][2025 List]] - 11-november @@ -42,40 +60,22 @@ - [[file:blogs/2025/12-december/14-12-week-review.org][[14-12-2025] - Weekly Review]] - [[file:blogs/2025/12-december/21-12-week-review.org][[21-12-2025] - Weekly Review]] - [[file:blogs/2025/12-december/28-12-week-review.org][[28-12-2025] - Weekly Review]] -- home - - [[file:home/countdown.org][Countdown]] - - [[file:home/contact.org][Contact]] - - [[file:home/backlog.org][Backlog]] - - [[file:home/services.org][Service]] - - [[file:home/status.org][Competency Status Board]] - - [[file:home/setup.org][Setup]] - - [[file:home/notes.org][Notes]] - - [[file:home/categories.org][Categories]] -- posts - - [[file:posts/posts-intro.org][Posts Introduction]] - - [[file:posts/posts-list.org][Posts List]] - - career - - [[file:posts/career/solid-principles.org][SOLID Principles]] - - [[file:posts/career/owasp.org][OWASP Top Ten]] - - [[file:posts/career/lean.org][Lean]] - - [[file:posts/career/retrospectives.org][Retrospectives]] - - [[file:posts/career/invest-principles.org][Invest Principles]] - - [[file:posts/career/career-intro.org][Career Introduction]] - - [[file:posts/career/wireframe-designs.org][Wireframe Designs]] - - [[file:posts/career/management-of-self.org][Management of self training]] - - [[file:posts/career/requirements-features.org][Requirements, features, user stories, tasks, walking skeletons]] - - [[file:posts/career/normalisation.org][Benefits of Normalisation]] - - [[file:posts/career/airflow.org][Datamarts, Airflow and DAG's]] - - [[file:posts/career/probation-objectives.org][Probation Objectives:]] - - [[file:posts/career/career-list.org][Career List]] + - 2026 + - [[file:blogs/2026/2026-list.org][2026 List]] + - 01-january + - [[file:blogs/2026/01-january/04-01-week-review.org][[04-01-2026] - Weekly Review]] +- books + - [[file:books/books-list.org][Books List]] + - clean-code + - [[file:books/clean-code/clean-code-notes.org][Clean Code Notes]] - tags - - [[file:tags/learning.org][Tag: learning]] - [[file:tags/introduction.org][Tag: introduction]] - - [[file:tags/website.org][Tag: website]] + - [[file:tags/learning.org][Tag: learning]] - [[file:tags/notes.org][Tag: notes]] - - [[file:tags/review.org][Tag: review]] - [[file:tags/emacs.org][Tag: emacs]] - [[file:tags/education.org][Tag: education]] + - [[file:tags/website.org][Tag: website]] + - [[file:tags/review.org][Tag: review]] - [[file:tags/reading.org][Tag: reading]] - [[file:tags/maths.org][Tag: maths]] - [[file:tags/insights.org][Tag: insights]] \ No newline at end of file