From 59b38f43111e026c22cbac9c1ae13b69ded01808 Mon Sep 17 00:00:00 2001 From: Ebrahim-Moqbel Date: Thu, 20 Aug 2026 15:03:14 +0100 Subject: [PATCH 1/4] added a title to 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 d281f821eccadf1bbc96843b775fbfb5e28b0b7a Mon Sep 17 00:00:00 2001 From: Ebrahim-Moqbel Date: Thu, 20 Aug 2026 15:32:03 +0100 Subject: [PATCH 2/4] implemented the function format time --- Sprint-3/alarmclock/alarmclock.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..8473f8e2b 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,16 @@ -function setAlarm() {} +let intervalId = null; +let totalSeconds = 0; + +function formatTime(seconds){ + const minutes = Math.floor(seconds/ 60); + const secs = seconds % 60; + return `${string(minutes).padStart(2,"0")}:${String(secs).padStart(2,"0")}`; + +} +function setAlarm() { + + +} // DO NOT EDIT BELOW HERE From 0316d6647e3884209c52f2c8ae697888d4139be8 Mon Sep 17 00:00:00 2001 From: Ebrahim-Moqbel Date: Thu, 20 Aug 2026 15:32:29 +0100 Subject: [PATCH 3/4] implemented the function setAlarm --- Sprint-3/alarmclock/alarmclock.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 8473f8e2b..778f6e1ee 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -8,7 +8,25 @@ function formatTime(seconds){ } function setAlarm() { - + // clearing any previous countdown + if (intervalId !== null){ + clearInterval(intervalId) + } + const input = document.getElementById("alarmSet"); + totalSeconds = Number(input.value); + + document.getElementById("timeRemaining").textContent = `Time Remaining: ${formatTime(totalSeconds)}`; + + intervalId = setInterval(() => { + totalSeconds--; + document.getElementById("timeRemaining").textContent = `Time Remaining: ${formatTime(totalSeconds)}`; + + if (totalSeconds <= 0) { + clearInterval(intervalId); + intervalId = null; + playAlarm(); + } + }, 1000); } From bf1c808ebbee0129729eb1576fb9aec38de0d9bc Mon Sep 17 00:00:00 2001 From: Ebrahim_Moqbel Date: Fri, 21 Aug 2026 13:08:22 +0100 Subject: [PATCH 4/4] I refactored the functionality of displaying the alarm clock with the raised Qs --- Sprint-3/alarmclock/alarmclock.js | 42 +++++++++++++++++++++++-------- Sprint-3/alarmclock/index.html | 3 ++- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 778f6e1ee..0f30084f1 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,25 +1,46 @@ let intervalId = null; let totalSeconds = 0; +const input = document.getElementById("alarmSet"); +const timeRemaining = document.getElementById("timeRemaining"); +const message = document.getElementById("message"); -function formatTime(seconds){ - const minutes = Math.floor(seconds/ 60); +function formatTime(seconds) { + const minutes = Math.floor(seconds / 60); const secs = seconds % 60; - return `${string(minutes).padStart(2,"0")}:${String(secs).padStart(2,"0")}`; + return `${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`; +} +function updateDisplay() { + timeRemaining.textContent = `Time Remaining: ${formatTime(totalSeconds)}`; +} +function resetAlarm() { + clearInterval(intervalId); + intervalId = null; + audio.pause(); + audio.currentTime = 0; } +function getTime() { + const time = Number(input.value); + if (!(Number.isInteger(time) && time >= 1)) { + message.textContent = "Enter a valid number"; + return null; + } + return time; +} + function setAlarm() { - // clearing any previous countdown - if (intervalId !== null){ - clearInterval(intervalId) + const time = getTime(); + if (time === null) { + return; } - const input = document.getElementById("alarmSet"); - totalSeconds = Number(input.value); - document.getElementById("timeRemaining").textContent = `Time Remaining: ${formatTime(totalSeconds)}`; + resetAlarm(); + totalSeconds = time; + updateDisplay(); intervalId = setInterval(() => { totalSeconds--; - document.getElementById("timeRemaining").textContent = `Time Remaining: ${formatTime(totalSeconds)}`; + updateDisplay(); if (totalSeconds <= 0) { clearInterval(intervalId); @@ -27,7 +48,6 @@ function setAlarm() { playAlarm(); } }, 1000); - } // DO NOT EDIT BELOW HERE diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index ff2d3b453..26105b9f5 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -1,4 +1,4 @@ - + @@ -9,6 +9,7 @@

Time Remaining: 00:00

+