From 88454763ead09fc7492555ab9c606f6f47e4a409 Mon Sep 17 00:00:00 2001 From: Hamed Razizadeh Date: Wed, 21 Jan 2026 19:40:51 +0100 Subject: [PATCH 1/4] completed week 2 assignment task 1 --- task-1/leap-year.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/task-1/leap-year.js b/task-1/leap-year.js index e05d215..d4b0546 100644 --- a/task-1/leap-year.js +++ b/task-1/leap-year.js @@ -1,6 +1,22 @@ -import promptSync from 'prompt-sync'; +import promptSync from "prompt-sync"; const prompt = promptSync(); +const yearInput = prompt("Enter a year:"); +const year = Number(yearInput); + +if (!Number.isInteger(year) || year < 1 || year > 9999) { + console.log("Invalid year!"); +} else { + if (year % 400 === 0) { + console.log(`Yes, ${year} is a leap year`); + } else if (year % 100 === 0) { + console.log(`No, ${year} is not a leap year`); + } else if (year % 4 === 0) { + console.log(`Yes, ${year} is a leap year`); + } else { + console.log(`No, ${year} is not a leap year`); + } +} // Write your code here // Guidance: From e95fa1e681bc7f82f04efe20a6d60c55bc2ec20d Mon Sep 17 00:00:00 2001 From: Hamed Razizadeh Date: Wed, 21 Jan 2026 19:53:08 +0100 Subject: [PATCH 2/4] completed week 2 assignment task 2 --- task-2/login.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/task-2/login.js b/task-2/login.js index ca9ba92..ddfcc2b 100644 --- a/task-2/login.js +++ b/task-2/login.js @@ -4,9 +4,20 @@ import { errorMessage, successMessage } from './app.js'; let incorrectAttempts = 0; function onLogin(username, password) { - // Write your code here. - // Use the variables 'username' and 'password' to access the input values - // Use incorrectAttempts to track the number of failed attempts + if (incorrectAttempts >= 4) { + errorMessage("Login blocked: Too many incorrect attempts"); + return; + } + + if ( + (username === "admin" && password === "Hack1234") || + (username === "user" && password === "7654321") + ) { + successMessage("Logged in successfully"); + } else { + incorrectAttempts++; + errorMessage("Incorrect credentials"); + } } // Do not change the line below From 90e9506e60f11a9fa4a132bec5223130746dfb35 Mon Sep 17 00:00:00 2001 From: Hamed Razizadeh Date: Wed, 21 Jan 2026 19:53:37 +0100 Subject: [PATCH 3/4] completed week 2 assignment task 3 --- task-3/converter.js | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/task-3/converter.js b/task-3/converter.js index 0f54a18..4dfad19 100644 --- a/task-3/converter.js +++ b/task-3/converter.js @@ -1,37 +1,54 @@ -import promptSync from 'prompt-sync'; +import promptSync from "prompt-sync"; const prompt = promptSync(); // Exchange rate for EUR/USD (How much 1 EUR is in USD) const EUR_USD_RATE = 1.1643; // Menu display -conole.log("Hello and welcome to the currency converter. Please choose: "); +console.log("Hello and welcome to the currency converter. Please choose: "); console.log("1: Convert EUR to USD"); console.log("2: Convert USD to EUR"); -const menuSelection = prompt("Select your option [1 or 2]: "); +console.log("3: Display the current exchange rate"); +const menuSelection = prompt("Select your option [1, 2, or 3]: "); console.log("\n"); if (menuSelection === "1") { - // EUR to USD + // EUR → USD const eurAmountInput = prompt("Enter amount in EUR: "); const eurAmountNum = Number(eurAmountInput); - if (Number.isNaN(eurAmountNum) || eurAmountNum > 0) { + + if (Number.isNaN(eurAmountNum) || eurAmountNum <= 0) { console.log("Please enter a valid positive number for the amount."); } else { const usdAmount = eurAmountNum * EUR_USD_RATE; - console.log(eurAmountNum.toFixed(2) + ' EUR is equal to ' + usdAmount.toFixed(2) + ' USD.'); + console.log( + eurAmountNum.toFixed(2) + + " EUR is equal to " + + usdAmount.toFixed(2) + + " USD.", + ); } } else if (menuSelection === "2") { - // USD to EUR + // USD → EUR const usdAmountInput = prompt("Enter amount in USD: "); const usdAmountNum = Number(usdAmountInput); - if (Number.isNaN(usdAmountNum) || usdAmountNum < 0) { + + if (Number.isNaN(usdAmountNum) || usdAmountNum <= 0) { console.log("Please enter a valid positive number for the amount."); } else { - const eurAmount = usdAmountNum / eur_usd_rate; - console.log(usdAmountNum.toFixed(2) + ' USD is equal to ' + usdAmountNum.toFixed(2) + ' EUR.'); + const eurAmount = usdAmountNum / EUR_USD_RATE; + console.log( + usdAmountNum.toFixed(2) + + " USD is equal to " + + eurAmount.toFixed(2) + + " EUR.", + ); } +} else if (menuSelection === "3") { + // Display current exchange rate + console.log(`The current exchange rate is 1 EUR = ${EUR_USD_RATE} USD.`); } else { - console.log("Invalid selection. Please choose either 1 or 2."); + // Invalid option + console.log("Invalid selection. Please choose 1, 2, or 3."); } From ecd84f66a15c9ae45da1e3e5309a6041895fe2f9 Mon Sep 17 00:00:00 2001 From: Hamed Razizadeh Date: Wed, 21 Jan 2026 20:11:13 +0100 Subject: [PATCH 4/4] Removed comment lines --- task-1/leap-year.js | 6 ------ task-2/login.js | 4 +--- task-3/converter.js | 6 ------ 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/task-1/leap-year.js b/task-1/leap-year.js index d4b0546..f0d9c5c 100644 --- a/task-1/leap-year.js +++ b/task-1/leap-year.js @@ -17,9 +17,3 @@ if (!Number.isInteger(year) || year < 1 || year > 9999) { console.log(`No, ${year} is not a leap year`); } } - -// Write your code here -// Guidance: -// Step 1: prompt the user to enter a year -// Step 2: convert the user input to a number so we can perform calculations -// Step 3: Implement the logic diff --git a/task-2/login.js b/task-2/login.js index ddfcc2b..ff22232 100644 --- a/task-2/login.js +++ b/task-2/login.js @@ -1,5 +1,4 @@ -// Do not change the line below -import { errorMessage, successMessage } from './app.js'; +import { errorMessage, successMessage } from "./app.js"; let incorrectAttempts = 0; @@ -20,5 +19,4 @@ function onLogin(username, password) { } } -// Do not change the line below export { onLogin }; diff --git a/task-3/converter.js b/task-3/converter.js index 4dfad19..c72e747 100644 --- a/task-3/converter.js +++ b/task-3/converter.js @@ -1,10 +1,8 @@ import promptSync from "prompt-sync"; const prompt = promptSync(); -// Exchange rate for EUR/USD (How much 1 EUR is in USD) const EUR_USD_RATE = 1.1643; -// Menu display console.log("Hello and welcome to the currency converter. Please choose: "); console.log("1: Convert EUR to USD"); console.log("2: Convert USD to EUR"); @@ -14,7 +12,6 @@ const menuSelection = prompt("Select your option [1, 2, or 3]: "); console.log("\n"); if (menuSelection === "1") { - // EUR → USD const eurAmountInput = prompt("Enter amount in EUR: "); const eurAmountNum = Number(eurAmountInput); @@ -30,7 +27,6 @@ if (menuSelection === "1") { ); } } else if (menuSelection === "2") { - // USD → EUR const usdAmountInput = prompt("Enter amount in USD: "); const usdAmountNum = Number(usdAmountInput); @@ -46,9 +42,7 @@ if (menuSelection === "1") { ); } } else if (menuSelection === "3") { - // Display current exchange rate console.log(`The current exchange rate is 1 EUR = ${EUR_USD_RATE} USD.`); } else { - // Invalid option console.log("Invalid selection. Please choose 1, 2, or 3."); }