From 2599fcc5bcd22579353b872e6c6b8aae3e37f694 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 02:13:42 +0530 Subject: [PATCH 01/23] Create manifest.json --- manifest.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 manifest.json diff --git a/manifest.json b/manifest.json new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/manifest.json @@ -0,0 +1 @@ + From b8ccfe6b8294947da2ce7d1991cdbd6e4843594e Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 02:17:05 +0530 Subject: [PATCH 02/23] Files Uploaded --- background.js | 0 popup.css | 0 popup.html | 0 popup.js | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 background.js create mode 100644 popup.css create mode 100644 popup.html create mode 100644 popup.js diff --git a/background.js b/background.js new file mode 100644 index 00000000..e69de29b diff --git a/popup.css b/popup.css new file mode 100644 index 00000000..e69de29b diff --git a/popup.html b/popup.html new file mode 100644 index 00000000..e69de29b diff --git a/popup.js b/popup.js new file mode 100644 index 00000000..e69de29b From d7876405ce2a9b251060b126000c7fe0dffd92ab Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:48:49 +0530 Subject: [PATCH 03/23] Update popup.css --- popup.css | 1 + 1 file changed, 1 insertion(+) diff --git a/popup.css b/popup.css index e69de29b..60d565d4 100644 --- a/popup.css +++ b/popup.css @@ -0,0 +1 @@ +lol From 84661f1c9ff85bde02b652ae921f275f9d1ce2ea Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:49:13 +0530 Subject: [PATCH 04/23] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 8b137891..039727ec 100644 --- a/manifest.json +++ b/manifest.json @@ -1 +1 @@ - +lol From 43927dbfbf1beb2413dedb22c76bb99de459cf4c Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:49:34 +0530 Subject: [PATCH 05/23] Update popup.html --- popup.html | 1 + 1 file changed, 1 insertion(+) diff --git a/popup.html b/popup.html index e69de29b..60d565d4 100644 --- a/popup.html +++ b/popup.html @@ -0,0 +1 @@ +lol From d38385842abb6948460828899d5e50677b5a178b Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:55:24 +0530 Subject: [PATCH 06/23] Update popup.html --- popup.html | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/popup.html b/popup.html index 60d565d4..c59521c8 100644 --- a/popup.html +++ b/popup.html @@ -1 +1,35 @@ -lol + + + + Screen Time Tracker + + + +
+

Screen Time Tracker

+ +
+ + +
+ +
+

Today's Activity

+
+ Total screen time: + 0m +
+
+
+ +
+

Last 7 Days

