From e30ba623826fe859c2fd3c474635a074748cd458 Mon Sep 17 00:00:00 2001 From: Dagim-Daniel Date: Tue, 28 Jul 2026 23:11:03 +0100 Subject: [PATCH 1/2] tasks under Sprint 3 alarm has been done --- Sprint-3/alarmclock/alarmclock.js | 61 +++++++++++++++++++++++++++++++ Sprint-3/alarmclock/index.html | 4 +- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..6dc0d18ed 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,65 @@ function setAlarm() {} +const display = document.querySelector("#timeRemaining"); +const totalSeconds = document.querySelector("#alarmSet"); +const setButton = document.querySelector("#set"); +const stopButton = document.querySelector("#stop"); +let conuntdownInterval; + +// time management function +function formatTime(totalSeconds) { + const minutes = Math.floor(totalSeconds / 60); + const seconds = totalSeconds % 60; + + const paddedMinutes = String(minutes).padStart(2, "0"); + const paddedSeconds = String(seconds).padStart(2, "0"); + return `Time Remaining: ${paddedMinutes}:${paddedSeconds}`; +} + +// to clear every change made with conditions +function clearEverything() { + display.style.color = "black"; + setButton.disabled = false; + document.body.style.background = ""; +} + +// button event handler +setButton.addEventListener("click", () => { + let timeleft = Number(totalSeconds.value); + setButton.disabled = true; + + // time 0 + + if (timeleft <= 0) { + alert("please enter a number greater than 0!"); + return; + } + + display.textContent = formatTime(timeleft); + + conuntdownInterval = setInterval(() => { + if (timeleft == 0) { + clearInterval(conuntdownInterval); + document.body.style.backgroundColor = "grey"; + playAlarm(); + } + + if (timeleft <= 10) { + display.style.color = "red"; + } + + if (timeleft >= 0) { + display.textContent = formatTime(timeleft); + timeleft--; + } + }, 1000); +}); + +//stop button clicked +stopButton.addEventListener("click", () => { + clearInterval(conuntdownInterval); + clearEverything(); + pauseAlarm(); +}); // DO NOT EDIT BELOW HERE diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..66748001e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -1,10 +1,10 @@ - + - Title here + Alarm clock app
From eeb63cdf25d65b4a8266a281fc9b4f09706af5bf Mon Sep 17 00:00:00 2001 From: Dagim-Daniel Date: Mon, 3 Aug 2026 15:36:48 +0100 Subject: [PATCH 2/2] cleaning code and fixing pre validation --- Sprint-3/alarmclock/alarmclock.js | 40 +++++++++++++++---------------- Sprint-3/alarmclock/index.html | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6dc0d18ed..d0adb4cd3 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -5,7 +5,6 @@ const setButton = document.querySelector("#set"); const stopButton = document.querySelector("#stop"); let conuntdownInterval; -// time management function function formatTime(totalSeconds) { const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; @@ -15,49 +14,50 @@ function formatTime(totalSeconds) { return `Time Remaining: ${paddedMinutes}:${paddedSeconds}`; } -// to clear every change made with conditions -function clearEverything() { +function reset() { + clearInterval(conuntdownInterval); + display.textContent = "Time Remaining: 00:00"; display.style.color = "black"; setButton.disabled = false; document.body.style.background = ""; } - -// button event handler +let countdownInterval; setButton.addEventListener("click", () => { let timeleft = Number(totalSeconds.value); - setButton.disabled = true; - // time 0 - - if (timeleft <= 0) { - alert("please enter a number greater than 0!"); + if (timeleft <= 0 || isNaN(timeleft)) { + alert("please enter a number greater than zero (0)!"); return; } + setButton.disabled = true; display.textContent = formatTime(timeleft); + const warningTime = 10; // seconds + clearInterval(conuntdownInterval); + conuntdownInterval = setInterval(() => { - if (timeleft == 0) { - clearInterval(conuntdownInterval); - document.body.style.backgroundColor = "grey"; - playAlarm(); + timeleft--; + + if (timeleft >= 0) { + display.textContent = formatTime(timeleft); } - if (timeleft <= 10) { + if (timeleft <= warningTime) { display.style.color = "red"; } - if (timeleft >= 0) { - display.textContent = formatTime(timeleft); - timeleft--; + if (timeleft <= 0) { + clearInterval(conuntdownInterval); + document.body.style.backgroundColor = "grey"; + playAlarm(); } }, 1000); }); -//stop button clicked stopButton.addEventListener("click", () => { clearInterval(conuntdownInterval); - clearEverything(); + reset(); pauseAlarm(); }); diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 66748001e..1d68d420e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -15,6 +15,6 @@

Time Remaining: 00:00

- +