From 0b31be82bc7f876ea38b1588820485017a3cf043 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sun, 17 Nov 2024 13:07:37 +0530
Subject: [PATCH 01/15] Completed Assignment: Issue 1
---
1-js-basics/1-data-types/excercise.js | 50 +++++++++++++++++++++++++++
1-js-basics/1-data-types/solution1.md | 43 +++++++++++++++++++++++
2 files changed, 93 insertions(+)
create mode 100644 1-js-basics/1-data-types/excercise.js
create mode 100644 1-js-basics/1-data-types/solution1.md
diff --git a/1-js-basics/1-data-types/excercise.js b/1-js-basics/1-data-types/excercise.js
new file mode 100644
index 0000000..ce85ad6
--- /dev/null
+++ b/1-js-basics/1-data-types/excercise.js
@@ -0,0 +1,50 @@
+// let myVariable;
+// myVariable has now been declared using the let keyword. It currently doesn't have a value.
+
+let myVariable = 123;
+// The above is called an explicit initialization when a variable is declared and is assigned a value at the same time.
+
+const PI = 3;
+// PI = 4; // not allowed
+// Constants must be initialized, or an error will occur when running code.
+// The reference of a constant cannot be changed once initialized, or an error will occur when running code.
+
+let myString1 = "Hello";
+let myString2 = "World";
+
+myString1 + myString2 + "!"; //HelloWorld!
+myString1 + " " + myString2 + "!"; //Hello World!
+myString1 + ", " + myString2 + "!"; //Hello, World!
+// Template literals are another way to format strings, except instead of quotes, the backtick is used. Anything that is not plain text must be placed inside placeholders ${ }. This includes any variables that may be strings.
+
+// Challenge
+
+// 1. Case Sensitivity
+let age = 1;
+let Age = 2;
+console.log(age == Age); // false
+// JavaScript is case-sensitive, meaning age and Age are treated as entirely different variables.
+
+// 2. Type Coercion
+console.log(1 == '1'); // true
+console.log(1 === '1'); // false
+// == performs type coercion, converting '1' (string) to 1 (number) before comparing.
+// === is a strict equality operator and doesn't perform type coercion, so it compares both value and type.
+
+// 3. numm vs. undefined
+console.log(null == undefined); // true
+console.log(null === undefined); // false
+
+// null and undefined are considered loosely equal (==) because they both represent "absence of value".
+// They are not strictly equal (===) because null is an object type and undefined is a primitive type.
+
+// 4. NaN is Not Equal to Itself
+console.log(NaN == NaN); // false
+console.log(NaN === NaN); // false
+// NaN (Not-a-Number) is unique in that it is not equal to anything, including itself. Use Number.isNaN(value) to check for NaN.
+
+// 5. Typeof Difference
+console.log(typeof null); // "object"
+console.log(typeof NaN); // "number"
+// typeof null returns "object" because of a historical bug in JavaScript that was never fixed for backward compatibility.
+// typeof NaN returns "number" because NaN is technically a special value of the number type.
\ No newline at end of file
diff --git a/1-js-basics/1-data-types/solution1.md b/1-js-basics/1-data-types/solution1.md
new file mode 100644
index 0000000..6aa56ab
--- /dev/null
+++ b/1-js-basics/1-data-types/solution1.md
@@ -0,0 +1,43 @@
+# Solution for 1: data types
+
+The question is quite simple. We need to mention the data types that we would need to complete a shopping experience.
+
+The experience can be divided into 5 different parts:
+
+## User Login detials
+| Name (property) | Data Type | Reason |
+| --- | --- |
+| id | String | - Unique identifier for the user. - String is used as it will be a combination of letters and numbers |
+| name | String | - Name of Customer - String is used to store names |
+| email | String | - authentication - combination of letters, numbers and special characters.|
+| isLoggedIn | Boolean | - check the status of a seesion - a user can be loggedin or not thus boolean |
+
+## Product Information
+| Name (property) | Data Type | Reason |
+| --- | --- |
+| id | String | - Unique identifier for the each product. - String is used as it will be a combination of letters and numbers |
+| name | String | - Name of Product - String is used to store names |
+| price | Double | - represnts cost of the product - number to perform final cost calculations.|
+| quantity | Integer | - number of products available |
+| isAvailable | Boolean | - checks if a product is available or not - a product can be available or not, thus boolean |
+
+## Shopping Cart
+| Name (property) | Data Type | Reason |
+| --- | --- |
+| items | Array | - holds all the products added to the cart |
+| totalPrice | Double | - Sum of Prices will be double |
+| discount | Double | - Stores discount percentage or amount |
+
+## Payment Details
+| Name (property) | Data Type | Reason |
+| --- | --- |
+| cardNumber | String | - Allows payment processing systems to validate it - It will be with numbers and dashes |
+| totalPaid | Double | - Reflects the final amount after discounts |
+
+## Order Summary
+| Name (property) | Data Type | Reason |
+| --- | --- |
+| orderId | String | - Unique identifier for each order |
+| items | Array | - Lists purchased products |
+| totalPrice | Double | - Reflects the amount charged |
+| deliveryDate | String | - Displays estimated delivery date |
\ No newline at end of file
From 5379ca2869808d131189d7a9dcc3b57dd6adbae0 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sun, 17 Nov 2024 13:25:31 +0530
Subject: [PATCH 02/15] Corrected Tables in solution1.md
---
1-js-basics/1-data-types/solution1.md | 64 +++++++++++++++------------
1 file changed, 36 insertions(+), 28 deletions(-)
diff --git a/1-js-basics/1-data-types/solution1.md b/1-js-basics/1-data-types/solution1.md
index 6aa56ab..570dbfd 100644
--- a/1-js-basics/1-data-types/solution1.md
+++ b/1-js-basics/1-data-types/solution1.md
@@ -5,39 +5,47 @@ The question is quite simple. We need to mention the data types that we would ne
The experience can be divided into 5 different parts:
## User Login detials
-| Name (property) | Data Type | Reason |
-| --- | --- |
-| id | String | - Unique identifier for the user. - String is used as it will be a combination of letters and numbers |
-| name | String | - Name of Customer - String is used to store names |
-| email | String | - authentication - combination of letters, numbers and special characters.|
-| isLoggedIn | Boolean | - check the status of a seesion - a user can be loggedin or not thus boolean |
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `id` | String | - Unique identifier for the user. - String is used as it will be a combination of letters and numbers. |
+| `name` | String | - Name of Customer. - String is used to store names. |
+| `email` | String | - Authentication. - Combination of letters, numbers, and special characters. |
+| `isLoggedIn` | Boolean | - Check the status of a session. - A user can be logged in or not, thus Boolean. |
+
+---
## Product Information
-| Name (property) | Data Type | Reason |
-| --- | --- |
-| id | String | - Unique identifier for the each product. - String is used as it will be a combination of letters and numbers |
-| name | String | - Name of Product - String is used to store names |
-| price | Double | - represnts cost of the product - number to perform final cost calculations.|
-| quantity | Integer | - number of products available |
-| isAvailable | Boolean | - checks if a product is available or not - a product can be available or not, thus boolean |
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `id` | String | - Unique identifier for each product. - String is used as it will be a combination of letters and numbers. |
+| `name` | String | - Name of Product. - String is used to store names. |
+| `price` | Double | - Represents the cost of the product. - Number is used to perform final cost calculations. |
+| `quantity` | Integer | - Number of products available. |
+| `isAvailable` | Boolean | - Checks if a product is available or not. - A product can be available or not, thus Boolean. |
+
+---
## Shopping Cart
-| Name (property) | Data Type | Reason |
-| --- | --- |
-| items | Array | - holds all the products added to the cart |
-| totalPrice | Double | - Sum of Prices will be double |
-| discount | Double | - Stores discount percentage or amount |
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `items` | Array | - Holds all the products added to the cart. |
+| `totalPrice` | Double | - Sum of prices will be a double. |
+| `discount` | Double | - Stores discount percentage or amount. |
+
+---
## Payment Details
-| Name (property) | Data Type | Reason |
-| --- | --- |
-| cardNumber | String | - Allows payment processing systems to validate it - It will be with numbers and dashes |
-| totalPaid | Double | - Reflects the final amount after discounts |
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `cardNumber` | String | - Allows payment processing systems to validate it. - It will be a combination of numbers and dashes. |
+| `totalPaid` | Double | - Reflects the final amount after discounts. |
+
+---
## Order Summary
-| Name (property) | Data Type | Reason |
-| --- | --- |
-| orderId | String | - Unique identifier for each order |
-| items | Array | - Lists purchased products |
-| totalPrice | Double | - Reflects the amount charged |
-| deliveryDate | String | - Displays estimated delivery date |
\ No newline at end of file
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `orderId` | String | - Unique identifier for each order. |
+| `items` | Array | - Lists purchased products. |
+| `totalPrice` | Double | - Reflects the amount charged. |
+| `deliveryDate` | String | - Displays the estimated delivery date. |
From aa42b207f9b5b160f34bfa76ed23d8b77e4caab1 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sun, 17 Nov 2024 17:52:40 +0530
Subject: [PATCH 03/15] Issue1: Functions
---
1-js-basics/2-functions-methods/exercise2.js | 44 ++++++++++++++++++
1-js-basics/2-functions-methods/solution2.md | 49 ++++++++++++++++++++
2 files changed, 93 insertions(+)
create mode 100644 1-js-basics/2-functions-methods/exercise2.js
create mode 100644 1-js-basics/2-functions-methods/solution2.md
diff --git a/1-js-basics/2-functions-methods/exercise2.js b/1-js-basics/2-functions-methods/exercise2.js
new file mode 100644
index 0000000..00529e6
--- /dev/null
+++ b/1-js-basics/2-functions-methods/exercise2.js
@@ -0,0 +1,44 @@
+// a function is a block of code we can execute on demand. This is perfect for scenarios where we need to perform the same task multiple times
+
+// Syntax
+function nameOfFunction() { // function definition
+ // function definition/body
+}
+
+
+// Whenever we want to call (or invoke) our function, we use the name of the function followed by ()
+
+// If we want to make it a little more flexible, like allowing someone to specify the name of the person to greet, we can add a parameter. A parameter (also sometimes called an argument), is additional information sent to a function
+// Syntax
+function name(param, param2, param3) {
+
+}
+
+function displayGreeting(name) {
+ const message = `Hello, ${name}!`;
+ console.log(message);
+ }
+ displayGreeting('Prarthana');
+ // displays "Hello, Prarthana!" when run
+ // If someone doesn't want to customize it, we provide a default value instead. To provide a default value to a parameter, we set it much in the same way we set a value for a variable
+
+ function displayGreeting2(name, salutation='Hello') {
+ console.log(`${salutation}, ${name}`);
+ }
+ displayGreeting2('Prarthana', 'Hi');
+// displays "Hi, Prarthana"
+
+// A return value is returned by the function, and can be stored in a variable just the same as we could store a literal value such as a string or number.
+
+
+
+// It uses a special indicator of =>, which looks like an arrow - thus the name! By using =>, we are able to skip the function keyword
+// Syntax
+setTimeout(() => {
+ console.log('3 seconds has elapsed');
+ }, 3000);
+
+// Challenge
+
+// Functions are standalone blocks of code that perform tasks, while methods are functions associated with an object and can access and modify the object's data.
+// Functions are independent and can be called on their own, whereas methods are tied to objects and operate on the object's attributes.
diff --git a/1-js-basics/2-functions-methods/solution2.md b/1-js-basics/2-functions-methods/solution2.md
new file mode 100644
index 0000000..4e54a23
--- /dev/null
+++ b/1-js-basics/2-functions-methods/solution2.md
@@ -0,0 +1,49 @@
+# Solution for 2: Data Types
+
+This assignment will familiarise you with the use of functions in different situations.
+
+## Function that returns something:
+
+```
+function addNumbers(a, b) {
+ return a + b;
+}
+
+// Example usage:
+const result = addNumbers(1, 2);
+console.log(`Sum: ${result}`); // Output: Sum: 3
+
+
+```
+## Function that doesn't return anything
+
+```
+def greet_user(name):
+function greetUser(name) {
+ console.log(`Hello, ${name}!`);
+}
+
+// Example usage:
+greetUser("Prarthana"); // Output: Hello, Prarthana!
+
+
+```
+## Function with no Parameters
+
+```
+function printMessage() {
+ console.log("Dream Team Task: 04");
+}
+printMessage();
+
+```
+## Function with mix parameters
+
+```
+function introducePerson(name, age = 20, city = "Hyd") {
+ return `My name is ${name}, I am ${age} years old, and I live in ${city}.`;
+}
+const intro1 = introducePerson("Prarthana");
+console.log(intro1);
+
+```
From 3f9f48c94f16f0ab1f9dd2c8a25c8986e9bfcdf0 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sat, 23 Nov 2024 13:43:11 +0530
Subject: [PATCH 04/15] Adding solution files for 3-making-decisions and
4-array-loops
---
1-js-basics/1-data-types/solution1.md | 3 +
1-js-basics/2-functions-methods/solution2.md | 5 +-
1-js-basics/3-making-decisions/excercise3.js | 114 +++++++++
1-js-basics/3-making-decisions/solution3.js | 19 ++
1-js-basics/3-making-decisions/solution3.md | 29 +++
1-js-basics/4-arrays-loops/excercise4.js | 56 ++++
1-js-basics/4-arrays-loops/solution4.js | 3 +
1-js-basics/solution.md | 255 +++++++++++++++++++
8 files changed, 483 insertions(+), 1 deletion(-)
create mode 100644 1-js-basics/3-making-decisions/excercise3.js
create mode 100644 1-js-basics/3-making-decisions/solution3.js
create mode 100644 1-js-basics/3-making-decisions/solution3.md
create mode 100644 1-js-basics/4-arrays-loops/excercise4.js
create mode 100644 1-js-basics/4-arrays-loops/solution4.js
create mode 100644 1-js-basics/solution.md
diff --git a/1-js-basics/1-data-types/solution1.md b/1-js-basics/1-data-types/solution1.md
index 570dbfd..65751e3 100644
--- a/1-js-basics/1-data-types/solution1.md
+++ b/1-js-basics/1-data-types/solution1.md
@@ -1,5 +1,8 @@
# Solution for 1: data types
+Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
+I have also attached a js file to run and check the code.
+
The question is quite simple. We need to mention the data types that we would need to complete a shopping experience.
The experience can be divided into 5 different parts:
diff --git a/1-js-basics/2-functions-methods/solution2.md b/1-js-basics/2-functions-methods/solution2.md
index 4e54a23..eb3e056 100644
--- a/1-js-basics/2-functions-methods/solution2.md
+++ b/1-js-basics/2-functions-methods/solution2.md
@@ -1,4 +1,7 @@
-# Solution for 2: Data Types
+# Solution for 2: Functions
+
+Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
+I have also attached a js file to run and check the code.
This assignment will familiarise you with the use of functions in different situations.
diff --git a/1-js-basics/3-making-decisions/excercise3.js b/1-js-basics/3-making-decisions/excercise3.js
new file mode 100644
index 0000000..c7de42f
--- /dev/null
+++ b/1-js-basics/3-making-decisions/excercise3.js
@@ -0,0 +1,114 @@
+// The if statement will run code in between its blocks if the condition is true
+// Syntax
+
+// if (condition) {
+// //Condition is true. Code in this block will run.
+// }
+
+//Example:
+let currentMoney = 10;
+let laptopPrice = 20;
+
+if (currentMoney >= laptopPrice) {
+ //Condition is true. Code in this block will run.
+ console.log("Getting a new laptop!");
+}
+
+// The else statement will run the code in between its blocks when the condition is false. It's optional with an if statement.
+// Syntax + Example
+if (currentMoney >= laptopPrice) {
+ //Condition is true. Code in this block will run.
+ console.log("Getting a new laptop!");
+} else {
+ //Condition is false. Code in this block will run.
+ console.log("Can't afford a new laptop, yet!");
+}
+
+// Switch Statement
+// The switch statement is used to perform different actions based on different conditions. Use the switch statement to select one of many code blocks to be executed.
+// Syntax
+
+// switch (expression) {
+// case x:
+// // code block
+// break;
+// case y:
+// // code block
+// break;
+// default:
+// // code block
+//}
+
+// program using switch statement
+let a = 7;
+
+switch (a) {
+ case 1:
+ a = "one";
+ break;
+ case 2:
+ a = "two";
+ break;
+ default:
+ a = "not found";
+ break;
+}
+console.log(`The value is ${a}`);
+
+// Conditions and Decisions with Logical Operators
+let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off
+
+if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
+ //Condition is true. Code in this block will run.
+ console.log("Getting a new laptop!");
+} else {
+ //Condition is true. Code in this block will run.
+ console.log("Can't afford a new laptop, yet!");
+}
+
+// Negation operator
+// Anything that goes into an if needs to evaluate to true/false. By using the ! operator you can negate the expression
+// Syntax
+// if (!condition) {
+// // runs if condition is false
+// } else {
+// // runs if condition is true
+// }
+
+// Ternary expressions
+// Syntax
+// let variable = condition ? :
+
+let firstNumber = 20;
+let secondNumber = 10;
+let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;
+console.log(biggestNumber);
+
+// Challenge
+function checkNumber(num) {
+ let result;
+ if (num > 0) {
+ result = "Positive";
+ } else if (num < 0) {
+ result = "Negative";
+ } else {
+ result = "Zero";
+ }
+ return result;
+}
+
+console.log(checkNumber(5)); // Output: Positive
+console.log(checkNumber(-3)); // Output: Negative
+console.log(checkNumber(0)); // Output: Zero
+
+function checkNumber1(num) {
+ let result = num > 0 ? "Positive" : num < 0 ? "Negative" : "Zero";
+ return result;
+}
+
+// Test
+console.log(checkNumber1(5)); // Output: Positive
+console.log(checkNumber1(-3)); // Output: Negative
+console.log(checkNumber1(0)); // Output: Zero
+
+// I prefer If..else..if (logical operator approach) as its easily understandable and readable.
diff --git a/1-js-basics/3-making-decisions/solution3.js b/1-js-basics/3-making-decisions/solution3.js
new file mode 100644
index 0000000..789901d
--- /dev/null
+++ b/1-js-basics/3-making-decisions/solution3.js
@@ -0,0 +1,19 @@
+let allStudents = ['A', 'B-', 1, 4, 5, 2, 'C', 3, 'C-'];
+let passedStudents = [];
+
+for (let i = 0; i < allStudents.length; i++) {
+ let grade = allStudents[i];
+ if (typeof grade === 'number') {
+ // First grading system (numeric grades)
+ if (grade >= 3) {
+ passedStudents.push(grade);
+ }
+ } else if (typeof grade === 'string') {
+ // Second grading system (letter grades)
+ if (grade === 'A' || grade === 'A-' || grade === 'B' || grade === 'B-' || grade === 'C') {
+ passedStudents.push(grade);
+ }
+ }
+}
+
+console.log("Students who pass:", passedStudents);
diff --git a/1-js-basics/3-making-decisions/solution3.md b/1-js-basics/3-making-decisions/solution3.md
new file mode 100644
index 0000000..70024f2
--- /dev/null
+++ b/1-js-basics/3-making-decisions/solution3.md
@@ -0,0 +1,29 @@
+# Solution for 3: Decision Making
+
+Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
+I have also attached a js file to run and check the code.
+
+Solution for the Operators
+
+```
+let allStudents = ['A', 'B-', 1, 4, 5, 2, 'C', 3, 'C-'];
+let passedStudents = [];
+
+for (let i = 0; i < allStudents.length; i++) {
+ let grade = allStudents[i];
+ if (typeof grade === 'number') {
+ // First grading system (numeric grades)
+ if (grade >= 3) {
+ passedStudents.push(grade);
+ }
+ } else if (typeof grade === 'string') {
+ // Second grading system (letter grades)
+ if (grade === 'A' || grade === 'A-' || grade === 'B' || grade === 'B-' || grade === 'C') {
+ passedStudents.push(grade);
+ }
+ }
+}
+
+console.log("Students who pass:", passedStudents);
+
+```
diff --git a/1-js-basics/4-arrays-loops/excercise4.js b/1-js-basics/4-arrays-loops/excercise4.js
new file mode 100644
index 0000000..3cd2414
--- /dev/null
+++ b/1-js-basics/4-arrays-loops/excercise4.js
@@ -0,0 +1,56 @@
+// Arrays
+// Syntax
+let myArray = [];
+
+let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"];
+iceCreamFlavors[2]; //"Vanilla"
+
+// You can leverage the index to change a value, like this:
+iceCreamFlavors[4] = "Butter Pecan"; //Changed "Rocky Road" to "Butter Pecan"
+iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Rocky Road"];
+iceCreamFlavors.length; //5
+
+// you can insert a new value at a given index like this:
+iceCreamFlavors[5] = "Cookie Dough"; //Added "Cookie Dough"
+
+// For Loop
+// Counting up to 10
+for (let i = 0; i < 10; i++) {
+ console.log(i);
+}
+/*
+'counter': A variable that is typically initialized with a number that counts the number of iterations
+'condition': Expression that uses comparison operators to cause the loop to stop when false
+'iteration-expression': Runs at the end of each iteration, typically used to change the counter value
+*/
+
+// While Loop
+//Counting up to 10
+let i = 0;
+while (i < 10) {
+ console.log(i);
+ i++;
+}
+
+// while loops only require a condition that will stop the loop when the condition becomes false
+
+for (let i = 0; i < iceCreamFlavors.length; i++) {
+ console.log(iceCreamFlavors[i]);
+} //Ends when all flavors are printed
+
+//Challenge
+
+// 1. forEach
+iceCreamFlavors.forEach(flavor => {
+ console.log(flavor);
+});
+
+// 2. for..of
+for (const flavor of iceCreamFlavors) {
+ console.log(flavor);
+}
+
+// 3. map
+iceCreamFlavors.map(flavor => {
+ console.log(flavor);
+});
diff --git a/1-js-basics/4-arrays-loops/solution4.js b/1-js-basics/4-arrays-loops/solution4.js
new file mode 100644
index 0000000..4c905e9
--- /dev/null
+++ b/1-js-basics/4-arrays-loops/solution4.js
@@ -0,0 +1,3 @@
+for (let i = 1; i <= 20; i += 3) {
+ console.log(i);
+}
diff --git a/1-js-basics/solution.md b/1-js-basics/solution.md
new file mode 100644
index 0000000..16f36f0
--- /dev/null
+++ b/1-js-basics/solution.md
@@ -0,0 +1,255 @@
+# Solution for JS-Basics
+
+1. Sub Topic 1
+
+Assignment:
+
+```
+# Solution for 1: data types
+
+Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
+I have also attached a js file to run and check the code.
+
+The question is quite simple. We need to mention the data types that we would need to complete a shopping experience.
+
+The experience can be divided into 5 different parts:
+
+## User Login detials
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `id` | String | - Unique identifier for the user. - String is used as it will be a combination of letters and numbers. |
+| `name` | String | - Name of Customer. - String is used to store names. |
+| `email` | String | - Authentication. - Combination of letters, numbers, and special characters. |
+| `isLoggedIn` | Boolean | - Check the status of a session. - A user can be logged in or not, thus Boolean. |
+
+---
+
+## Product Information
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `id` | String | - Unique identifier for each product. - String is used as it will be a combination of letters and numbers. |
+| `name` | String | - Name of Product. - String is used to store names. |
+| `price` | Double | - Represents the cost of the product. - Number is used to perform final cost calculations. |
+| `quantity` | Integer | - Number of products available. |
+| `isAvailable` | Boolean | - Checks if a product is available or not. - A product can be available or not, thus Boolean. |
+
+---
+
+## Shopping Cart
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `items` | Array | - Holds all the products added to the cart. |
+| `totalPrice` | Double | - Sum of prices will be a double. |
+| `discount` | Double | - Stores discount percentage or amount. |
+
+---
+
+## Payment Details
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `cardNumber` | String | - Allows payment processing systems to validate it. - It will be a combination of numbers and dashes. |
+| `totalPaid` | Double | - Reflects the final amount after discounts. |
+
+---
+
+## Order Summary
+| Name (Property) | Data Type | Reason |
+|------------------|-----------|----------------------------------------------------------------------------------------|
+| `orderId` | String | - Unique identifier for each order. |
+| `items` | Array | - Lists purchased products. |
+| `totalPrice` | Double | - Reflects the amount charged. |
+| `deliveryDate` | String | - Displays the estimated delivery date. |
+
+
+```
+Challenge:
+
+```
+// 1. Case Sensitivity
+let age = 1;
+let Age = 2;
+console.log(age == Age); // false
+// JavaScript is case-sensitive, meaning age and Age are treated as entirely different variables.
+
+// 2. Type Coercion
+console.log(1 == '1'); // true
+console.log(1 === '1'); // false
+// == performs type coercion, converting '1' (string) to 1 (number) before comparing.
+// === is a strict equality operator and doesn't perform type coercion, so it compares both value and type.
+
+// 3. numm vs. undefined
+console.log(null == undefined); // true
+console.log(null === undefined); // false
+
+// null and undefined are considered loosely equal (==) because they both represent "absence of value".
+// They are not strictly equal (===) because null is an object type and undefined is a primitive type.
+
+// 4. NaN is Not Equal to Itself
+console.log(NaN == NaN); // false
+console.log(NaN === NaN); // false
+// NaN (Not-a-Number) is unique in that it is not equal to anything, including itself. Use Number.isNaN(value) to check for NaN.
+
+// 5. Typeof Difference
+console.log(typeof null); // "object"
+console.log(typeof NaN); // "number"
+// typeof null returns "object" because of a historical bug in JavaScript that was never fixed for backward compatibility.
+// typeof NaN returns "number" because NaN is technically a special value of the number type.
+
+```
+2. Function Methods
+
+Assignment:
+
+```
+# Solution for 2: Functions
+
+Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
+I have also attached a js file to run and check the code.
+
+This assignment will familiarise you with the use of functions in different situations.
+
+## Function that returns something:
+
+```
+function addNumbers(a, b) {
+ return a + b;
+}
+
+// Example usage:
+const result = addNumbers(1, 2);
+console.log('Sum: ${result}'); // Output: Sum: 3
+
+
+```
+## Function that doesn't return anything
+
+```
+def greet_user(name):
+function greetUser(name) {
+ console.log('Hello, ${name}!');
+}
+
+// Example usage:
+greetUser("Prarthana"); // Output: Hello, Prarthana!
+
+
+```
+## Function with no Parameters
+
+```
+function printMessage() {
+ console.log("Dream Team Task: 04");
+}
+printMessage();
+
+```
+## Function with mix parameters
+
+```
+function introducePerson(name, age = 20, city = "Hyd") {
+ return 'My name is ${name}, I am ${age} years old, and I live in ${city}.';
+}
+const intro1 = introducePerson("Prarthana");
+console.log(intro1);
+
+```
+```
+
+Challenge:
+
+```
+Functions are standalone blocks of code that perform tasks, while methods are functions associated with an object and can access and modify the object's data.
+
+Functions are independent and can be called on their own, whereas methods are tied to objects and operate on the object's attributes.
+
+```
+
+3. Sub Topic 3
+
+Assignment 3:
+
+```
+let allStudents = ['A', 'B-', 1, 4, 5, 2, 'C', 3, 'C-'];
+let passedStudents = [];
+
+for (let i = 0; i < allStudents.length; i++) {
+ let grade = allStudents[i];
+ if (typeof grade === 'number') {
+ // First grading system (numeric grades)
+ if (grade >= 3) {
+ passedStudents.push(grade);
+ }
+ } else if (typeof grade === 'string') {
+ // Second grading system (letter grades)
+ if (grade === 'A' || grade === 'A-' || grade === 'B' || grade === 'B-' || grade === 'C') {
+ passedStudents.push(grade);
+ }
+ }
+}
+
+console.log("Students who pass:", passedStudents);
+
+```
+
+Challenge:
+
+```
+function checkNumber(num) {
+ let result;
+ if (num > 0) {
+ result = "Positive";
+ } else if (num < 0) {
+ result = "Negative";
+ } else {
+ result = "Zero";
+ }
+ return result;
+}
+
+console.log(checkNumber(5)); // Output: Positive
+console.log(checkNumber(-3)); // Output: Negative
+console.log(checkNumber(0)); // Output: Zero
+
+function checkNumber1(num) {
+ let result = num > 0 ? "Positive" : num < 0 ? "Negative" : "Zero";
+ return result;
+}
+
+// Test
+console.log(checkNumber1(5)); // Output: Positive
+console.log(checkNumber1(-3)); // Output: Negative
+console.log(checkNumber1(0)); // Output: Zero
+
+// I prefer If..else..if (logical operator approach) as its easily understandable and readable.
+
+```
+4. Sub Topic 4
+
+Assignment:
+
+```
+for (let i = 1; i <= 20; i += 3) {
+ console.log(i);
+}
+
+```
+
+Challenge:
+
+```
+// 1. forEach
+iceCreamFlavors.forEach(flavor => {
+ console.log(flavor);
+});
+
+// 2. for..of
+for (const flavor of iceCreamFlavors) {
+ console.log(flavor);
+}
+
+// 3. map
+iceCreamFlavors.map(flavor => {
+ console.log(flavor);
+});
+
+```
\ No newline at end of file
From 2202c991a8c00994760b81167ad0a2481c25d106 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sat, 23 Nov 2024 13:53:46 +0530
Subject: [PATCH 05/15] corrected the formatting of solution.md
---
1-js-basics/solution.md | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/1-js-basics/solution.md b/1-js-basics/solution.md
index 16f36f0..8f5cef9 100644
--- a/1-js-basics/solution.md
+++ b/1-js-basics/solution.md
@@ -4,7 +4,7 @@
Assignment:
-```
+
# Solution for 1: data types
Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
@@ -60,8 +60,6 @@ The experience can be divided into 5 different parts:
| `totalPrice` | Double | - Reflects the amount charged. |
| `deliveryDate` | String | - Displays the estimated delivery date. |
-
-```
Challenge:
```
@@ -107,10 +105,11 @@ Everything that I studied, that is, all the theory with the programs is metioned
I have also attached a js file to run and check the code.
This assignment will familiarise you with the use of functions in different situations.
-
+```
+```
## Function that returns something:
-```
+
function addNumbers(a, b) {
return a + b;
}
@@ -121,9 +120,8 @@ console.log('Sum: ${result}'); // Output: Sum: 3
```
-## Function that doesn't return anything
-
```
+## Function that doesn't return anything
def greet_user(name):
function greetUser(name) {
console.log('Hello, ${name}!');
@@ -131,21 +129,17 @@ function greetUser(name) {
// Example usage:
greetUser("Prarthana"); // Output: Hello, Prarthana!
-
-
```
-## Function with no Parameters
-
```
+## Function with no Parameters
function printMessage() {
console.log("Dream Team Task: 04");
}
printMessage();
```
-## Function with mix parameters
-
```
+## Function with mix parameters
function introducePerson(name, age = 20, city = "Hyd") {
return 'My name is ${name}, I am ${age} years old, and I live in ${city}.';
}
@@ -153,8 +147,6 @@ const intro1 = introducePerson("Prarthana");
console.log(intro1);
```
-```
-
Challenge:
```
From 4c795c4571a37ac399b099f74b1ac441663dec07 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sat, 23 Nov 2024 14:09:07 +0530
Subject: [PATCH 06/15] corrected the formatting of solution.md
---
1-js-basics/solution.md | 112 ++++++++++++++++++++--------------------
1 file changed, 57 insertions(+), 55 deletions(-)
diff --git a/1-js-basics/solution.md b/1-js-basics/solution.md
index 8f5cef9..f4bb538 100644
--- a/1-js-basics/solution.md
+++ b/1-js-basics/solution.md
@@ -1,65 +1,66 @@
# Solution for JS-Basics
-1. Sub Topic 1
+## Sub-Topic 1: Data Types
-Assignment:
+### Assignment:
+Everything that I studied, including the theory and programs, is mentioned in the `exercise_.js` file.
+I have also attached a JS file to run and check the code.
-# Solution for 1: data types
+### Task:
+The question is simple: mention the data types required to complete a shopping experience.
-Everything that I studied, that is, all the theory with the programs is metioned in the excercise_.js file
-I have also attached a js file to run and check the code.
+### The Experience is Divided into Five Parts:
-The question is quite simple. We need to mention the data types that we would need to complete a shopping experience.
+#### 1. User Login Details
+| Property | Data Type | Reason |
+|---------------|-----------|-----------------------------------------------------------------------------------------|
+| `id` | String | Unique identifier for the user; often a mix of letters and numbers. |
+| `name` | String | Stores the user's name. |
+| `email` | String | Authentication purposes; combination of letters, numbers, and special characters. |
+| `isLoggedIn` | Boolean | Indicates if the user is logged in. |
-The experience can be divided into 5 different parts:
+---
-## User Login detials
-| Name (Property) | Data Type | Reason |
-|------------------|-----------|----------------------------------------------------------------------------------------|
-| `id` | String | - Unique identifier for the user. - String is used as it will be a combination of letters and numbers. |
-| `name` | String | - Name of Customer. - String is used to store names. |
-| `email` | String | - Authentication. - Combination of letters, numbers, and special characters. |
-| `isLoggedIn` | Boolean | - Check the status of a session. - A user can be logged in or not, thus Boolean. |
+#### 2. Product Information
+| Property | Data Type | Reason |
+|---------------|-----------|------------------------------------------------------------------------------------------|
+| `id` | String | Unique identifier for each product. |
+| `name` | String | Name of the product. |
+| `price` | Double | Represents the cost of the product; used in calculations. |
+| `quantity` | Integer | Number of products available. |
+| `isAvailable` | Boolean | Checks if the product is in stock. |
---
-## Product Information
-| Name (Property) | Data Type | Reason |
-|------------------|-----------|----------------------------------------------------------------------------------------|
-| `id` | String | - Unique identifier for each product. - String is used as it will be a combination of letters and numbers. |
-| `name` | String | - Name of Product. - String is used to store names. |
-| `price` | Double | - Represents the cost of the product. - Number is used to perform final cost calculations. |
-| `quantity` | Integer | - Number of products available. |
-| `isAvailable` | Boolean | - Checks if a product is available or not. - A product can be available or not, thus Boolean. |
+#### 3. Shopping Cart
+| Property | Data Type | Reason |
+|---------------|-----------|------------------------------------------------------------------------------------------|
+| `items` | Array | Holds all products added to the cart. |
+| `totalPrice` | Double | Total price of the products in the cart. |
+| `discount` | Double | Stores discount percentage or amount. |
---
-## Shopping Cart
-| Name (Property) | Data Type | Reason |
-|------------------|-----------|----------------------------------------------------------------------------------------|
-| `items` | Array | - Holds all the products added to the cart. |
-| `totalPrice` | Double | - Sum of prices will be a double. |
-| `discount` | Double | - Stores discount percentage or amount. |
+#### 4. Payment Details
+| Property | Data Type | Reason |
+|---------------|-----------|------------------------------------------------------------------------------------------|
+| `cardNumber` | String | Used for payment processing; combination of numbers and dashes. |
+| `totalPaid` | Double | Reflects the final amount paid after applying discounts. |
---
-## Payment Details
-| Name (Property) | Data Type | Reason |
-|------------------|-----------|----------------------------------------------------------------------------------------|
-| `cardNumber` | String | - Allows payment processing systems to validate it. - It will be a combination of numbers and dashes. |
-| `totalPaid` | Double | - Reflects the final amount after discounts. |
+#### 5. Order Summary
+| Property | Data Type | Reason |
+|---------------|-----------|------------------------------------------------------------------------------------------|
+| `orderId` | String | Unique identifier for each order. |
+| `items` | Array | Lists the purchased products. |
+| `totalPrice` | Double | Reflects the amount charged for the order. |
+| `deliveryDate`| String | Displays the estimated delivery date. |
---
-## Order Summary
-| Name (Property) | Data Type | Reason |
-|------------------|-----------|----------------------------------------------------------------------------------------|
-| `orderId` | String | - Unique identifier for each order. |
-| `items` | Array | - Lists purchased products. |
-| `totalPrice` | Double | - Reflects the amount charged. |
-| `deliveryDate` | String | - Displays the estimated delivery date. |
-
+```
Challenge:
```
@@ -94,10 +95,11 @@ console.log(typeof NaN); // "number"
// typeof NaN returns "number" because NaN is technically a special value of the number type.
```
-2. Function Methods
+2. Sub Topic 2
Assignment:
+```
```
# Solution for 2: Functions
@@ -105,54 +107,54 @@ Everything that I studied, that is, all the theory with the programs is metioned
I have also attached a js file to run and check the code.
This assignment will familiarise you with the use of functions in different situations.
-```
-```
-## Function that returns something:
+## Function that returns something:
+```
function addNumbers(a, b) {
return a + b;
}
// Example usage:
const result = addNumbers(1, 2);
-console.log('Sum: ${result}'); // Output: Sum: 3
+console.log(`Sum: ${result}`); // Output: Sum: 3
-```
```
## Function that doesn't return anything
+
+```
def greet_user(name):
function greetUser(name) {
- console.log('Hello, ${name}!');
+ console.log(`Hello, ${name}!`);
}
// Example usage:
greetUser("Prarthana"); // Output: Hello, Prarthana!
-```
+
+
```
## Function with no Parameters
+
+```
function printMessage() {
console.log("Dream Team Task: 04");
}
printMessage();
-```
```
## Function with mix parameters
+
+```
function introducePerson(name, age = 20, city = "Hyd") {
- return 'My name is ${name}, I am ${age} years old, and I live in ${city}.';
+ return `My name is ${name}, I am ${age} years old, and I live in ${city}.`;
}
const intro1 = introducePerson("Prarthana");
console.log(intro1);
```
-Challenge:
```
-Functions are standalone blocks of code that perform tasks, while methods are functions associated with an object and can access and modify the object's data.
-
-Functions are independent and can be called on their own, whereas methods are tied to objects and operate on the object's attributes.
```
From 0ebe698c4b02a760b25b8a4a921fbdacfb51e799 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sat, 23 Nov 2024 14:12:41 +0530
Subject: [PATCH 07/15] corrected the formatting of solution.md
---
1-js-basics/solution.md | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/1-js-basics/solution.md b/1-js-basics/solution.md
index f4bb538..4df88cb 100644
--- a/1-js-basics/solution.md
+++ b/1-js-basics/solution.md
@@ -63,7 +63,6 @@ The question is simple: mention the data types required to complete a shopping e
```
Challenge:
-```
// 1. Case Sensitivity
let age = 1;
let Age = 2;
@@ -99,7 +98,6 @@ console.log(typeof NaN); // "number"
Assignment:
-```
```
# Solution for 2: Functions
@@ -110,7 +108,6 @@ This assignment will familiarise you with the use of functions in different situ
## Function that returns something:
-```
function addNumbers(a, b) {
return a + b;
}
@@ -119,11 +116,8 @@ function addNumbers(a, b) {
const result = addNumbers(1, 2);
console.log(`Sum: ${result}`); // Output: Sum: 3
-
-```
## Function that doesn't return anything
-```
def greet_user(name):
function greetUser(name) {
console.log(`Hello, ${name}!`);
@@ -132,20 +126,13 @@ function greetUser(name) {
// Example usage:
greetUser("Prarthana"); // Output: Hello, Prarthana!
-
-```
## Function with no Parameters
-```
function printMessage() {
console.log("Dream Team Task: 04");
}
printMessage();
-
-```
## Function with mix parameters
-
-```
function introducePerson(name, age = 20, city = "Hyd") {
return `My name is ${name}, I am ${age} years old, and I live in ${city}.`;
}
@@ -154,10 +141,6 @@ console.log(intro1);
```
-```
-
-```
-
3. Sub Topic 3
Assignment 3:
From 15e2f57d3c479352792edf811171c3f7323c83c8 Mon Sep 17 00:00:00 2001
From: Prarthana Desai <137315057+gitpraths@users.noreply.github.com>
Date: Sun, 24 Nov 2024 15:29:04 +0530
Subject: [PATCH 08/15] This is the solution for Part 2: Terrarium
---
2-terrarium/1-intro-to-html/images/GUI.png | Bin 0 -> 90568 bytes
2-terrarium/1-intro-to-html/solution2.css | 140 ++++++
2-terrarium/1-intro-to-html/solution2.html | 53 +++
.../terrarium-solution/images/plant1.png | Bin 0 -> 61599 bytes
.../terrarium-solution/images/plant10.png | Bin 0 -> 130214 bytes
.../terrarium-solution/images/plant11.png | Bin 0 -> 150519 bytes
.../terrarium-solution/images/plant12.png | Bin 0 -> 61701 bytes
.../terrarium-solution/images/plant13.png | Bin 0 -> 173953 bytes
.../terrarium-solution/images/plant14.png | Bin 0 -> 172204 bytes
.../terrarium-solution/images/plant2.png | Bin 0 -> 111610 bytes
.../terrarium-solution/images/plant3.png | Bin 0 -> 85025 bytes
.../terrarium-solution/images/plant4.png | Bin 0 -> 99128 bytes
.../terrarium-solution/images/plant5.png | Bin 0 -> 76143 bytes
.../terrarium-solution/images/plant6.png | Bin 0 -> 77067 bytes
.../terrarium-solution/images/plant7.png | Bin 0 -> 128576 bytes
.../terrarium-solution/images/plant8.png | Bin 0 -> 179137 bytes
.../terrarium-solution/images/plant9.png | Bin 0 -> 125374 bytes
.../terrarium-solution/index.html | 72 +++
.../terrarium-solution/script.js | 87 ++++
.../terrarium-solution/style.css | 111 +++++
2-terrarium/1-intro-to-html/theory.md | 13 +
.../terrarium-grid/images/plant1.png | Bin 0 -> 61599 bytes
.../terrarium-grid/images/plant10.png | Bin 0 -> 130214 bytes
.../terrarium-grid/images/plant11.png | Bin 0 -> 150519 bytes
.../terrarium-grid/images/plant12.png | Bin 0 -> 61701 bytes
.../terrarium-grid/images/plant13.png | Bin 0 -> 173953 bytes
.../terrarium-grid/images/plant14.png | Bin 0 -> 172204 bytes
.../terrarium-grid/images/plant2.png | Bin 0 -> 111610 bytes
.../terrarium-grid/images/plant3.png | Bin 0 -> 85025 bytes
.../terrarium-grid/images/plant4.png | Bin 0 -> 99128 bytes
.../terrarium-grid/images/plant5.png | Bin 0 -> 76143 bytes
.../terrarium-grid/images/plant6.png | Bin 0 -> 77067 bytes
.../terrarium-grid/images/plant7.png | Bin 0 -> 128576 bytes
.../terrarium-grid/images/plant8.png | Bin 0 -> 179137 bytes
.../terrarium-grid/images/plant9.png | Bin 0 -> 125374 bytes
.../terrarium-grid/indexAssignment.html | 60 +++
.../terrarium-grid/styleAssignment.css | 43 ++
.../3-intro-to-DOM-and-closures/solution.md | 23 +
...t 2024-11-23 at 3.09.56\342\200\257PM.png" | Bin 0 -> 941906 bytes
...t 2024-11-23 at 3.10.17\342\200\257PM.png" | Bin 0 -> 578555 bytes
...2024-11-23 at 3.12.56\342\200\257PM-1.png" | Bin 0 -> 892016 bytes
2-terrarium/solution.md | 439 ++++++++++++++++++
42 files changed, 1041 insertions(+)
create mode 100644 2-terrarium/1-intro-to-html/images/GUI.png
create mode 100644 2-terrarium/1-intro-to-html/solution2.css
create mode 100644 2-terrarium/1-intro-to-html/solution2.html
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant1.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant10.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant11.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant12.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant13.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant14.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant2.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant3.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant4.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant5.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant6.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant7.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant8.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/images/plant9.png
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/index.html
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/script.js
create mode 100644 2-terrarium/1-intro-to-html/terrarium-solution/style.css
create mode 100644 2-terrarium/1-intro-to-html/theory.md
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant1.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant10.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant11.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant12.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant13.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant14.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant2.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant3.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant4.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant5.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant6.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant7.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant8.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/images/plant9.png
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/indexAssignment.html
create mode 100644 2-terrarium/2-intro-to-css/terrarium-grid/styleAssignment.css
create mode 100644 2-terrarium/3-intro-to-DOM-and-closures/solution.md
create mode 100644 "2-terrarium/Screenshot 2024-11-23 at 3.09.56\342\200\257PM.png"
create mode 100644 "2-terrarium/Screenshot 2024-11-23 at 3.10.17\342\200\257PM.png"
create mode 100644 "2-terrarium/Screenshot 2024-11-23 at 3.12.56\342\200\257PM-1.png"
create mode 100644 2-terrarium/solution.md
diff --git a/2-terrarium/1-intro-to-html/images/GUI.png b/2-terrarium/1-intro-to-html/images/GUI.png
new file mode 100644
index 0000000000000000000000000000000000000000..239e0e85bc81826a32b1175f5d64564f3aa5d711
GIT binary patch
literal 90568
zcmeGEc{r4B`v;CAB`K65B&0}|2{B=eQj&xavM0;fC&n;iEkY$rDZ3f6ZzIOOhAbf?
z`#$!;*!SJ{7Vqct9KYXjJbnNFz8#IZ%{|w3-}iN$*Ll9q*ZI17_e4eE%qg~06ciL^
z6d&GKr=Xz0P*6}Wojd`2VqB-(0Q^C3dGFp6>w60K;5KjvjhDtIW(sC@W)7An>I!lc
z6t@EcGz}~+X`Y8h72yT0HhZ@xC4Hjb6aSoRqyGC%@8q5t-nL&b#3uJ{@Xwin7)xHU
z(VYZKe(3qTjFl-vAw&Cmm3-V*>9hVqUvr;)rS`tQ(Xyow*UCamE)v6+gcMqrHTG{#
zM9+JW1`%_Ebisv!dZB~Ys07(?LgQ^C__~Q7KcpNh-CNGMw+IOYe!205my&(7s-kyx
zo~w4SYpq~?A4bMKQJ{P~;M1LPyWz@+8O7d(njC{y)OWY*X}ex*(EgCNiRKzPSDi