From 581733da8ac0986c23432078335e7e1581587d65 Mon Sep 17 00:00:00 2001 From: shafiekwalker7861 Date: Fri, 31 Jul 2026 16:06:51 +0200 Subject: [PATCH 1/3] Complete Sprint 3 alarm clock --- Sprint-3/alarmclock/alarmclock.js | 45 ++++++++++++++++++++++++++++++- Sprint-3/alarmclock/index.html | 2 +- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..312d2c21e 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,47 @@ -function setAlarm() {} +let countdownId; +let secondsRemaining = 0; + +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 updateTimeRemaining() { + const heading = document.getElementById("timeRemaining"); + + heading.textContent = `Time Remaining: ${formatTime(secondsRemaining)}`; +} + +function setAlarm() { + window.clearInterval(countdownId); + + const input = document.getElementById("alarmSet"); + const enteredSeconds = Number.parseInt(input.value, 10); + + if (Number.isNaN(enteredSeconds) || enteredSeconds <= 0) { + secondsRemaining = 0; + updateTimeRemaining(); + return; + } + + secondsRemaining = enteredSeconds; + updateTimeRemaining(); + + countdownId = window.setInterval(() => { + secondsRemaining -= 1; + updateTimeRemaining(); + + if (secondsRemaining === 0) { + window.clearInterval(countdownId); + playAlarm(); + } + }, 1000); +} // DO NOT EDIT BELOW HERE 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 f4b6c875d34e52b2b46d4bc892503f8e16bf0e8a Mon Sep 17 00:00:00 2001 From: shafiekwalker7861 Date: Sat, 8 Aug 2026 10:48:01 +0200 Subject: [PATCH 2/3] Address alarm clock review feedback --- Sprint-3/alarmclock/alarmclock.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 312d2c21e..6d476d5f1 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -11,10 +11,10 @@ function formatTime(totalSeconds) { return `${formattedMinutes}:${formattedSeconds}`; } -function updateTimeRemaining() { +function updateTimeRemaining(seconds) { const heading = document.getElementById("timeRemaining"); - heading.textContent = `Time Remaining: ${formatTime(secondsRemaining)}`; + heading.textContent = `Time Remaining: ${formatTime(seconds)}`; } function setAlarm() { @@ -25,16 +25,16 @@ function setAlarm() { if (Number.isNaN(enteredSeconds) || enteredSeconds <= 0) { secondsRemaining = 0; - updateTimeRemaining(); + updateTimeRemaining(secondsRemaining); return; } secondsRemaining = enteredSeconds; - updateTimeRemaining(); + updateTimeRemaining(secondsRemaining); countdownId = window.setInterval(() => { secondsRemaining -= 1; - updateTimeRemaining(); + updateTimeRemaining(secondsRemaining); if (secondsRemaining === 0) { window.clearInterval(countdownId); From 0325533cdf136ecbc6b00fbb1ef884ecbd55942e Mon Sep 17 00:00:00 2001 From: shafiekwalker7861 Date: Sat, 8 Aug 2026 10:55:36 +0200 Subject: [PATCH 3/3] Address alarm clock review feedback --- Sprint-3/alarmclock/alarmclock.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6d476d5f1..f873925f4 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -19,6 +19,8 @@ function updateTimeRemaining(seconds) { function setAlarm() { window.clearInterval(countdownId); + pauseAlarm(); + audio.currentTime = 0; const input = document.getElementById("alarmSet"); const enteredSeconds = Number.parseInt(input.value, 10);