From bb1eceb1ca6c17ede0616cc3aaebd1f2ded968bd Mon Sep 17 00:00:00 2001 From: Mohamed Ibrahim Mohamed Date: Tue, 8 Jul 2025 23:18:56 +0100 Subject: [PATCH 1/4] My custom Alarm Clock Timer solution --- Sprint-3/alarmclock/alarmclock.js | 45 ++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..2dc81c472 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,44 @@ -function setAlarm() {} +let countdown = null; +let remainingSeconds = 0; + +function setAlarm() { + const input = document.getElementById("alarmSet"); + const timeText = document.getElementById("timeRemaining"); + + const seconds = parseInt(input.value, 10); + + if (isNaN(seconds) || seconds <= 0) { + alert("Enter a number greater than 0"); + return; + } + + // Stop any previous countdown + if (countdown !== null) { + clearInterval(countdown); + } + + remainingSeconds = seconds; + updateTimeDisplay(); + + countdown = setInterval(() => { + remainingSeconds--; + + updateTimeDisplay(); + + if (remainingSeconds <= 0) { + clearInterval(countdown); + countdown = null; + playAlarm(); + document.body.style.backgroundColor = "#f99"; // change background + } + }, 1000); +} + +function updateTimeDisplay() { + const minutes = String(Math.floor(remainingSeconds / 60)).padStart(2, "0"); + const seconds = String(remainingSeconds % 60).padStart(2, "0"); + document.getElementById("timeRemaining").textContent = `Time Remaining: ${minutes}:${seconds}`; +} // DO NOT EDIT BELOW HERE @@ -11,15 +51,18 @@ function setup() { document.getElementById("stop").addEventListener("click", () => { pauseAlarm(); + document.body.style.backgroundColor = ""; // reset background }); } function playAlarm() { + audio.loop = true; audio.play(); } function pauseAlarm() { audio.pause(); + audio.currentTime = 0; } window.onload = setup; From 77fecf54a351e974c1af3dea2bf6a30eebdac4da Mon Sep 17 00:00:00 2001 From: Mohamed Ibrahim Mohamed Date: Wed, 9 Jul 2025 15:48:37 +0100 Subject: [PATCH 2/4] Clean up index.html with simplified alarm clock layout --- Sprint-3/alarmclock/index.html | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..955d98b65 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,17 +4,20 @@ - Title here + Alarm Clock App
-

Time Remaining: 00:00

- - +

Time Remaining: 00:00

+ + +
+ + From d06d590936ef1c485c92dfd1faa48bd7e3e38023 Mon Sep 17 00:00:00 2001 From: cyf Date: Sat, 12 Jul 2025 15:48:16 +0100 Subject: [PATCH 3/4] Refactored alarm audio setup to comply with edit boundaries --- Sprint-3/alarmclock/alarmclock.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 2dc81c472..b65c9af01 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,6 +1,11 @@ let countdown = null; let remainingSeconds = 0; +var audio = new Audio("alarmsound.mp3"); +audio.loop = true; +audio.currentTime = 0; + + function setAlarm() { const input = document.getElementById("alarmSet"); const timeText = document.getElementById("timeRemaining"); @@ -39,11 +44,16 @@ function updateTimeDisplay() { const seconds = String(remainingSeconds % 60).padStart(2, "0"); document.getElementById("timeRemaining").textContent = `Time Remaining: ${minutes}:${seconds}`; } + document.getElementById("stop").addEventListener("click", () => { + document.body.style.backgroundColor = ""; // reset background + }); // DO NOT EDIT BELOW HERE -var audio = new Audio("alarmsound.mp3"); +function pauseAlarm() { + audio.pause(); +} function setup() { document.getElementById("set").addEventListener("click", () => { setAlarm(); @@ -51,18 +61,12 @@ function setup() { document.getElementById("stop").addEventListener("click", () => { pauseAlarm(); - document.body.style.backgroundColor = ""; // reset background }); } function playAlarm() { - audio.loop = true; audio.play(); } -function pauseAlarm() { - audio.pause(); - audio.currentTime = 0; -} window.onload = setup; From f0b12cbbcc05423b93677f0d2bdcf773f95c566f Mon Sep 17 00:00:00 2001 From: cyf Date: Sat, 12 Jul 2025 16:20:35 +0100 Subject: [PATCH 4/4] Editing 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 955d98b65..437e66a17 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -8,7 +8,7 @@
-

Time Remaining: 00:00

+

00:00