From c75d3d0b1eb0098570520aaa86937c1836312b68 Mon Sep 17 00:00:00 2001 From: Khaliun Baatarkhuu Date: Mon, 3 Aug 2026 19:33:07 +0100 Subject: [PATCH 1/6] Change title to 'Alarm clock app' --- 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 ea108caa80bf773d46604ac1afd3683978542b52 Mon Sep 17 00:00:00 2001 From: Khaliun Baatarkhuu Date: Mon, 3 Aug 2026 21:54:08 +0100 Subject: [PATCH 2/6] Implement alarm countdown display functionality Added displayTime function to show remaining time and updated setAlarm to utilize it. --- Sprint-3/alarmclock/alarmclock.js | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..8a9b71a9e 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,30 @@ -function setAlarm() {} +function displayTime(time) { + const remainingElement = document.getElementById("timeRemaining"); + + const minutes = String(Math.floor(time / 60)).padStart(2, "0"); + const seconds = String(time % 60).padStart(2, "0"); + + remainingElement.innerText = `Time Remaining: ${minutes}:${seconds}`; +} + +function setAlarm() { + let time = parseInt(document.getElementById("alarmSet").value); + displayTime(time); + + const interval = setInterval(() => { + time--; + displayTime(time); + if (time === 0) { + clearInterval(interval); + playAlarm(); + } + }, 1000); +} + + + + + // DO NOT EDIT BELOW HERE From 2e2d45109930840b389e614bda51e493d941f7aa Mon Sep 17 00:00:00 2001 From: Khaliun Date: Sat, 8 Aug 2026 13:27:59 +0100 Subject: [PATCH 3/6] Validate countdown input --- Sprint-3/alarmclock/alarmclock.js | 47 ++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 8a9b71a9e..afbd60c3f 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,29 +1,44 @@ -function displayTime(time) { - const remainingElement = document.getElementById("timeRemaining"); - - const minutes = String(Math.floor(time / 60)).padStart(2, "0"); - const seconds = String(time % 60).padStart(2, "0"); +let interval; - remainingElement.innerText = `Time Remaining: ${minutes}:${seconds}`; +function displayTime(time) { + const remainingElement = document.getElementById("timeRemaining"); + const minutes = String(Math.floor(time / 60)).padStart(2, "0"); + const seconds = String(time % 60).padStart(2, "0"); + remainingElement.innerText = `Time Remaining: ${minutes}:${seconds}`; } function setAlarm() { - let time = parseInt(document.getElementById("alarmSet").value); - displayTime(time); + let time = Number(document.getElementById("alarmSet").value); + + if (isNaN(time) || time <= 0) { + return; + } + + clearInterval(interval); + pauseAlarm(); - const interval = setInterval(() => { - time--; - displayTime(time); - if (time === 0) { - clearInterval(interval); - playAlarm(); + if (!Number.isInteger(time) || time <= 0) { + return; } - }, 1000); -} + displayTime(time); + interval = setInterval(() => { + time--; + displayTime(time); + if (time === 0) { + clearInterval(interval); + playAlarm(); + } + }, 1000); +} +window.addEventListener("load", () => { + document.getElementById("stop").addEventListener("click", () => { + clearInterval(interval); + }); +}); // DO NOT EDIT BELOW HERE From 35d173452265cef43685449b0acf2e19a8fcaf6b Mon Sep 17 00:00:00 2001 From: Khaliun Baatarkhuu Date: Sat, 8 Aug 2026 14:00:09 +0100 Subject: [PATCH 4/6] Refactor setAlarm function for better time handling Refactor alarm time parsing to use parseInt and clean up code. --- Sprint-3/alarmclock/alarmclock.js | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index afbd60c3f..4018e60eb 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,5 +1,3 @@ -let interval; - function displayTime(time) { const remainingElement = document.getElementById("timeRemaining"); const minutes = String(Math.floor(time / 60)).padStart(2, "0"); @@ -7,19 +5,12 @@ function displayTime(time) { remainingElement.innerText = `Time Remaining: ${minutes}:${seconds}`; } +let interval; + function setAlarm() { - let time = Number(document.getElementById("alarmSet").value); - - if (isNaN(time) || time <= 0) { - return; - } - - clearInterval(interval); - pauseAlarm(); + let time = parseInt(document.getElementById("alarmSet").value); - if (!Number.isInteger(time) || time <= 0) { - return; - } + clearInterval(interval); displayTime(time); From ec05ce85bc8c90f317eca77f58a4e13691c1dd0e Mon Sep 17 00:00:00 2001 From: Khaliun Baatarkhuu Date: Sat, 8 Aug 2026 14:07:17 +0100 Subject: [PATCH 5/6] Validate alarm time input in setAlarm function Add validation to ensure alarm time is a positive integer. --- Sprint-3/alarmclock/alarmclock.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 4018e60eb..e25b271ed 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -10,6 +10,10 @@ let interval; function setAlarm() { let time = parseInt(document.getElementById("alarmSet").value); + if (!Number.isInteger(time) || time <= 0) { + return; + } + clearInterval(interval); displayTime(time); From ec0fc3bb51608e51ceff8f7cabbe39e8e5955e1c Mon Sep 17 00:00:00 2001 From: Khaliun Baatarkhuu Date: Sat, 8 Aug 2026 15:44:14 +0100 Subject: [PATCH 6/6] Add pauseAlarm call before displaying time --- Sprint-3/alarmclock/alarmclock.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index e25b271ed..4958ef29e 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -15,7 +15,8 @@ function setAlarm() { } clearInterval(interval); - + pauseAlarm(); + displayTime(time); interval = setInterval(() => {