From f622d48fb6cc444569447f1f75379936a749aad7 Mon Sep 17 00:00:00 2001
From: delmorallopez <124817272+delmorallopez@users.noreply.github.com>
Date: Mon, 21 Jul 2025 19:34:51 +0100
Subject: [PATCH 1/9] Sprint3-alarmclock
---
Sprint-3/alarmclock/alarmclock.js | 56 +++++++++++++++++++++++++-
Sprint-3/alarmclock/alarmclock.test.js | 2 +-
Sprint-3/alarmclock/alarmclockapp.html | 20 +++++++++
3 files changed, 75 insertions(+), 3 deletions(-)
create mode 100644 Sprint-3/alarmclock/alarmclockapp.html
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 6ca81cd3b..15b55ac11 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -1,4 +1,54 @@
-function setAlarm() {}
+timeSetup = document.querySelector("#alarmSet"); // Access to alarmset
+
+timeCountdown = document.querySelector("#timeRemaining"); // Access to timeRemaining
+
+let countdownInterval; // Variable to setup to 0 the countdown
+
+function setAlarm() {
+ const totalSeconds = parseInt(timeSetup.value, 10);
+ const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, "0");
+ const seconds = String(totalSeconds % 60).padStart(2, "0");
+
+ timeCountdown.innerText = `Time Remaining: ${minutes}:${seconds}`;
+
+ document.body.style.backgroundColor = ""; // Reset background color
+
+}
+
+
+function startCountdown() {
+
+ let totalSeconds = parseInt(timeSetup.value, 10); //Convert the the string seconds to a number
+
+ if (isNaN(totalSeconds) || totalSeconds <= 0) {
+ timeCountdown.innerText = "Please enter a valid time."; // Return if the input is not a number or less than or equal to 0
+ return;
+ }
+
+ clearInterval(countdownInterval); // Stop previous countdown if any
+
+ countdownInterval = setInterval(() => {
+ const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, "0");
+ const seconds = String(totalSeconds % 60).padStart(2, "0");
+
+ timeCountdown.innerText = `Time Remaining: ${minutes}:${seconds}`;
+
+ if (totalSeconds <= 0) {
+ clearInterval(countdownInterval);
+ timeCountdown.innerText = "Time's up!";
+
+ document.body.style.backgroundColor = "#ff4c4c"; // Change background color Bright red
+
+ playAlarm(); // Play the alarm sound when the countdown reaches zero
+ }
+
+ totalSeconds--;
+ }, 1000);
+
+}
+
+
+
// DO NOT EDIT BELOW HERE
@@ -6,7 +56,8 @@ var audio = new Audio("alarmsound.mp3");
function setup() {
document.getElementById("set").addEventListener("click", () => {
- setAlarm();
+ setAlarm(); // Sets the initial time display
+ startCountdown(); // Starts the actual countdown
});
document.getElementById("stop").addEventListener("click", () => {
@@ -23,3 +74,4 @@ function pauseAlarm() {
}
window.onload = setup;
+
diff --git a/Sprint-3/alarmclock/alarmclock.test.js b/Sprint-3/alarmclock/alarmclock.test.js
index 85b7356dc..9abeb618b 100644
--- a/Sprint-3/alarmclock/alarmclock.test.js
+++ b/Sprint-3/alarmclock/alarmclock.test.js
@@ -8,7 +8,7 @@ const { JSDOM } = require("jsdom");
let page = null;
beforeEach(async () => {
- page = await JSDOM.fromFile(path.join(__dirname, "index.html"), {
+ page = await JSDOM.fromFile(path.join(__dirname, "alarmclockapp.html"), {
resources: "usable",
runScripts: "dangerously",
});
diff --git a/Sprint-3/alarmclock/alarmclockapp.html b/Sprint-3/alarmclock/alarmclockapp.html
new file mode 100644
index 000000000..6e2a873fa
--- /dev/null
+++ b/Sprint-3/alarmclock/alarmclockapp.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ Title here
+
+
+
+
Time Remaining: 00:00
+
+
+
+
+
+
+
+
+
From d23f10ab592619958a04bf86a6686875e50fd1ac Mon Sep 17 00:00:00 2001
From: delmorallopez <124817272+delmorallopez@users.noreply.github.com>
Date: Mon, 21 Jul 2025 19:41:39 +0100
Subject: [PATCH 2/9] Sprint3-AlarmClock
---
Sprint-3/alarmclock/alarmclock.js | 4 ++--
Sprint-3/alarmclock/alarmclock.test.js | 2 +-
Sprint-3/alarmclock/alarmclockapp.html | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 15b55ac11..f4cabe66e 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -66,11 +66,11 @@ function setup() {
}
function playAlarm() {
- audio.play();
+ audio.play(); // Play the alarm sound
}
function pauseAlarm() {
- audio.pause();
+ audio.pause(); // Stop the alarm sound
}
window.onload = setup;
diff --git a/Sprint-3/alarmclock/alarmclock.test.js b/Sprint-3/alarmclock/alarmclock.test.js
index 9abeb618b..426097dd3 100644
--- a/Sprint-3/alarmclock/alarmclock.test.js
+++ b/Sprint-3/alarmclock/alarmclock.test.js
@@ -1,5 +1,5 @@
/* ======= TESTS - DO NOT MODIFY =====
-There are some Tests in this file that will help you work out if your code is working.
+There are some Tests in this file that will help you work out if your code is working. No need to change the code in this file.
*/
const path = require("path");
diff --git a/Sprint-3/alarmclock/alarmclockapp.html b/Sprint-3/alarmclock/alarmclockapp.html
index 6e2a873fa..4efd4daee 100644
--- a/Sprint-3/alarmclock/alarmclockapp.html
+++ b/Sprint-3/alarmclock/alarmclockapp.html
@@ -9,7 +9,7 @@