From ddb79fc0f106ec5f9ad6326fbc5464880b5797f7 Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Thu, 26 Feb 2026 23:11:34 +0000 Subject: [PATCH 1/6] Updating index.html - with an accurate title --- 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..4a91379d3 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,7 +4,7 @@ - Title here + Alarm Clock App
From 61fe4191631f9ff8d2f484fc5a06eaa8b9a024f0 Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Fri, 27 Feb 2026 19:50:54 +0000 Subject: [PATCH 2/6] Alarm clock: display entered time in mm:ss format --- Sprint-3/alarmclock/alarmclock.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..f070861de 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,20 @@ -function setAlarm() {} +function formatTime(totalSeconds) { + const minutes = Math.floor(totalSeconds / 60); + const seconds = totalSeconds % 60; + + const formattedMinutes = String(minutes).padStart(2, "0"); + const formattedSeconds = String(seconds).padStart(2, "0"); + + return `${formattedMinutes}:${formattedSeconds}`; +} + +function setAlarm() { + const input = document.getElementById("alarmSet"); + const heading = document.getElementById("timeRemaining"); + + const totalSeconds = Number(input.value); + heading.innerText = `Time Remaining: ${formatTime(totalSeconds)}`; +} // DO NOT EDIT BELOW HERE From 7cafbef494e226f4871b355ef6dfc2bdd345d756 Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Fri, 27 Feb 2026 19:52:45 +0000 Subject: [PATCH 3/6] Alarm clock: start timer with setInterval every 1000ms --- Sprint-3/alarmclock/alarmclock.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index f070861de..3eb0b6fb5 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,3 +1,5 @@ +let intervalId = null; + function formatTime(totalSeconds) { const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; @@ -14,6 +16,13 @@ function setAlarm() { const totalSeconds = Number(input.value); heading.innerText = `Time Remaining: ${formatTime(totalSeconds)}`; + + if (intervalId !== null) { + clearInterval(intervalId); + } + + intervalId = setInterval(() => { + }, 1000); } // DO NOT EDIT BELOW HERE From 6b24f06dacf4a4e194cda40f12a1e4b22f9dbd2d Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Fri, 27 Feb 2026 19:54:07 +0000 Subject: [PATCH 4/6] Alarm clock: decrement and update heading each second --- Sprint-3/alarmclock/alarmclock.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 3eb0b6fb5..154fb0ac5 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -14,14 +14,18 @@ function setAlarm() { const input = document.getElementById("alarmSet"); const heading = document.getElementById("timeRemaining"); - const totalSeconds = Number(input.value); - heading.innerText = `Time Remaining: ${formatTime(totalSeconds)}`; + let remainingSeconds = Number(input.value); + + heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; if (intervalId !== null) { clearInterval(intervalId); } - + intervalId = setInterval(() => { + remainingSeconds -= 1; + + heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; }, 1000); } From eb90347318123bccf70633c4b84bc818983d8973 Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Fri, 27 Feb 2026 19:58:45 +0000 Subject: [PATCH 5/6] Alarm clock: play alarm and stop timer at 00:00 --- Sprint-3/alarmclock/alarmclock.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 154fb0ac5..dca23c634 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -26,6 +26,12 @@ function setAlarm() { remainingSeconds -= 1; heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; + + if (remainingSeconds === 0) { + playAlarm(); + clearInterval(intervalId); + intervalId = null; + } }, 1000); } From 5d178751820dca6e7b69d17da646a5b098cc86ff Mon Sep 17 00:00:00 2001 From: KayanatSuleman Date: Wed, 4 Mar 2026 22:46:49 +0000 Subject: [PATCH 6/6] Updating the app as per the review comments --- Sprint-3/alarmclock/alarmclock.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index dca23c634..e6e5c9c97 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -14,7 +14,17 @@ function setAlarm() { const input = document.getElementById("alarmSet"); const heading = document.getElementById("timeRemaining"); - let remainingSeconds = Number(input.value); + let value = input.value + + if (value === "") { + return; + } + + let remainingSeconds = Number(value); + + if (remainingSeconds <= 0 || isNaN(remainingSeconds)) { + return; + } heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; @@ -24,14 +34,15 @@ function setAlarm() { intervalId = setInterval(() => { remainingSeconds -= 1; - - heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; - - if (remainingSeconds === 0) { + + if (remainingSeconds <= 0) { + heading.innerText = `Time Remaining: ${formatTime(0)}`; playAlarm(); clearInterval(intervalId); intervalId = null; + return; } + heading.innerText = `Time Remaining: ${formatTime(remainingSeconds)}`; }, 1000); }