+
+ +
+
+ + + + + From 18c99b39f3dff95e196529e65a062687fdc3d21e Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:55:41 +0530 Subject: [PATCH 07/23] Update manifest.json --- manifest.json | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 039727ec..cc699b13 100644 --- a/manifest.json +++ b/manifest.json @@ -1 +1,28 @@ -lol +{ + "manifest_version": 3, + "name": "Screen Time Tracker", + "version": "1.0", + "description": "Tracks time spent on websites and provides detailed usage statistics", + "permissions": [ + "storage", + "tabs", + "activeTab", + "alarms" + ], + "background": { + "service_worker": "background.js" + }, + "action": { + "default_popup": "popup.html", + "default_icon": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } + }, + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } +} From dd5d94a4006437b8cccf8e2d0c7411470806b0c7 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:55:55 +0530 Subject: [PATCH 08/23] Update popup.css --- popup.css | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/popup.css b/popup.css index 60d565d4..aa10f63a 100644 --- a/popup.css +++ b/popup.css @@ -1 +1,173 @@ -lol +body { + font-family: 'Segoe UI', Arial, sans-serif; + width: 350px; + margin: 0; + background: #f8f9fa; + color: #2c3e50; +} + +.container { + padding: 20px; + background: white; + border-radius: 12px; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); + margin: 8px; +} + +h1 { + font-size: 20px; + margin-top: 0; + color: #1a73e8; + text-align: center; + font-weight: 600; +} + +h2 { + font-size: 16px; + margin-top: 16px; + color: #3c4043; +} + +.tabs { + display: flex; + margin-bottom: 20px; + border-bottom: 1px solid #e0e0e0; + padding: 0 8px; +} + +.tab-button { + flex: 1; + background: none; + border: none; + padding: 12px; + cursor: pointer; + font-size: 14px; + color: #5f6368; + transition: all 0.3s ease; + position: relative; + font-weight: 500; +} + +.tab-button:hover { + color: #1a73e8; +} + +.tab-button.active { + color: #1a73e8; +} + +.tab-button.active::after { + content: ''; + position: absolute; + bottom: -1px; + left: 0; + width: 100%; + height: 2px; + background: #1a73e8; + transition: all 0.3s ease; +} + +.tab-content { + display: none; + opacity: 0; + transition: opacity 0.3s ease; +} + +.tab-content.active { + display: block; + opacity: 1; +} + +.total-time { + margin-bottom: 20px; + font-weight: 500; + background: #f1f3f4; + padding: 12px; + border-radius: 8px; + text-align: center; +} + +.stats-container { + max-height: 300px; + overflow-y: auto; + padding: 4px; +} + +.site-stat { + display: flex; + flex-direction: column; + padding: 12px; + border-radius: 8px; + background: #f8f9fa; + margin-bottom: 8px; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.site-stat:hover { + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.site-info { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; +} + +.site-name { + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #202124; + font-weight: 500; +} + +.site-time { + margin-left: 12px; + color: #5f6368; + font-weight: 500; +} + +.bar-container { + height: 6px; + width: 100%; + background-color: #e8eaed; + border-radius: 8px; + overflow: hidden; +} + +.bar { + height: 100%; + background-color: #1a73e8; + border-radius: 8px; + transition: width 0.3s ease; +} + +/* Custom scrollbar */ +.stats-container::-webkit-scrollbar { + width: 8px; +} + +.stats-container::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; +} + +/* Chart styles */ +#weeklyChart { + margin-top: 16px; + border-radius: 8px; + padding: 8px; + background: white; +} From 13a5db81403c45b86d8cda9cb5fce28846212dd7 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:57:57 +0530 Subject: [PATCH 09/23] Update popup.css --- popup.css | 2 -- 1 file changed, 2 deletions(-) diff --git a/popup.css b/popup.css index aa10f63a..b3e8f587 100644 --- a/popup.css +++ b/popup.css @@ -145,7 +145,6 @@ h2 { transition: width 0.3s ease; } -/* Custom scrollbar */ .stats-container::-webkit-scrollbar { width: 8px; } @@ -164,7 +163,6 @@ h2 { background: #a8a8a8; } -/* Chart styles */ #weeklyChart { margin-top: 16px; border-radius: 8px; From d1da5711a9c6512bbbe70e7bfb9b6606d1e458a5 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:24:44 +0530 Subject: [PATCH 10/23] Create README.md --- submissions/Screen Time Tracker/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 submissions/Screen Time Tracker/README.md diff --git a/submissions/Screen Time Tracker/README.md b/submissions/Screen Time Tracker/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/submissions/Screen Time Tracker/README.md @@ -0,0 +1 @@ + From 2ff002990cf19c0936cc8c5bcaae511f43ac7f71 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:29:20 +0530 Subject: [PATCH 11/23] Add files via upload --- submissions/Screen Time Tracker/background.js | 0 .../Screen Time Tracker/icons/icon128.png | 1 + .../Screen Time Tracker/icons/icon16.png | 1 + .../Screen Time Tracker/icons/icon48.png | 1 + submissions/Screen Time Tracker/manifest.json | 28 +++ submissions/Screen Time Tracker/popup.css | 171 ++++++++++++++++++ submissions/Screen Time Tracker/popup.html | 35 ++++ submissions/Screen Time Tracker/popup.js | 0 8 files changed, 237 insertions(+) create mode 100644 submissions/Screen Time Tracker/background.js create mode 100644 submissions/Screen Time Tracker/icons/icon128.png create mode 100644 submissions/Screen Time Tracker/icons/icon16.png create mode 100644 submissions/Screen Time Tracker/icons/icon48.png create mode 100644 submissions/Screen Time Tracker/manifest.json create mode 100644 submissions/Screen Time Tracker/popup.css create mode 100644 submissions/Screen Time Tracker/popup.html create mode 100644 submissions/Screen Time Tracker/popup.js diff --git a/submissions/Screen Time Tracker/background.js b/submissions/Screen Time Tracker/background.js new file mode 100644 index 00000000..e69de29b diff --git a/submissions/Screen Time Tracker/icons/icon128.png b/submissions/Screen Time Tracker/icons/icon128.png new file mode 100644 index 00000000..6ba518d4 --- /dev/null +++ b/submissions/Screen Time Tracker/icons/icon128.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF0WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzE0LTIyOjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI0LTAzLTE5VDE0OjQ3OjQ3LTA0OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgc3RFdnQ6d2hlbj0iMjAyNC0wMy0xOVQxNDo0Nzo0Ny0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wkzxRwAABPlJREFUeJztnVtsFFUYx3/fLqW0tKXQUqAFSgFFKqgxGBHxEjWKYowxPqgxRl80Rh+M0cQYE2OMiYmJiYkvxhh9MMYYb9EYNcYLGo3xEjWKYEBFEJBSaKGU0tK2dI8P27Wzs2d2z8zOzM7Z8/8lTbY7Z77v+5+zc+bMme98R1QVQ7okkg7ASDamgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKK \ No newline at end of file diff --git a/submissions/Screen Time Tracker/icons/icon16.png b/submissions/Screen Time Tracker/icons/icon16.png new file mode 100644 index 00000000..d9010eca --- /dev/null +++ b/submissions/Screen Time Tracker/icons/icon16.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAABYUlEQVQ4jZ2TsUrDUBSGv5OkSZO0NaUPUBwEwUEQBEFwcHBwcHBwcHBwcHDwEQQfQhAEQRAEB0EQBEFwEARBEARBsC1Jk6RJ0qS5DsVU2qa24A/ncs7/n3O4nHPhj6cyv1jf3T842D84PDo+OT27vLrOZvP5QiaTuS0UCrf5fP4un8/fZ7PZh3Q6/RiLxZ6i0ehzOBx+DYVCuUAg8CaEyPt8vne3213weDzFdd0y27YrQoiq1+utua7b8Pl8TcuyWqZptkVRbAshukIIPyB9T5IkCiGQJAlFUVAUBVVV0TQNRVFQVRVRFNE0DU3TkGUZRVGQZRlZljEMA13XMQwDXdfRNA1d11/nOI5jWZbjOI5jWZbjOI5jWZbjOI5jWZZlWZb1E2CMsdlsxmaz2Z9Ya2HbNpPJhNFoxGg0YjweMxwOGQwG9Pt9er0evV6PTqdDu92m1WrRbDZpNBrU63VqtRrVapVKpUK5XP4CzqnHQwdXLxQAAAAASUVORK5CYII= \ No newline at end of file diff --git a/submissions/Screen Time Tracker/icons/icon48.png b/submissions/Screen Time Tracker/icons/icon48.png new file mode 100644 index 00000000..d90e1bf9 --- /dev/null +++ b/submissions/Screen Time Tracker/icons/icon48.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADv0lEQVRoge2ZW2hcVRSGv7VnJslkJpNJMk3SNG2T1jS1RhNrK1VrVbygKFLFCxREEFERBB8E8UF8EHwQfBAf9MGLIj4oiKIIXvCGVuulVqPWJk1tm8Q2mWSSzEwymcs+PiRNOpk5k5wz44MW/MNmn332Wv+/z9p7nX02HMIhHMIi4P8OoKampiYajfYahvGc3+9vqaqqOr5///56v9//q2maT/l8vvZwOHwkFovV+3y+30zTfNzr9R6NRCLHYrFYvdfr/cM0zYc9Hs/xcDh8vLq6+i+fz/eQYRgnI5HIyXg8XrcgAMuyzp44ceKZbDZ7eXd3d8O2bds2nzt37sr+/v4tqVRq/alTp27KZrOXdXV1bdq+ffvG8+fPX9XX17cpnU5f0d7evimTyVze09OzcefOnRt6e3s39/f3b0mn01d2dHRs2rNnz4ZEIrElmUxe3dfXt2nv3r3rFwQgm83S2NhIMpkkkUhQKBQoFAoUi0VM00REsCwLEcE0TYrFIsVikWKxSKFQIJ/Pk8/nyeVy5HI5stks2WyWTCZDJpMhk8mQTqfJ5/Nks1kymQzpdJpcLkcul5s3gPJ/B1BbW0tra2tZfbZtMzw8TDKZnLXOtm1GRkYYGhqas862bUZHRxkcHJyzLpVKMTAwMGedZVmMjY0xMDAwZ93/BqCuro6mpqay+mzbZnx8nOHh4VnrbNtmYmKCwcHBOetu3LiRlpaWOetSqRR9fX1z1lmWxeTkJH19fXPW2bbN1NQUvb29c9YtGEBDQwONjY1l9YkIU1NTJBKJWetEhOnpaQYGBuass22b6elpEonEnHWpVIre3t4562zbZmZmhp6enjnrbNtmdnaW7u7uOesWDKCxsZGGhoay+kSEmZkZ+vv7Z60TEWZnZ+nr65uzzrZtZmdn6e/vn7MulUrR09MzZ51t2+RyObq7u+ess22bfD5PV1fXnHULBtDU1ER9fX1ZfSJCPp+nu7t71joRoVAo0NXVNW+dZVl0dnbOWZdKpejs7JyzzrZtCoUCHR0dc9bZtk2xWKS9vX3OugUDaG5uprq6uqw+EaFYLNLe3j5rnYhgWRbt7e1z1tm2jWVZtLW1zVmXSqU4e/bsnHW2bWNZFmfOnJmzzrZtLMvizJkzc9YtGEBLSwuRSKSsPhGhVCpx+vTpWetEhFKpxOnTp+ets22bUqnEqVOn5qxLpVKcPHlyzjrbtimVSpw8eXLOOtu2KZVKnDhxYs66BQNobW0lHA6X1ScilEolTp48OWudiGDbNidOnJi3zrZtbNvm+PHjc9alUimOHTs2Z51t29i2zbFjx+ass22bUqnE0aNH56w7hEM4hEU4fwO0OBnPo+UQmwAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/submissions/Screen Time Tracker/manifest.json b/submissions/Screen Time Tracker/manifest.json new file mode 100644 index 00000000..cc699b13 --- /dev/null +++ b/submissions/Screen Time Tracker/manifest.json @@ -0,0 +1,28 @@ +{ + "manifest_version": 3, + "name": "Screen Time Tracker", + "version": "1.0", + "description": "Tracks time spent on websites and provides detailed usage statistics", + "permissions": [ + "storage", + "tabs", + "activeTab", + "alarms" + ], + "background": { + "service_worker": "background.js" + }, + "action": { + "default_popup": "popup.html", + "default_icon": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } + }, + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } +} diff --git a/submissions/Screen Time Tracker/popup.css b/submissions/Screen Time Tracker/popup.css new file mode 100644 index 00000000..b3e8f587 --- /dev/null +++ b/submissions/Screen Time Tracker/popup.css @@ -0,0 +1,171 @@ +body { + font-family: 'Segoe UI', Arial, sans-serif; + width: 350px; + margin: 0; + background: #f8f9fa; + color: #2c3e50; +} + +.container { + padding: 20px; + background: white; + border-radius: 12px; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); + margin: 8px; +} + +h1 { + font-size: 20px; + margin-top: 0; + color: #1a73e8; + text-align: center; + font-weight: 600; +} + +h2 { + font-size: 16px; + margin-top: 16px; + color: #3c4043; +} + +.tabs { + display: flex; + margin-bottom: 20px; + border-bottom: 1px solid #e0e0e0; + padding: 0 8px; +} + +.tab-button { + flex: 1; + background: none; + border: none; + padding: 12px; + cursor: pointer; + font-size: 14px; + color: #5f6368; + transition: all 0.3s ease; + position: relative; + font-weight: 500; +} + +.tab-button:hover { + color: #1a73e8; +} + +.tab-button.active { + color: #1a73e8; +} + +.tab-button.active::after { + content: ''; + position: absolute; + bottom: -1px; + left: 0; + width: 100%; + height: 2px; + background: #1a73e8; + transition: all 0.3s ease; +} + +.tab-content { + display: none; + opacity: 0; + transition: opacity 0.3s ease; +} + +.tab-content.active { + display: block; + opacity: 1; +} + +.total-time { + margin-bottom: 20px; + font-weight: 500; + background: #f1f3f4; + padding: 12px; + border-radius: 8px; + text-align: center; +} + +.stats-container { + max-height: 300px; + overflow-y: auto; + padding: 4px; +} + +.site-stat { + display: flex; + flex-direction: column; + padding: 12px; + border-radius: 8px; + background: #f8f9fa; + margin-bottom: 8px; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.site-stat:hover { + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.site-info { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; +} + +.site-name { + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #202124; + font-weight: 500; +} + +.site-time { + margin-left: 12px; + color: #5f6368; + font-weight: 500; +} + +.bar-container { + height: 6px; + width: 100%; + background-color: #e8eaed; + border-radius: 8px; + overflow: hidden; +} + +.bar { + height: 100%; + background-color: #1a73e8; + border-radius: 8px; + transition: width 0.3s ease; +} + +.stats-container::-webkit-scrollbar { + width: 8px; +} + +.stats-container::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; +} + +#weeklyChart { + margin-top: 16px; + border-radius: 8px; + padding: 8px; + background: white; +} diff --git a/submissions/Screen Time Tracker/popup.html b/submissions/Screen Time Tracker/popup.html new file mode 100644 index 00000000..c59521c8 --- /dev/null +++ b/submissions/Screen Time Tracker/popup.html @@ -0,0 +1,35 @@ + + + + Screen Time Tracker + + + +
+

Screen Time Tracker

+ +
+ + +
+ +
+

Today's Activity

+
+ Total screen time: + 0m +
+
+
+ +
+

Last 7 Days

+
+ +
+
+ + + + + diff --git a/submissions/Screen Time Tracker/popup.js b/submissions/Screen Time Tracker/popup.js new file mode 100644 index 00000000..e69de29b From bc2a869e19e1891a561e7d03c79fd373a6ff73e3 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:29:49 +0530 Subject: [PATCH 12/23] Delete submissions/Screen Time Tracker/README.md --- submissions/Screen Time Tracker/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 submissions/Screen Time Tracker/README.md diff --git a/submissions/Screen Time Tracker/README.md b/submissions/Screen Time Tracker/README.md deleted file mode 100644 index 8b137891..00000000 --- a/submissions/Screen Time Tracker/README.md +++ /dev/null @@ -1 +0,0 @@ - From 7a8295a100d565786d593a1487f1f08a01ce570f Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:30:24 +0530 Subject: [PATCH 13/23] Add files via upload --- submissions/Screen Time Tracker/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 submissions/Screen Time Tracker/README.md diff --git a/submissions/Screen Time Tracker/README.md b/submissions/Screen Time Tracker/README.md new file mode 100644 index 00000000..a9bf7bf9 --- /dev/null +++ b/submissions/Screen Time Tracker/README.md @@ -0,0 +1,19 @@ +# BrowserBuddy Grant Program + +BrowserBuddy, by Hack Club, supports teenagers in building and publishing their own browser extensions. Participants receive a $30 grant, which includes a $5 Chrome Developer License and $25 for additional prizes, to launch their extensions to the Chrome Web Store. + +## How It Works + +1. **Brainstorm**: Think of a unique idea for an extension. +2. **Develop & Test**: Build and test your extension with at least 10 users. +3. **Submit & Publish**: Submit your project by November 20th, and get your extension live on Chrome and Firefox. + +## Requirements + +- Unique, problem-solving extensions. +- Open-source code. +- Compatible with Chrome-based and Firefox browsers. + +## Resources + +For assistance, join the [#browser-buddy](https://hackclub.slack.com/archives/C07MQBTNVRU) channel on Slack. Check out the [BrowserBuddy website](https://browserbuddy.hackclub.com/) for more details. From ba1eff96705645c3fc45afd47ac05562c0599c35 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:36:51 +0530 Subject: [PATCH 14/23] Delete README.md --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index a9bf7bf9..00000000 --- a/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# BrowserBuddy Grant Program - -BrowserBuddy, by Hack Club, supports teenagers in building and publishing their own browser extensions. Participants receive a $30 grant, which includes a $5 Chrome Developer License and $25 for additional prizes, to launch their extensions to the Chrome Web Store. - -## How It Works - -1. **Brainstorm**: Think of a unique idea for an extension. -2. **Develop & Test**: Build and test your extension with at least 10 users. -3. **Submit & Publish**: Submit your project by November 20th, and get your extension live on Chrome and Firefox. - -## Requirements - -- Unique, problem-solving extensions. -- Open-source code. -- Compatible with Chrome-based and Firefox browsers. - -## Resources - -For assistance, join the [#browser-buddy](https://hackclub.slack.com/archives/C07MQBTNVRU) channel on Slack. Check out the [BrowserBuddy website](https://browserbuddy.hackclub.com/) for more details. From 940e2a5b26996a9e9ee7ac7c796a0ed9562becd1 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:37:03 +0530 Subject: [PATCH 15/23] Delete background.js --- background.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 background.js diff --git a/background.js b/background.js deleted file mode 100644 index e69de29b..00000000 From 8143a9a1db4c1162041e86a37255f5e28ed6f4f3 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:37:14 +0530 Subject: [PATCH 16/23] Delete manifest.json --- manifest.json | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 manifest.json diff --git a/manifest.json b/manifest.json deleted file mode 100644 index cc699b13..00000000 --- a/manifest.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "manifest_version": 3, - "name": "Screen Time Tracker", - "version": "1.0", - "description": "Tracks time spent on websites and provides detailed usage statistics", - "permissions": [ - "storage", - "tabs", - "activeTab", - "alarms" - ], - "background": { - "service_worker": "background.js" - }, - "action": { - "default_popup": "popup.html", - "default_icon": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - } - }, - "icons": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - } -} From fbfd3655da25237e2c08d53ebf67d430f2a1ef05 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:37:25 +0530 Subject: [PATCH 17/23] Delete popup.css --- popup.css | 171 ------------------------------------------------------ 1 file changed, 171 deletions(-) delete mode 100644 popup.css diff --git a/popup.css b/popup.css deleted file mode 100644 index b3e8f587..00000000 --- a/popup.css +++ /dev/null @@ -1,171 +0,0 @@ -body { - font-family: 'Segoe UI', Arial, sans-serif; - width: 350px; - margin: 0; - background: #f8f9fa; - color: #2c3e50; -} - -.container { - padding: 20px; - background: white; - border-radius: 12px; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - margin: 8px; -} - -h1 { - font-size: 20px; - margin-top: 0; - color: #1a73e8; - text-align: center; - font-weight: 600; -} - -h2 { - font-size: 16px; - margin-top: 16px; - color: #3c4043; -} - -.tabs { - display: flex; - margin-bottom: 20px; - border-bottom: 1px solid #e0e0e0; - padding: 0 8px; -} - -.tab-button { - flex: 1; - background: none; - border: none; - padding: 12px; - cursor: pointer; - font-size: 14px; - color: #5f6368; - transition: all 0.3s ease; - position: relative; - font-weight: 500; -} - -.tab-button:hover { - color: #1a73e8; -} - -.tab-button.active { - color: #1a73e8; -} - -.tab-button.active::after { - content: ''; - position: absolute; - bottom: -1px; - left: 0; - width: 100%; - height: 2px; - background: #1a73e8; - transition: all 0.3s ease; -} - -.tab-content { - display: none; - opacity: 0; - transition: opacity 0.3s ease; -} - -.tab-content.active { - display: block; - opacity: 1; -} - -.total-time { - margin-bottom: 20px; - font-weight: 500; - background: #f1f3f4; - padding: 12px; - border-radius: 8px; - text-align: center; -} - -.stats-container { - max-height: 300px; - overflow-y: auto; - padding: 4px; -} - -.site-stat { - display: flex; - flex-direction: column; - padding: 12px; - border-radius: 8px; - background: #f8f9fa; - margin-bottom: 8px; - transition: transform 0.2s ease, box-shadow 0.2s ease; -} - -.site-stat:hover { - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); -} - -.site-info { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 8px; -} - -.site-name { - flex: 1; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - color: #202124; - font-weight: 500; -} - -.site-time { - margin-left: 12px; - color: #5f6368; - font-weight: 500; -} - -.bar-container { - height: 6px; - width: 100%; - background-color: #e8eaed; - border-radius: 8px; - overflow: hidden; -} - -.bar { - height: 100%; - background-color: #1a73e8; - border-radius: 8px; - transition: width 0.3s ease; -} - -.stats-container::-webkit-scrollbar { - width: 8px; -} - -.stats-container::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 4px; -} - -.stats-container::-webkit-scrollbar-thumb { - background: #c1c1c1; - border-radius: 4px; -} - -.stats-container::-webkit-scrollbar-thumb:hover { - background: #a8a8a8; -} - -#weeklyChart { - margin-top: 16px; - border-radius: 8px; - padding: 8px; - background: white; -} From cebbdb375a2cb4ce4d0443b654cac61edba2da57 Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:37:35 +0530 Subject: [PATCH 18/23] Delete popup.html --- popup.html | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 popup.html diff --git a/popup.html b/popup.html deleted file mode 100644 index c59521c8..00000000 --- a/popup.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - Screen Time Tracker - - - -
-

Screen Time Tracker

- -
- - -
- -
-

Today's Activity

-
- Total screen time: - 0m -
-
-
- -
-

Last 7 Days

-
- -
-
- - - - - From 0a6621aee50810b67e2acd58079d4ad1823fc4ea Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:38:26 +0530 Subject: [PATCH 19/23] Delete popup.js --- popup.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 popup.js diff --git a/popup.js b/popup.js deleted file mode 100644 index e69de29b..00000000 From eeb70e8a2f411ac15a34e309f2c488235a6a0eed Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:38:41 +0530 Subject: [PATCH 20/23] Delete submissions/Screen Time Tracker directory --- submissions/Screen Time Tracker/README.md | 19 -- submissions/Screen Time Tracker/background.js | 0 .../Screen Time Tracker/icons/icon128.png | 1 - .../Screen Time Tracker/icons/icon16.png | 1 - .../Screen Time Tracker/icons/icon48.png | 1 - submissions/Screen Time Tracker/manifest.json | 28 --- submissions/Screen Time Tracker/popup.css | 171 ------------------ submissions/Screen Time Tracker/popup.html | 35 ---- submissions/Screen Time Tracker/popup.js | 0 9 files changed, 256 deletions(-) delete mode 100644 submissions/Screen Time Tracker/README.md delete mode 100644 submissions/Screen Time Tracker/background.js delete mode 100644 submissions/Screen Time Tracker/icons/icon128.png delete mode 100644 submissions/Screen Time Tracker/icons/icon16.png delete mode 100644 submissions/Screen Time Tracker/icons/icon48.png delete mode 100644 submissions/Screen Time Tracker/manifest.json delete mode 100644 submissions/Screen Time Tracker/popup.css delete mode 100644 submissions/Screen Time Tracker/popup.html delete mode 100644 submissions/Screen Time Tracker/popup.js diff --git a/submissions/Screen Time Tracker/README.md b/submissions/Screen Time Tracker/README.md deleted file mode 100644 index a9bf7bf9..00000000 --- a/submissions/Screen Time Tracker/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# BrowserBuddy Grant Program - -BrowserBuddy, by Hack Club, supports teenagers in building and publishing their own browser extensions. Participants receive a $30 grant, which includes a $5 Chrome Developer License and $25 for additional prizes, to launch their extensions to the Chrome Web Store. - -## How It Works - -1. **Brainstorm**: Think of a unique idea for an extension. -2. **Develop & Test**: Build and test your extension with at least 10 users. -3. **Submit & Publish**: Submit your project by November 20th, and get your extension live on Chrome and Firefox. - -## Requirements - -- Unique, problem-solving extensions. -- Open-source code. -- Compatible with Chrome-based and Firefox browsers. - -## Resources - -For assistance, join the [#browser-buddy](https://hackclub.slack.com/archives/C07MQBTNVRU) channel on Slack. Check out the [BrowserBuddy website](https://browserbuddy.hackclub.com/) for more details. diff --git a/submissions/Screen Time Tracker/background.js b/submissions/Screen Time Tracker/background.js deleted file mode 100644 index e69de29b..00000000 diff --git a/submissions/Screen Time Tracker/icons/icon128.png b/submissions/Screen Time Tracker/icons/icon128.png deleted file mode 100644 index 6ba518d4..00000000 --- a/submissions/Screen Time Tracker/icons/icon128.png +++ /dev/null @@ -1 +0,0 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF0WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzE0LTIyOjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI0LTAzLTE5VDE0OjQ3OjQ3LTA0OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgc3RFdnQ6d2hlbj0iMjAyNC0wMy0xOVQxNDo0Nzo0Ny0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wkzxRwAABPlJREFUeJztnVtsFFUYx3/fLqW0tKXQUqAFSgFFKqgxGBHxEjWKYowxPqgxRl80Rh+M0cQYE2OMiYmJiYkvxhh9MMYYb9EYNcYLGo3xEjWKYEBFEJBSaKGU0tK2dI8P27Wzs2d2z8zOzM7Z8/8lTbY7Z77v+5+zc+bMme98R1QVQ7okkg7ASDamgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKK \ No newline at end of file diff --git a/submissions/Screen Time Tracker/icons/icon16.png b/submissions/Screen Time Tracker/icons/icon16.png deleted file mode 100644 index d9010eca..00000000 --- a/submissions/Screen Time Tracker/icons/icon16.png +++ /dev/null @@ -1 +0,0 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAABYUlEQVQ4jZ2TsUrDUBSGv5OkSZO0NaUPUBwEwUEQBEFwcHBwcHBwcHBwcHDwEQQfQhAEQRAEB0EQBEFwEARBEARBsC1Jk6RJ0qS5DsVU2qa24A/ncs7/n3O4nHPhj6cyv1jf3T842D84PDo+OT27vLrOZvP5QiaTuS0UCrf5fP4un8/fZ7PZh3Q6/RiLxZ6i0ehzOBx+DYVCuUAg8CaEyPt8vne3213weDzFdd0y27YrQoiq1+utua7b8Pl8TcuyWqZptkVRbAshukIIPyB9T5IkCiGQJAlFUVAUBVVV0TQNRVFQVRVRFNE0DU3TkGUZRVGQZRlZljEMA13XMQwDXdfRNA1d11/nOI5jWZbjOI5jWZbjOI5jWZbjOI5jWZZlWZb1E2CMsdlsxmaz2Z9Ya2HbNpPJhNFoxGg0YjweMxwOGQwG9Pt9er0evV6PTqdDu92m1WrRbDZpNBrU63VqtRrVapVKpUK5XP4CzqnHQwdXLxQAAAAASUVORK5CYII= \ No newline at end of file diff --git a/submissions/Screen Time Tracker/icons/icon48.png b/submissions/Screen Time Tracker/icons/icon48.png deleted file mode 100644 index d90e1bf9..00000000 --- a/submissions/Screen Time Tracker/icons/icon48.png +++ /dev/null @@ -1 +0,0 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADv0lEQVRoge2ZW2hcVRSGv7VnJslkJpNJMk3SNG2T1jS1RhNrK1VrVbygKFLFCxREEFERBB8E8UF8EHwQfBAf9MGLIj4oiKIIXvCGVuulVqPWJk1tm8Q2mWSSzEwymcs+PiRNOpk5k5wz44MW/MNmn332Wv+/z9p7nX02HMIhHMIi4P8OoKampiYajfYahvGc3+9vqaqqOr5///56v9//q2maT/l8vvZwOHwkFovV+3y+30zTfNzr9R6NRCLHYrFYvdfr/cM0zYc9Hs/xcDh8vLq6+i+fz/eQYRgnI5HIyXg8XrcgAMuyzp44ceKZbDZ7eXd3d8O2bds2nzt37sr+/v4tqVRq/alTp27KZrOXdXV1bdq+ffvG8+fPX9XX17cpnU5f0d7evimTyVze09OzcefOnRt6e3s39/f3b0mn01d2dHRs2rNnz4ZEIrElmUxe3dfXt2nv3r3rFwQgm83S2NhIMpkkkUhQKBQoFAoUi0VM00REsCwLEcE0TYrFIsVikWKxSKFQIJ/Pk8/nyeVy5HI5stks2WyWTCZDJpMhk8mQTqfJ5/Nks1kymQzpdJpcLkcul5s3gPJ/B1BbW0tra2tZfbZtMzw8TDKZnLXOtm1GRkYYGhqas862bUZHRxkcHJyzLpVKMTAwMGedZVmMjY0xMDAwZ93/BqCuro6mpqay+mzbZnx8nOHh4VnrbNtmYmKCwcHBOetu3LiRlpaWOetSqRR9fX1z1lmWxeTkJH19fXPW2bbN1NQUvb29c9YtGEBDQwONjY1l9YkIU1NTJBKJWetEhOnpaQYGBuass22b6elpEonEnHWpVIre3t4562zbZmZmhp6enjnrbNtmdnaW7u7uOesWDKCxsZGGhoay+kSEmZkZ+vv7Z60TEWZnZ+nr65uzzrZtZmdn6e/vn7MulUrR09MzZ51t2+RyObq7u+ess22bfD5PV1fXnHULBtDU1ER9fX1ZfSJCPp+nu7t71joRoVAo0NXVNW+dZVl0dnbOWZdKpejs7JyzzrZtCoUCHR0dc9bZtk2xWKS9vX3OugUDaG5uprq6uqw+EaFYLNLe3j5rnYhgWRbt7e1z1tm2jWVZtLW1zVmXSqU4e/bsnHW2bWNZFmfOnJmzzrZtLMvizJkzc9YtGEBLSwuRSKSsPhGhVCpx+vTpWetEhFKpxOnTp+ets22bUqnEqVOn5qxLpVKcPHlyzjrbtimVSpw8eXLOOtu2KZVKnDhxYs66BQNobW0lHA6X1ScilEolTp48OWudiGDbNidOnJi3zrZtbNvm+PHjc9alUimOHTs2Z51t29i2zbFjx+ass22bUqnE0aNH56w7hEM4hEU4fwO0OBnPo+UQmwAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/submissions/Screen Time Tracker/manifest.json b/submissions/Screen Time Tracker/manifest.json deleted file mode 100644 index cc699b13..00000000 --- a/submissions/Screen Time Tracker/manifest.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "manifest_version": 3, - "name": "Screen Time Tracker", - "version": "1.0", - "description": "Tracks time spent on websites and provides detailed usage statistics", - "permissions": [ - "storage", - "tabs", - "activeTab", - "alarms" - ], - "background": { - "service_worker": "background.js" - }, - "action": { - "default_popup": "popup.html", - "default_icon": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - } - }, - "icons": { - "16": "icons/icon16.png", - "48": "icons/icon48.png", - "128": "icons/icon128.png" - } -} diff --git a/submissions/Screen Time Tracker/popup.css b/submissions/Screen Time Tracker/popup.css deleted file mode 100644 index b3e8f587..00000000 --- a/submissions/Screen Time Tracker/popup.css +++ /dev/null @@ -1,171 +0,0 @@ -body { - font-family: 'Segoe UI', Arial, sans-serif; - width: 350px; - margin: 0; - background: #f8f9fa; - color: #2c3e50; -} - -.container { - padding: 20px; - background: white; - border-radius: 12px; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - margin: 8px; -} - -h1 { - font-size: 20px; - margin-top: 0; - color: #1a73e8; - text-align: center; - font-weight: 600; -} - -h2 { - font-size: 16px; - margin-top: 16px; - color: #3c4043; -} - -.tabs { - display: flex; - margin-bottom: 20px; - border-bottom: 1px solid #e0e0e0; - padding: 0 8px; -} - -.tab-button { - flex: 1; - background: none; - border: none; - padding: 12px; - cursor: pointer; - font-size: 14px; - color: #5f6368; - transition: all 0.3s ease; - position: relative; - font-weight: 500; -} - -.tab-button:hover { - color: #1a73e8; -} - -.tab-button.active { - color: #1a73e8; -} - -.tab-button.active::after { - content: ''; - position: absolute; - bottom: -1px; - left: 0; - width: 100%; - height: 2px; - background: #1a73e8; - transition: all 0.3s ease; -} - -.tab-content { - display: none; - opacity: 0; - transition: opacity 0.3s ease; -} - -.tab-content.active { - display: block; - opacity: 1; -} - -.total-time { - margin-bottom: 20px; - font-weight: 500; - background: #f1f3f4; - padding: 12px; - border-radius: 8px; - text-align: center; -} - -.stats-container { - max-height: 300px; - overflow-y: auto; - padding: 4px; -} - -.site-stat { - display: flex; - flex-direction: column; - padding: 12px; - border-radius: 8px; - background: #f8f9fa; - margin-bottom: 8px; - transition: transform 0.2s ease, box-shadow 0.2s ease; -} - -.site-stat:hover { - transform: translateY(-1px); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); -} - -.site-info { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 8px; -} - -.site-name { - flex: 1; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - color: #202124; - font-weight: 500; -} - -.site-time { - margin-left: 12px; - color: #5f6368; - font-weight: 500; -} - -.bar-container { - height: 6px; - width: 100%; - background-color: #e8eaed; - border-radius: 8px; - overflow: hidden; -} - -.bar { - height: 100%; - background-color: #1a73e8; - border-radius: 8px; - transition: width 0.3s ease; -} - -.stats-container::-webkit-scrollbar { - width: 8px; -} - -.stats-container::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 4px; -} - -.stats-container::-webkit-scrollbar-thumb { - background: #c1c1c1; - border-radius: 4px; -} - -.stats-container::-webkit-scrollbar-thumb:hover { - background: #a8a8a8; -} - -#weeklyChart { - margin-top: 16px; - border-radius: 8px; - padding: 8px; - background: white; -} diff --git a/submissions/Screen Time Tracker/popup.html b/submissions/Screen Time Tracker/popup.html deleted file mode 100644 index c59521c8..00000000 --- a/submissions/Screen Time Tracker/popup.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - Screen Time Tracker - - - -
-

Screen Time Tracker

- -
- - -
- -
-

Today's Activity

-
- Total screen time: - 0m -
-
-
- -
-

Last 7 Days

-
- -
-
- - - - - diff --git a/submissions/Screen Time Tracker/popup.js b/submissions/Screen Time Tracker/popup.js deleted file mode 100644 index e69de29b..00000000 From b07498ebed690d0f705b47e8ec3ea74e4a11dcdd Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:39:06 +0530 Subject: [PATCH 21/23] Add files via upload --- submissions/Screen-Time-Tracker/README.md | 19 ++ submissions/Screen-Time-Tracker/background.js | 0 .../Screen-Time-Tracker/icons/icon128.png | 1 + .../Screen-Time-Tracker/icons/icon16.png | 1 + .../Screen-Time-Tracker/icons/icon48.png | 1 + submissions/Screen-Time-Tracker/manifest.json | 28 +++ submissions/Screen-Time-Tracker/popup.css | 171 ++++++++++++++++++ submissions/Screen-Time-Tracker/popup.html | 35 ++++ submissions/Screen-Time-Tracker/popup.js | 0 9 files changed, 256 insertions(+) create mode 100644 submissions/Screen-Time-Tracker/README.md create mode 100644 submissions/Screen-Time-Tracker/background.js create mode 100644 submissions/Screen-Time-Tracker/icons/icon128.png create mode 100644 submissions/Screen-Time-Tracker/icons/icon16.png create mode 100644 submissions/Screen-Time-Tracker/icons/icon48.png create mode 100644 submissions/Screen-Time-Tracker/manifest.json create mode 100644 submissions/Screen-Time-Tracker/popup.css create mode 100644 submissions/Screen-Time-Tracker/popup.html create mode 100644 submissions/Screen-Time-Tracker/popup.js diff --git a/submissions/Screen-Time-Tracker/README.md b/submissions/Screen-Time-Tracker/README.md new file mode 100644 index 00000000..a9bf7bf9 --- /dev/null +++ b/submissions/Screen-Time-Tracker/README.md @@ -0,0 +1,19 @@ +# BrowserBuddy Grant Program + +BrowserBuddy, by Hack Club, supports teenagers in building and publishing their own browser extensions. Participants receive a $30 grant, which includes a $5 Chrome Developer License and $25 for additional prizes, to launch their extensions to the Chrome Web Store. + +## How It Works + +1. **Brainstorm**: Think of a unique idea for an extension. +2. **Develop & Test**: Build and test your extension with at least 10 users. +3. **Submit & Publish**: Submit your project by November 20th, and get your extension live on Chrome and Firefox. + +## Requirements + +- Unique, problem-solving extensions. +- Open-source code. +- Compatible with Chrome-based and Firefox browsers. + +## Resources + +For assistance, join the [#browser-buddy](https://hackclub.slack.com/archives/C07MQBTNVRU) channel on Slack. Check out the [BrowserBuddy website](https://browserbuddy.hackclub.com/) for more details. diff --git a/submissions/Screen-Time-Tracker/background.js b/submissions/Screen-Time-Tracker/background.js new file mode 100644 index 00000000..e69de29b diff --git a/submissions/Screen-Time-Tracker/icons/icon128.png b/submissions/Screen-Time-Tracker/icons/icon128.png new file mode 100644 index 00000000..6ba518d4 --- /dev/null +++ b/submissions/Screen-Time-Tracker/icons/icon128.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF0WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgNzkuMWI2NWE3OWI0LCAyMDIyLzA2LzE0LTIyOjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDMtMTlUMTQ6NDc6NDctMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI0LTAzLTE5VDE0OjQ3OjQ3LTA0OjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5ZDM4ZjY5LTRhZDAtNDY0ZC1hMjA0LTNlYWRhOGU5ZjM5YyIgc3RFdnQ6d2hlbj0iMjAyNC0wMy0xOVQxNDo0Nzo0Ny0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKE1hY2ludG9zaCkiLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wkzxRwAABPlJREFUeJztnVtsFFUYx3/fLqW0tKXQUqAFSgFFKqgxGBHxEjWKYowxPqgxRl80Rh+M0cQYE2OMiYmJiYkvxhh9MMYYb9EYNcYLGo3xEjWKYEBFEJBSaKGU0tK2dI8P27Wzs2d2z8zOzM7Z8/8lTbY7Z77v+5+zc+bMme98R1QVQ7okkg7ASDamgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKKaBRTAGNYgpoFFNAo5gCGsUU0CimgEYxBTSKK \ No newline at end of file diff --git a/submissions/Screen-Time-Tracker/icons/icon16.png b/submissions/Screen-Time-Tracker/icons/icon16.png new file mode 100644 index 00000000..d9010eca --- /dev/null +++ b/submissions/Screen-Time-Tracker/icons/icon16.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAABYUlEQVQ4jZ2TsUrDUBSGv5OkSZO0NaUPUBwEwUEQBEFwcHBwcHBwcHBwcHDwEQQfQhAEQRAEB0EQBEFwEARBEARBsC1Jk6RJ0qS5DsVU2qa24A/ncs7/n3O4nHPhj6cyv1jf3T842D84PDo+OT27vLrOZvP5QiaTuS0UCrf5fP4un8/fZ7PZh3Q6/RiLxZ6i0ehzOBx+DYVCuUAg8CaEyPt8vne3213weDzFdd0y27YrQoiq1+utua7b8Pl8TcuyWqZptkVRbAshukIIPyB9T5IkCiGQJAlFUVAUBVVV0TQNRVFQVRVRFNE0DU3TkGUZRVGQZRlZljEMA13XMQwDXdfRNA1d11/nOI5jWZbjOI5jWZbjOI5jWZbjOI5jWZZlWZb1E2CMsdlsxmaz2Z9Ya2HbNpPJhNFoxGg0YjweMxwOGQwG9Pt9er0evV6PTqdDu92m1WrRbDZpNBrU63VqtRrVapVKpUK5XP4CzqnHQwdXLxQAAAAASUVORK5CYII= \ No newline at end of file diff --git a/submissions/Screen-Time-Tracker/icons/icon48.png b/submissions/Screen-Time-Tracker/icons/icon48.png new file mode 100644 index 00000000..d90e1bf9 --- /dev/null +++ b/submissions/Screen-Time-Tracker/icons/icon48.png @@ -0,0 +1 @@ +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADv0lEQVRoge2ZW2hcVRSGv7VnJslkJpNJMk3SNG2T1jS1RhNrK1VrVbygKFLFCxREEFERBB8E8UF8EHwQfBAf9MGLIj4oiKIIXvCGVuulVqPWJk1tm8Q2mWSSzEwymcs+PiRNOpk5k5wz44MW/MNmn332Wv+/z9p7nX02HMIhHMIi4P8OoKampiYajfYahvGc3+9vqaqqOr5///56v9//q2maT/l8vvZwOHwkFovV+3y+30zTfNzr9R6NRCLHYrFYvdfr/cM0zYc9Hs/xcDh8vLq6+i+fz/eQYRgnI5HIyXg8XrcgAMuyzp44ceKZbDZ7eXd3d8O2bds2nzt37sr+/v4tqVRq/alTp27KZrOXdXV1bdq+ffvG8+fPX9XX17cpnU5f0d7evimTyVze09OzcefOnRt6e3s39/f3b0mn01d2dHRs2rNnz4ZEIrElmUxe3dfXt2nv3r3rFwQgm83S2NhIMpkkkUhQKBQoFAoUi0VM00REsCwLEcE0TYrFIsVikWKxSKFQIJ/Pk8/nyeVy5HI5stks2WyWTCZDJpMhk8mQTqfJ5/Nks1kymQzpdJpcLkcul5s3gPJ/B1BbW0tra2tZfbZtMzw8TDKZnLXOtm1GRkYYGhqas862bUZHRxkcHJyzLpVKMTAwMGedZVmMjY0xMDAwZ93/BqCuro6mpqay+mzbZnx8nOHh4VnrbNtmYmKCwcHBOetu3LiRlpaWOetSqRR9fX1z1lmWxeTkJH19fXPW2bbN1NQUvb29c9YtGEBDQwONjY1l9YkIU1NTJBKJWetEhOnpaQYGBuass22b6elpEonEnHWpVIre3t4562zbZmZmhp6enjnrbNtmdnaW7u7uOesWDKCxsZGGhoay+kSEmZkZ+vv7Z60TEWZnZ+nr65uzzrZtZmdn6e/vn7MulUrR09MzZ51t2+RyObq7u+ess22bfD5PV1fXnHULBtDU1ER9fX1ZfSJCPp+nu7t71joRoVAo0NXVNW+dZVl0dnbOWZdKpejs7JyzzrZtCoUCHR0dc9bZtk2xWKS9vX3OugUDaG5uprq6uqw+EaFYLNLe3j5rnYhgWRbt7e1z1tm2jWVZtLW1zVmXSqU4e/bsnHW2bWNZFmfOnJmzzrZtLMvizJkzc9YtGEBLSwuRSKSsPhGhVCpx+vTpWetEhFKpxOnTp+ets22bUqnEqVOn5qxLpVKcPHlyzjrbtimVSpw8eXLOOtu2KZVKnDhxYs66BQNobW0lHA6X1ScilEolTp48OWudiGDbNidOnJi3zrZtbNvm+PHjc9alUimOHTs2Z51t29i2zbFjx+ass22bUqnE0aNH56w7hEM4hEU4fwO0OBnPo+UQmwAAAABJRU5ErkJggg== \ No newline at end of file diff --git a/submissions/Screen-Time-Tracker/manifest.json b/submissions/Screen-Time-Tracker/manifest.json new file mode 100644 index 00000000..cc699b13 --- /dev/null +++ b/submissions/Screen-Time-Tracker/manifest.json @@ -0,0 +1,28 @@ +{ + "manifest_version": 3, + "name": "Screen Time Tracker", + "version": "1.0", + "description": "Tracks time spent on websites and provides detailed usage statistics", + "permissions": [ + "storage", + "tabs", + "activeTab", + "alarms" + ], + "background": { + "service_worker": "background.js" + }, + "action": { + "default_popup": "popup.html", + "default_icon": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } + }, + "icons": { + "16": "icons/icon16.png", + "48": "icons/icon48.png", + "128": "icons/icon128.png" + } +} diff --git a/submissions/Screen-Time-Tracker/popup.css b/submissions/Screen-Time-Tracker/popup.css new file mode 100644 index 00000000..b3e8f587 --- /dev/null +++ b/submissions/Screen-Time-Tracker/popup.css @@ -0,0 +1,171 @@ +body { + font-family: 'Segoe UI', Arial, sans-serif; + width: 350px; + margin: 0; + background: #f8f9fa; + color: #2c3e50; +} + +.container { + padding: 20px; + background: white; + border-radius: 12px; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); + margin: 8px; +} + +h1 { + font-size: 20px; + margin-top: 0; + color: #1a73e8; + text-align: center; + font-weight: 600; +} + +h2 { + font-size: 16px; + margin-top: 16px; + color: #3c4043; +} + +.tabs { + display: flex; + margin-bottom: 20px; + border-bottom: 1px solid #e0e0e0; + padding: 0 8px; +} + +.tab-button { + flex: 1; + background: none; + border: none; + padding: 12px; + cursor: pointer; + font-size: 14px; + color: #5f6368; + transition: all 0.3s ease; + position: relative; + font-weight: 500; +} + +.tab-button:hover { + color: #1a73e8; +} + +.tab-button.active { + color: #1a73e8; +} + +.tab-button.active::after { + content: ''; + position: absolute; + bottom: -1px; + left: 0; + width: 100%; + height: 2px; + background: #1a73e8; + transition: all 0.3s ease; +} + +.tab-content { + display: none; + opacity: 0; + transition: opacity 0.3s ease; +} + +.tab-content.active { + display: block; + opacity: 1; +} + +.total-time { + margin-bottom: 20px; + font-weight: 500; + background: #f1f3f4; + padding: 12px; + border-radius: 8px; + text-align: center; +} + +.stats-container { + max-height: 300px; + overflow-y: auto; + padding: 4px; +} + +.site-stat { + display: flex; + flex-direction: column; + padding: 12px; + border-radius: 8px; + background: #f8f9fa; + margin-bottom: 8px; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.site-stat:hover { + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.site-info { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; +} + +.site-name { + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #202124; + font-weight: 500; +} + +.site-time { + margin-left: 12px; + color: #5f6368; + font-weight: 500; +} + +.bar-container { + height: 6px; + width: 100%; + background-color: #e8eaed; + border-radius: 8px; + overflow: hidden; +} + +.bar { + height: 100%; + background-color: #1a73e8; + border-radius: 8px; + transition: width 0.3s ease; +} + +.stats-container::-webkit-scrollbar { + width: 8px; +} + +.stats-container::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 4px; +} + +.stats-container::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; +} + +#weeklyChart { + margin-top: 16px; + border-radius: 8px; + padding: 8px; + background: white; +} diff --git a/submissions/Screen-Time-Tracker/popup.html b/submissions/Screen-Time-Tracker/popup.html new file mode 100644 index 00000000..c59521c8 --- /dev/null +++ b/submissions/Screen-Time-Tracker/popup.html @@ -0,0 +1,35 @@ + + + + Screen Time Tracker + + + +
+

Screen Time Tracker

+ +
+ + +
+ +
+

Today's Activity

+
+ Total screen time: + 0m +
+
+
+ +
+

Last 7 Days

+
+ +
+
+ + + + + diff --git a/submissions/Screen-Time-Tracker/popup.js b/submissions/Screen-Time-Tracker/popup.js new file mode 100644 index 00000000..e69de29b From fd8a84376c490ead0108ce7a3e17b6673406cdca Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:49:20 +0530 Subject: [PATCH 22/23] Update background.js --- submissions/Screen-Time-Tracker/background.js | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/submissions/Screen-Time-Tracker/background.js b/submissions/Screen-Time-Tracker/background.js index e69de29b..09869ad6 100644 --- a/submissions/Screen-Time-Tracker/background.js +++ b/submissions/Screen-Time-Tracker/background.js @@ -0,0 +1,102 @@ +let currentUrl = ''; +let startTime = null; +let todayData = {}; +let isTracking = false; + +chrome.runtime.onInstalled.addListener(() => { + const today = new Date().toLocaleDateString(); + chrome.storage.local.get([today], (result) => { + todayData = result[today] || {}; + }); + + chrome.alarms.create('saveData', { periodInMinutes: 1 }); +}); + +chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { + if (changeInfo.status === 'complete' && tab.active) { + updateCurrentTab(tab); + } +}); + +chrome.tabs.onActivated.addListener(activeInfo => { + chrome.tabs.get(activeInfo.tabId, updateCurrentTab); +}); + +chrome.windows.onFocusChanged.addListener(windowId => { + if (windowId === chrome.windows.WINDOW_ID_NONE) { + saveCurrentSession(); + isTracking = false; + } else { + chrome.tabs.query({ active: true, currentWindow: true }, tabs => { + if (tabs.length > 0) { + updateCurrentTab(tabs[0]); + } + }); + } +}); + +chrome.alarms.onAlarm.addListener((alarm) => { + if (alarm.name === 'saveData') { + saveCurrentSession(); + saveTodayData(); + } +}); + +function updateCurrentTab(tab) { + if (!tab || !tab.url || tab.url.startsWith('chrome://')) { + return; + } + + saveCurrentSession(); + + currentUrl = new URL(tab.url).hostname; + startTime = Date.now(); + isTracking = true; +} + +function saveCurrentSession() { + if (!isTracking || !currentUrl || !startTime) { + return; + } + + const now = Date.now(); + const duration = now - startTime; + + if (duration > 1000) { + if (!todayData[currentUrl]) { + todayData[currentUrl] = 0; + } + todayData[currentUrl] += duration; + } + + startTime = now; +} + +function saveTodayData() { + const today = new Date().toLocaleDateString(); + chrome.storage.local.set({ [today]: todayData }); +} + +chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { + if (request.action === 'getStats') { + saveCurrentSession(); + + const today = new Date().toLocaleDateString(); + chrome.storage.local.get([today], (result) => { + sendResponse({ todayData: result[today] || {} }); + }); + return true; + } else if (request.action === 'getHistory') { + const dates = []; + for (let i = 0; i < 7; i++) { + const date = new Date(); + date.setDate(date.getDate() - i); + dates.push(date.toLocaleDateString()); + } + + chrome.storage.local.get(dates, (result) => { + sendResponse({ historyData: result }); + }); + return true; + } +}); From 0f1286fb22b872059c69dea299c565563219e63c Mon Sep 17 00:00:00 2001 From: Aryansjc <125482323+Aryansjc@users.noreply.github.com> Date: Tue, 18 Mar 2025 03:49:31 +0530 Subject: [PATCH 23/23] Update popup.js --- submissions/Screen-Time-Tracker/popup.js | 215 +++++++++++++++++++++++ 1 file changed, 215 insertions(+) diff --git a/submissions/Screen-Time-Tracker/popup.js b/submissions/Screen-Time-Tracker/popup.js index e69de29b..ec01ef0b 100644 --- a/submissions/Screen-Time-Tracker/popup.js +++ b/submissions/Screen-Time-Tracker/popup.js @@ -0,0 +1,215 @@ +const todayTab = document.getElementById('todayTab'); +const historyTab = document.getElementById('historyTab'); +const todayView = document.getElementById('todayView'); +const historyView = document.getElementById('historyView'); +const totalTimeEl = document.getElementById('totalTime'); +const todayStatsEl = document.getElementById('todayStats'); +const historyStatsEl = document.getElementById('historyStats'); + +todayTab.addEventListener('click', () => { + todayTab.classList.add('active'); + historyTab.classList.remove('active'); + todayView.classList.add('active'); + historyView.classList.remove('active'); + + historyView.style.opacity = 0; + setTimeout(() => { + todayView.classList.add('active'); + historyView.classList.remove('active'); + requestAnimationFrame(() => { + todayView.style.opacity = 1; + }); + }, 300); + loadTodayStats(); +}); + +historyTab.addEventListener('click', () => { + historyTab.classList.add('active'); + todayTab.classList.remove('active'); + historyView.classList.add('active'); + todayView.classList.remove('active'); + + todayView.style.opacity = 0; + setTimeout(() => { + historyView.classList.add('active'); + todayView.classList.remove('active'); + requestAnimationFrame(() => { + historyView.style.opacity = 1; + }); + }, 300); + loadHistoryStats(); +}); + +function formatTime(ms) { + const seconds = Math.floor(ms / 1000); + const minutes = Math.floor(seconds / 60); + const hours = Math.floor(minutes / 60); + + if (hours > 0) { + return `${hours}h ${minutes % 60}m`; + } else if (minutes > 0) { + return `${minutes}m ${seconds % 60}s`; + } else { + return `${seconds}s`; + } +} + +function loadTodayStats() { + chrome.runtime.sendMessage({ action: 'getStats' }, (response) => { + const data = response.todayData; + todayStatsEl.innerHTML = ''; + + if (!data || Object.keys(data).length === 0) { + todayStatsEl.innerHTML = '

No data recorded today.

'; + totalTimeEl.textContent = '0m'; + return; + } + + let totalTime = 0; + let maxTime = 0; + + Object.values(data).forEach(time => { + totalTime += time; + if (time > maxTime) maxTime = time; + }); + + totalTimeEl.textContent = formatTime(totalTime); + + const sortedSites = Object.entries(data) + .sort((a, b) => b[1] - a[1]); + + sortedSites.forEach(([site, time], index) => { + const percentage = (time / maxTime) * 100; + + const siteEl = document.createElement('div'); + siteEl.className = 'site-stat'; + siteEl.style.opacity = '0'; + siteEl.style.transform = 'translateY(10px)'; + siteEl.innerHTML = ` +
+
${site}
+
${formatTime(time)}
+
+
+
+
+ `; + + todayStatsEl.appendChild(siteEl); + + setTimeout(() => { + siteEl.style.opacity = '1'; + siteEl.style.transform = 'translateY(0)'; + siteEl.querySelector('.bar').style.width = `${percentage}%`; + }, index * 100); + }); + }); +} + +function loadHistoryStats() { + chrome.runtime.sendMessage({ action: 'getHistory' }, (response) => { + const historyData = response.historyData; + historyStatsEl.innerHTML = ''; + + if (!historyData || Object.keys(historyData).length === 0) { + historyStatsEl.innerHTML = '

No historical data available.

'; + return; + } + + const dates = []; + const dailyTotals = []; + + const allSites = new Set(); + Object.values(historyData).forEach(dayData => { + Object.keys(dayData).forEach(site => allSites.add(site)); + }); + + const orderedDates = Object.keys(historyData).sort((a, b) => { + return new Date(b) - new Date(a); + }); + + const siteTotals = {}; + allSites.forEach(site => { + siteTotals[site] = 0; + orderedDates.forEach(date => { + if (historyData[date] && historyData[date][site]) { + siteTotals[site] += historyData[date][site]; + } + }); + }); + + const top5Sites = Object.entries(siteTotals) + .sort((a, b) => b[1] - a[1]) + .slice(0, 5); + + historyStatsEl.innerHTML = '

Top Sites (7 days)

'; + + top5Sites.forEach(([site, totalTime]) => { + const siteEl = document.createElement('div'); + siteEl.className = 'site-stat'; + siteEl.innerHTML = ` +
${site}
+
${formatTime(totalTime)}
+ `; + historyStatsEl.appendChild(siteEl); + }); + + orderedDates.reverse().forEach(date => { + const formattedDate = new Date(date).toLocaleDateString('en-US', { + month: 'short', + day: 'numeric' + }); + dates.push(formattedDate); + + let dailyTotal = 0; + if (historyData[date]) { + Object.values(historyData[date]).forEach(time => { + dailyTotal += time; + }); + } + + dailyTotals.push(dailyTotal / (1000 * 60 * 60)); + }); + + if (typeof Chart !== 'undefined') { + const ctx = document.getElementById('weeklyChart').getContext('2d'); + + if (window.screenTimeChart) { + window.screenTimeChart.destroy(); + } + + window.screenTimeChart = new Chart(ctx, { + type: 'bar', + data: { + labels: dates, + datasets: [{ + label: 'Screen Time (hours)', + data: dailyTotals, + backgroundColor: '#4285f4' + }] + }, + options: { + responsive: true, + scales: { + y: { + beginAtZero: true, + title: { + display: true, + text: 'Hours' + } + } + } + } + }); + } else { + const chartEl = document.getElementById('weeklyChart'); + chartEl.style.display = 'none'; + + const message = document.createElement('p'); + message.textContent = 'Chart.js is required for the weekly chart.'; + historyStatsEl.appendChild(message); + } + }); +} + +document.addEventListener('DOMContentLoaded', loadTodayStats);