From 7d8e3243a614fcbf2c32cd28312672c98f537cc6 Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Mon, 20 Jul 2026 10:50:51 +0100
Subject: [PATCH 1/6] Update alarmclock.js
---
Sprint-3/alarmclock/alarmclock.js | 36 +++++++++++++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 6ca81cd3b..d291a597f 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -1,7 +1,39 @@
-function setAlarm() {}
+let inputSeconds;
+let timer;
-// DO NOT EDIT BELOW HERE
+function setAlarm() {
+ clearInterval(timer);
+ pauseAlarm();
+
+ inputSeconds = Number(document.getElementById("alarmSet").value);
+
+ if (isNaN(inputSeconds) || inputSeconds <= 0) {
+ return;
+ }
+
+ updateDisplay();
+
+ timer = setInterval(() => {
+ inputSeconds--;
+
+ updateDisplay();
+ if (inputSeconds <= 0) {
+ clearInterval(timer);
+ playAlarm();
+ }
+ }, 1000);
+}
+
+function updateDisplay() {
+ const minutes = Math.floor(inputSeconds / 60);
+ const seconds = inputSeconds % 60;
+
+ document.getElementById("timeRemaining").textContent =
+ `Time Remaining: ${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}`;
+}
+
+// DO NOT EDIT BELOW HERE
var audio = new Audio("alarmsound.mp3");
function setup() {
From b9e4271a991d300760f5cc1009d7338f02ac4d13 Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Mon, 20 Jul 2026 10:51:36 +0100
Subject: [PATCH 2/6] Update package.json
---
Sprint-3/alarmclock/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Sprint-3/alarmclock/package.json b/Sprint-3/alarmclock/package.json
index e1331e071..78d5cfab8 100644
--- a/Sprint-3/alarmclock/package.json
+++ b/Sprint-3/alarmclock/package.json
@@ -2,7 +2,7 @@
"name": "alarmclock",
"version": "1.0.0",
"license": "CC-BY-SA-4.0",
- "description": "You must update this package",
+ "description": "Alarm clock app",
"scripts": {
"test": "jest --config=../jest.config.js alarmclock"
},
From 51598ae470116081db556120a25b5c1f7b883c4c Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Mon, 20 Jul 2026 10:52:23 +0100
Subject: [PATCH 3/6] Update index.html
---
Sprint-3/alarmclock/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html
index 48e2e80d9..ff2d3b453 100644
--- a/Sprint-3/alarmclock/index.html
+++ b/Sprint-3/alarmclock/index.html
@@ -4,7 +4,7 @@
-
Title here
+ Alarm clock app
From 3e6b4ff3fa7bcde25a0567998dd16e5394bdf8b4 Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Mon, 20 Jul 2026 11:22:49 +0100
Subject: [PATCH 4/6] Update alarmclock.js
---
Sprint-3/alarmclock/alarmclock.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index d291a597f..89f283c96 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -20,7 +20,7 @@ function setAlarm() {
if (inputSeconds <= 0) {
clearInterval(timer);
- playAlarm();
+ window.playAlarm();
}
}, 1000);
}
@@ -50,6 +50,8 @@ function playAlarm() {
audio.play();
}
+window.playAlarm = playAlarm;
+
function pauseAlarm() {
audio.pause();
}
From e44f40f88b63151e1eb3cedaa72e7ac311dab9d1 Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Mon, 20 Jul 2026 11:56:14 +0100
Subject: [PATCH 5/6] Update alarmclock.js
---
Sprint-3/alarmclock/alarmclock.js | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 89f283c96..311dd02ce 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -1,4 +1,5 @@
-let inputSeconds;
+function setAlarm() {
+ let inputSeconds;
let timer;
function setAlarm() {
@@ -20,7 +21,7 @@ function setAlarm() {
if (inputSeconds <= 0) {
clearInterval(timer);
- window.playAlarm();
+ playAlarm();
}
}, 1000);
}
@@ -31,9 +32,11 @@ function updateDisplay() {
document.getElementById("timeRemaining").textContent =
`Time Remaining: ${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}`;
+}
}
// DO NOT EDIT BELOW HERE
+
var audio = new Audio("alarmsound.mp3");
function setup() {
@@ -50,8 +53,6 @@ function playAlarm() {
audio.play();
}
-window.playAlarm = playAlarm;
-
function pauseAlarm() {
audio.pause();
}
From 97bba28018cc57084e5a4cc8a28f4b8bc8371dfc Mon Sep 17 00:00:00 2001
From: joanne342 <130585013+joanne342@users.noreply.github.com>
Date: Tue, 28 Jul 2026 14:05:00 +0100
Subject: [PATCH 6/6] Update alarmclock.js
---
Sprint-3/alarmclock/alarmclock.js | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 311dd02ce..3e08ab3c5 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -1,5 +1,4 @@
-function setAlarm() {
- let inputSeconds;
+let inputSeconds;
let timer;
function setAlarm() {
@@ -33,7 +32,6 @@ function updateDisplay() {
document.getElementById("timeRemaining").textContent =
`Time Remaining: ${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}`;
}
-}
// DO NOT EDIT BELOW HERE