diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js
index 6ca81cd3b..fc45e3452 100644
--- a/Sprint-3/alarmclock/alarmclock.js
+++ b/Sprint-3/alarmclock/alarmclock.js
@@ -1,4 +1,32 @@
-function setAlarm() {}
+let countInterval;
+function setAlarm() {
+ clearInterval(countInterval);
+ const timeInput = document.getElementById("alarmSet"); // now matches the HTML
+ const seconds = parseInt(timeInput.value, 10);
+
+ if (isNaN(seconds) || seconds <= 0) {
+ alert("Please enter a valid number of seconds.");
+ return;
+ }
+ let remainingSeconds = seconds;
+
+ countInterval = setInterval(() => {
+ if (remainingSeconds <= 0) {
+ clearInterval(showTime);
+ playAlarm();
+ return;
+ }
+
+ remainingSeconds--;
+
+ const mins = String(Math.floor(remainingSeconds / 60)).padStart(2, "0");
+ const secs = String(remainingSeconds % 60).padStart(2, "0");
+
+ document.getElementById(
+ "timeRemaining"
+ ).innerText = `Time Remaining: ${mins}:${secs}`;
+ }, 1000);
+}
// DO NOT EDIT BELOW HERE
diff --git a/Sprint-3/quote-generator/index.html b/Sprint-3/quote-generator/index.html
index 30b434bcf..c1a9c733a 100644
--- a/Sprint-3/quote-generator/index.html
+++ b/Sprint-3/quote-generator/index.html
@@ -3,6 +3,7 @@
+
Title here
diff --git a/Sprint-3/quote-generator/quotes.js b/Sprint-3/quote-generator/quotes.js
index 4a4d04b72..244d05877 100644
--- a/Sprint-3/quote-generator/quotes.js
+++ b/Sprint-3/quote-generator/quotes.js
@@ -491,3 +491,21 @@ const quotes = [
];
// call pickFromArray with the quotes array to check you get a random quote
+function showRandomQuote() {
+ const randomQuote = pickFromArray(quotes);
+ const quoteElement = document.getElementById("quote");
+ const authorElement = document.getElementById("author");
+
+ quoteElement.textContent = `"${randomQuote.quote}"`;
+ authorElement.textContent = ` ${randomQuote.author}`;
+}
+
+function setup() {
+ const button = document.getElementById("new-quote");
+ button.addEventListener("click", showRandomQuote);
+
+ // Show one quote immediately on page load
+ showRandomQuote();
+}
+
+window.addEventListener("DOMContentLoaded", setup);
diff --git a/Sprint-3/quote-generator/style.css b/Sprint-3/quote-generator/style.css
index 63cedf2d2..131de3e00 100644
--- a/Sprint-3/quote-generator/style.css
+++ b/Sprint-3/quote-generator/style.css
@@ -1 +1,65 @@
/** Write your CSS in here **/
+/* Reset some default styles */
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ background: linear-gradient(to right, #74ebd5, #acb6e5);
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 20px;
+ gap: 10px;
+}
+
+.quote-container {
+ background: #ffffff;
+ padding: 30px 40px;
+ border-radius: 12px;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+ max-width: 600px;
+ text-align: center;
+}
+
+h1 {
+ margin-bottom: 20px;
+ font-size: 2rem;
+ color: #333;
+}
+
+#quote {
+ font-size: 1.5rem;
+ font-style: italic;
+ color: #555;
+ margin-bottom: 10px;
+}
+
+#author {
+ font-size: 1.1rem;
+ color: #05074a;
+ border-bottom: solid 2px #05074a;
+ margin-bottom: 20px;
+ font-weight: bold;
+}
+
+#new-quote {
+ padding: 10px 20px;
+ font-size: 1rem;
+ border: none;
+ border-radius: 8px;
+ background-color: #5c6bc0;
+ color: white;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+}
+
+#new-quote:hover {
+ background-color: #05074a;
+ color: white;
+}
\ No newline at end of file
diff --git a/Sprint-3/reading-list/script.js b/Sprint-3/reading-list/script.js
index 6024d73a0..bb44564fc 100644
--- a/Sprint-3/reading-list/script.js
+++ b/Sprint-3/reading-list/script.js
@@ -21,3 +21,20 @@ const books = [
},
];
+const readingList = document.getElementById("reading-list");
+
+books.forEach((book) => {
+ const li = document.createElement("li");
+
+ li.style.backgroundColor = book.alreadyRead ? "green" : "red";
+
+ const text = document.createElement("p");
+ text.innerText = `${book.title} by ${book.author}`;
+ li.appendChild(text);
+
+ const img = document.createElement("img");
+ img.src = book.bookCoverImage;
+ li.appendChild(img);
+
+ readingList.appendChild(li);
+});
diff --git a/Sprint-3/slideshow/index.html b/Sprint-3/slideshow/index.html
index 50f2eb1c0..0eead7975 100644
--- a/Sprint-3/slideshow/index.html
+++ b/Sprint-3/slideshow/index.html
@@ -3,6 +3,7 @@
+
Title here
diff --git a/Sprint-3/slideshow/slideshow.js b/Sprint-3/slideshow/slideshow.js
index 063ceefb5..a2a5d5b65 100644
--- a/Sprint-3/slideshow/slideshow.js
+++ b/Sprint-3/slideshow/slideshow.js
@@ -1,8 +1,29 @@
const images = [
- "./assets/cute-cat-a.png",
- "./assets/cute-cat-b.jpg",
- "./assets/cute-cat-c.jpg",
+ "./assets/cute-cat-a.png",
+ "./assets/cute-cat-b.jpg",
+ "./assets/cute-cat-c.jpg",
];
+// Write your code here
+let currentIndex = 0;
-// Write your code here
\ No newline at end of file
+// Get references to DOM elements
+const imgElement = document.getElementById("carousel-img");
+const forwardButton = document.getElementById("forward-btn");
+const backwardButton = document.getElementById("backward-btn");
+
+// Function to update the image src
+function updateImage() {
+ imgElement.src = images[currentIndex];
+}
+
+// Event listeners for buttons
+forwardButton.addEventListener("click", () => {
+ currentIndex = (currentIndex + 1) % images.length;
+ updateImage();
+});
+
+backwardButton.addEventListener("click", () => {
+ currentIndex = (currentIndex - 1 + images.length) % images.length;
+ updateImage();
+});
diff --git a/Sprint-3/slideshow/style.css b/Sprint-3/slideshow/style.css
index 63cedf2d2..b2f1d1eb9 100644
--- a/Sprint-3/slideshow/style.css
+++ b/Sprint-3/slideshow/style.css
@@ -1 +1,40 @@
-/** Write your CSS in here **/
+/* Center everything on the page */
+body {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ min-height: 100vh;
+ margin: 0;
+ font-family: Arial, sans-serif;
+ background-color: #f5f5f5;
+ gap: 20px;
+}
+img{
+ width: 60%;
+}
+#carousel-img {
+ max-width: 90%;
+ height: auto;
+ border: 4px solid #ccc;
+ border-radius: 10px;
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
+ margin-bottom: 20px;
+}
+
+button {
+ padding: 10px 20px;
+ margin: 0 10px;
+ font-size: 16px;
+ font-weight: bold;
+ color: #fff;
+ background-color: #3498db;
+ border: none;
+ border-radius: 6px;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+}
+
+button:hover {
+ background-color: #2980b9;
+}
\ No newline at end of file
diff --git a/Sprint-3/todo-list/index.html b/Sprint-3/todo-list/index.html
index ee3ef64fd..b475580b3 100644
--- a/Sprint-3/todo-list/index.html
+++ b/Sprint-3/todo-list/index.html
@@ -5,6 +5,7 @@
Title here
+
+