-
Notifications
You must be signed in to change notification settings - Fork 19
Diana C. #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Diana C. #4
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "dependencies": { | ||
| "prompt-sync": "^4.2.0" | ||
| }, | ||
| "type": "module" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,3 +7,22 @@ const prompt = promptSync(); | |
| // 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 | ||
|
|
||
|
|
||
| const year = Number(prompt('Enter to check the year: ')); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good that you converted the user input to a Number type. But it is a good practice to create readable variables with clear names so that future developers can understand the code more easily. Like, for example: |
||
|
|
||
|
|
||
| if (isNaN(year) || year > 9999 || year < 1) { | ||
| 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`); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice that you met all the required conditions. However, one improvement would be to follow the DRY principle. In programming, there is a principle called DRY (Don't Repeat Yourself). So, in this case, for example, you could create a variable called |
||
| } | ||
| else { | ||
| console.log(`No, ${year} is not a leap year`); | ||
| } | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,10 +4,29 @@ 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 ((username === "admin" && password === "Hack1234") || (username === "user" && password === "7654321")) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The first thing you should check in your logic is that if |
||
| successMessage("Logged in successfully"); | ||
| } else { | ||
| incorrectAttempts++; | ||
|
|
||
| if (incorrectAttempts >= 4) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice that you check incorrectAttempts in the same session after it increases. |
||
| errorMessage("Login blocked: Too many incorrect attempts"); | ||
| } else { | ||
| errorMessage("Incorrect credentials"); | ||
| } | ||
| } | ||
| } | ||
|
|
||
| // Do not change the line below | ||
| export { onLogin }; | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| // Write your code here. | ||
| // Use the variables 'username' and 'password' to access the input values | ||
| // Use incorrectAttempts to track the number of failed attempts | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No need to move these comments. Either you can remove them or you can keep them in the same place. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,18 +5,19 @@ const prompt = promptSync(); | |
| const EUR_USD_RATE = 1.1643; | ||
|
|
||
| // Menu display | ||
| conole.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("Hello and welcome to the currency converter. Please choose: ") | ||
| console.log("1: Convert EUR to USD") | ||
| console.log("2: Convert USD to EUR") | ||
| console.log("3: Display the current exchange rate") | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You are not supposed to remove the semicolons at the end of the lines. |
||
| const menuSelection = prompt("Select your option [1, 2 or 3]: "); | ||
|
|
||
| console.log("\n"); | ||
|
|
||
| if (menuSelection === "1") { | ||
| // EUR to USD | ||
| const eurAmountInput = prompt("Enter amount in EUR: "); | ||
| const eurAmountNum = Number(eurAmountInput); | ||
| if (Number.isNaN(eurAmountNum) || eurAmountNum > 0) { | ||
| if (Number.isNaN(eurAmountNum) || eurAmountNum < 0) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Based on the error message, the logic should check if the inputted amount is a valid positive number: |
||
| console.log("Please enter a valid positive number for the amount."); | ||
| } else { | ||
| const usdAmount = eurAmountNum * EUR_USD_RATE; | ||
|
|
@@ -29,9 +30,13 @@ if (menuSelection === "1") { | |
| if (Number.isNaN(usdAmountNum) || usdAmountNum < 0) { | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Based on the error message, the logic should check if the inputted amount is a valid positive number: |
||
| console.log("Please enter a valid positive number for the amount."); | ||
| } else { | ||
| const eurAmount = usdAmountNum / eur_usd_rate; | ||
| const eurAmount = usdAmountNum / EUR_USD_RATE; | ||
| console.log(usdAmountNum.toFixed(2) + ' USD is equal to ' + usdAmountNum.toFixed(2) + ' EUR.'); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You should use the correct variable. |
||
| } | ||
| } else { | ||
| console.log("Invalid selection. Please choose either 1 or 2."); | ||
| } else if (menuSelection === "3"){ | ||
| //The current exchange rate | ||
| console.log ("The current exchange rate is 1 EUR = 1.1643 USD") | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The output is correct. However, it is a good practice if you reuse the existing variable: |
||
| } | ||
| else { | ||
| console.log("Invalid selection. Please choose either 1, 2 or 3."); | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you ran the command
npm install prompt-syncon the root level. You don't need package.json on root level. You already have one inside thetask-1folder. You can removepackage.jsonandpackage-lock.jsonfrom the root level.