diff --git a/Week1/LESSONPLAN.md b/Week1/AmirHossein/LESSONPLAN.md
similarity index 100%
rename from Week1/LESSONPLAN.md
rename to Week1/AmirHossein/LESSONPLAN.md
diff --git a/Week1/MAKEME.md b/Week1/AmirHossein/MAKEME.md
similarity index 100%
rename from Week1/MAKEME.md
rename to Week1/AmirHossein/MAKEME.md
diff --git a/Week1/README.md b/Week1/AmirHossein/README.md
similarity index 100%
rename from Week1/README.md
rename to Week1/AmirHossein/README.md
diff --git a/Week1/assets/hyf-github-error.png b/Week1/AmirHossein/assets/hyf-github-error.png
similarity index 100%
rename from Week1/assets/hyf-github-error.png
rename to Week1/AmirHossein/assets/hyf-github-error.png
diff --git a/Week1/assets/hyf-github.png b/Week1/AmirHossein/assets/hyf-github.png
similarity index 100%
rename from Week1/assets/hyf-github.png
rename to Week1/AmirHossein/assets/hyf-github.png
diff --git a/Week1/AmirHossein/homework/js-exercises/dogGallery.js b/Week1/AmirHossein/homework/js-exercises/dogGallery.js
new file mode 100644
index 000000000..f1f888259
--- /dev/null
+++ b/Week1/AmirHossein/homework/js-exercises/dogGallery.js
@@ -0,0 +1,59 @@
+const XMLBtn = document.getElementById('btn1');
+const AxiosBtn = document.getElementById('btn2');
+
+function xhrMethod() {
+ const xhr = new XMLHttpRequest();
+ const li = document.createElement('li');
+ const image = document.createElement('img');
+ const ul = document.getElementById('list');
+ const url = 'https://dog.ceo/api/breeds/image/random'
+ xhr.open('GET', url);
+ xhr.send();
+ xhr.onreadystatechange = processRequest;
+
+ ul.appendChild(li.appendChild(image))
+
+ function processRequest(e) {
+ if(xhr.readyState == 4 && xhr.status == 200) {
+ let response = JSON.parse(xhr.responseText);
+ image.src = response.message;
+ image.style.width = '300px'
+ image.style.height = '300px'
+ image.style.margin = '5px'
+
+ };
+ };
+ xhr.onerror = function() {
+ if (xhr.status != 200) {
+ alert (`Error ${xhr.status}: ${xhr.statusText}`);
+ };
+ };
+
+ };
+
+XMLBtn.addEventListener('click', xhrMethod);
+
+
+
+function axiosMethod() {
+ const li = document.createElement('li');
+ const image = document.createElement('img');
+ const ul = document.getElementById('list');
+ ul.appendChild(li.appendChild(image))
+ axios
+ .get('https://dog.ceo/api/breeds/image/random')
+ .then(function(response) {
+
+ image.src = response.data.message;
+ image.style.width = '300px'
+ image.style.height = '300px'
+ image.style.margin = '5px'
+
+ })
+ .catch(function(error) {
+ console.log(error)
+ });
+}
+
+
+AxiosBtn.addEventListener('click', axiosMethod);
diff --git a/Week1/AmirHossein/homework/js-exercises/getandomUser.js b/Week1/AmirHossein/homework/js-exercises/getandomUser.js
new file mode 100644
index 000000000..b365902ad
--- /dev/null
+++ b/Week1/AmirHossein/homework/js-exercises/getandomUser.js
@@ -0,0 +1,40 @@
+function xhrMethod() {
+const xhr = new XMLHttpRequest();
+const url = 'https://www.randomuser.me/api'
+
+xhr.open('GET', url);
+xhr.send();
+
+xhr.onreadystatechange = processRequest;
+
+function processRequest(e) {
+ if(xhr.readyState == 4 && xhr.status == 200) {
+ let respons = JSON.parse(xhr.responseText);
+ console.log(respons)
+ }
+}
+
+xhr.onerror = function() {
+ if (xhr.status != 200) {
+ alert (`Error ${xhr.status}: ${xhr.statusText}`)
+ }
+}
+
+}
+
+
+const axios = require('axios');
+function axiosMethod() {
+ axios
+ .get('https://www.randomuser.me/api')
+ .then(function(response) {
+ console.log(response.data);
+ })
+ .catch(function(error) {
+ console.log(error)
+ });
+}
+
+
+axiosMethod();
+xhrMethod();
\ No newline at end of file
diff --git a/Week1/AmirHossein/homework/js-exercises/humor.js b/Week1/AmirHossein/homework/js-exercises/humor.js
new file mode 100644
index 000000000..55857e01c
--- /dev/null
+++ b/Week1/AmirHossein/homework/js-exercises/humor.js
@@ -0,0 +1,42 @@
+
+
+function xhrMethod() {
+ const xhr = new XMLHttpRequest();
+ const url = 'https://xkcd.now.sh/?comic=latest'
+ xhr.open('GET', url);
+ xhr.send();
+ xhr.onreadystatechange = processRequest;
+ function processRequest(e) {
+ if(xhr.readyState == 4 && xhr.status == 200) {
+ let response = JSON.parse(xhr.responseText);
+ document.getElementsByTagName('img').src = response.img;
+ console.log(response);
+ };
+ };
+ xhr.onerror = function() {
+ if (xhr.status != 200) {
+ alert (`Error ${xhr.status}: ${xhr.statusText}`);
+ };
+ };
+ };
+
+ xhrMethod();
+
+
+
+
+
+function axiosMethod() {
+ axios
+ .get('https://xkcd.now.sh/?comic=latest')
+ .then(function(response) {
+ console.log(response.data);
+ document.getElementsByTagName('img').src = response.data.img;
+ })
+ .catch(function(error) {
+ console.log(error)
+ });
+}
+
+
+axiosMethod();
diff --git a/Week1/AmirHossein/homework/js-exercises/index.html b/Week1/AmirHossein/homework/js-exercises/index.html
new file mode 100644
index 000000000..7337b551a
--- /dev/null
+++ b/Week1/AmirHossein/homework/js-exercises/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week1/traversy_ajax_crash/README.md b/Week1/AmirHossein/traversy_ajax_crash/README.md
similarity index 100%
rename from Week1/traversy_ajax_crash/README.md
rename to Week1/AmirHossein/traversy_ajax_crash/README.md
diff --git a/Week1/traversy_ajax_crash/ajax1.html b/Week1/AmirHossein/traversy_ajax_crash/ajax1.html
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax1.html
rename to Week1/AmirHossein/traversy_ajax_crash/ajax1.html
diff --git a/Week1/traversy_ajax_crash/ajax1.js b/Week1/AmirHossein/traversy_ajax_crash/ajax1.js
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax1.js
rename to Week1/AmirHossein/traversy_ajax_crash/ajax1.js
diff --git a/Week1/traversy_ajax_crash/ajax2.html b/Week1/AmirHossein/traversy_ajax_crash/ajax2.html
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax2.html
rename to Week1/AmirHossein/traversy_ajax_crash/ajax2.html
diff --git a/Week1/traversy_ajax_crash/ajax2.js b/Week1/AmirHossein/traversy_ajax_crash/ajax2.js
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax2.js
rename to Week1/AmirHossein/traversy_ajax_crash/ajax2.js
diff --git a/Week1/traversy_ajax_crash/ajax3.html b/Week1/AmirHossein/traversy_ajax_crash/ajax3.html
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax3.html
rename to Week1/AmirHossein/traversy_ajax_crash/ajax3.html
diff --git a/Week1/traversy_ajax_crash/ajax3.js b/Week1/AmirHossein/traversy_ajax_crash/ajax3.js
similarity index 100%
rename from Week1/traversy_ajax_crash/ajax3.js
rename to Week1/AmirHossein/traversy_ajax_crash/ajax3.js
diff --git a/Week1/traversy_ajax_crash/sample.txt b/Week1/AmirHossein/traversy_ajax_crash/sample.txt
similarity index 100%
rename from Week1/traversy_ajax_crash/sample.txt
rename to Week1/AmirHossein/traversy_ajax_crash/sample.txt
diff --git a/Week1/traversy_ajax_crash/user.json b/Week1/AmirHossein/traversy_ajax_crash/user.json
similarity index 100%
rename from Week1/traversy_ajax_crash/user.json
rename to Week1/AmirHossein/traversy_ajax_crash/user.json
diff --git a/Week1/traversy_ajax_crash/users.json b/Week1/AmirHossein/traversy_ajax_crash/users.json
similarity index 100%
rename from Week1/traversy_ajax_crash/users.json
rename to Week1/AmirHossein/traversy_ajax_crash/users.json
diff --git a/Week1/homework/code along/app.js b/Week1/homework/code along/app.js
new file mode 100644
index 000000000..c8a149a37
--- /dev/null
+++ b/Week1/homework/code along/app.js
@@ -0,0 +1,40 @@
+const number = document.getElementById('number');
+const fact = document.getElementById('fact');
+
+number.addEventListener('input', addText);
+
+function addText(){
+ const num = number.value;
+ const URL = `http://numbersapi.com/${num}`;
+
+ const xhr = new XMLHttpRequest();
+ xhr.open('GET', URL, true);
+ xhr.send();
+
+ // 4. This will be called after the response is received
+ xhr.onload = function() {
+ if (xhr.status != 200 && xhr.status != 200) {
+ // analyze HTTP status of the response
+ console.log(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found
+ } else {
+ // show the result
+ let response = xhr.responseText;
+ fact.style.display = 'block';
+ fact.textContent = response;
+ }
+ };
+
+ xhr.onprogress = function(event) {
+ if (event.lengthComputable) {
+ console.log(`Received ${event.loaded} of ${event.total} bytes`);
+ } else {
+ console.log(`Received ${event.loaded} bytes`); // no Content-Length
+ }
+ };
+
+ xhr.onerror = function() {
+ console.log('Request failed');
+ };
+
+
+}
\ No newline at end of file
diff --git a/Week1/homework/code along/index.html b/Week1/homework/code along/index.html
new file mode 100644
index 000000000..1781ac32b
--- /dev/null
+++ b/Week1/homework/code along/index.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
Number Facts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week1/homework/masoud/js-exercises/Ex1-WhoDoWeHaveHere.js b/Week1/homework/masoud/js-exercises/Ex1-WhoDoWeHaveHere.js
new file mode 100644
index 000000000..394f0d9cd
--- /dev/null
+++ b/Week1/homework/masoud/js-exercises/Ex1-WhoDoWeHaveHere.js
@@ -0,0 +1,51 @@
+const URL = 'https://www.randomuser.me/api';
+
+function requestWithXHR(URL){
+const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
+const xhr = new XMLHttpRequest();
+xhr.open('GET', URL, true);
+xhr.send();
+
+// 4. This will be called after the response is received
+xhr.onload = function() {
+ if (xhr.status != 200 && xhr.status != 200) { // analyze HTTP status of the response
+ console.log(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found
+ } else { // show the result
+ const response = JSON.parse(xhr.responseText);
+ console.log(response.results[0].gender);
+ }
+};
+
+xhr.onprogress = function(event) {
+ if (event.lengthComputable) {
+ console.log(`Received ${event.loaded} of ${event.total} bytes`);
+ } else {
+ console.log(`Received ${event.loaded} bytes`); // no Content-Length
+ }
+
+};
+
+xhr.onerror = function() {
+ console.log("Request failed");
+};
+};
+
+function requestWithAxios(URL){
+ const axios = require('axios').default;
+ axios.get(URL)
+ .then(function (response) {
+ // handle success
+ console.log(response.data.results[0].gender);
+ })
+ .catch(function (error) {
+ // handle error
+ console.log("Request failed");
+ })
+ .then(function () {
+ // always executed
+ });
+
+};
+
+requestWithXHR(URL);
+requestWithAxios(URL);
\ No newline at end of file
diff --git a/Week1/homework/masoud/js-exercises/Ex2-ProgrammerHumor.js b/Week1/homework/masoud/js-exercises/Ex2-ProgrammerHumor.js
new file mode 100644
index 000000000..10bbdb92f
--- /dev/null
+++ b/Week1/homework/masoud/js-exercises/Ex2-ProgrammerHumor.js
@@ -0,0 +1,53 @@
+const URL = 'https://xkcd.now.sh/?comic=latest';
+const image1 = document.getElementById('image1');
+const image2 = document.getElementById('image2');
+
+function requestWithXHR(URL){
+const xhr = new XMLHttpRequest();
+xhr.open('GET', URL, true);
+xhr.send();
+
+// 4. This will be called after the response is received
+xhr.onload = function() {
+ if (xhr.status != 200 && xhr.status != 200) { // analyze HTTP status of the response
+ console.log(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found
+ } else { // show the result
+ const response = JSON.parse(xhr.responseText);
+ console.log(response);
+ image1.src = response.img;
+ }
+};
+
+xhr.onprogress = function(event) {
+ if (event.lengthComputable) {
+ console.log(`Received ${event.loaded} of ${event.total} bytes`);
+ } else {
+ console.log(`Received ${event.loaded} bytes`); // no Content-Length
+ }
+
+};
+
+xhr.onerror = function() {
+ console.log("Request failed");
+};
+};
+
+function requestWithAxios(URL){
+ axios.get(URL)
+ .then(function (response) {
+ // handle success
+ console.log(response.data);
+ image2.src = response.data.img;
+ })
+ .catch(function (error) {
+ // handle error
+ console.log("Request failed");
+ })
+ .then(function () {
+ // always executed
+ });
+
+};
+
+requestWithXHR(URL);
+requestWithAxios(URL);
\ No newline at end of file
diff --git a/Week1/homework/masoud/js-exercises/Ex2.html b/Week1/homework/masoud/js-exercises/Ex2.html
new file mode 100644
index 000000000..a204a0823
--- /dev/null
+++ b/Week1/homework/masoud/js-exercises/Ex2.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week1/homework/masoud/js-exercises/Ex3-DogPhotoGallery.js b/Week1/homework/masoud/js-exercises/Ex3-DogPhotoGallery.js
new file mode 100644
index 000000000..e4277b142
--- /dev/null
+++ b/Week1/homework/masoud/js-exercises/Ex3-DogPhotoGallery.js
@@ -0,0 +1,70 @@
+const URL = 'https://dog.ceo/api/breeds/image/random';
+const xmlBtn = document.getElementById('xmlBTN');
+const axiosBtn = document.getElementById('axiosBTN');
+const ulElm = document.getElementById('list');
+const imgSize = '300px';
+ulElm.style.display = 'flex';
+ulElm.style.flexWrap = 'wrap';
+
+xmlBtn.addEventListener('click',requestWithXHR);
+axiosBtn.addEventListener('click',requestWithAxios);
+
+
+function requestWithXHR() {
+ const xhr = new XMLHttpRequest();
+ xhr.open('GET', URL, true);
+ xhr.send();
+
+ // 4. This will be called after the response is received
+ xhr.onload = function() {
+ if (xhr.status != 200 && xhr.status != 200) {
+ // analyze HTTP status of the response
+ console.log(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found
+ } else {
+ // show the result
+ const response = JSON.parse(xhr.responseText);
+ const liElm = document.createElement('li');
+ const imgElm = document.createElement('img');
+ imgElm.src = response.message;
+ imgElm.style.height = imgSize;
+ liElm.style.listStyle = 'none';
+ liElm.appendChild(imgElm);
+ ulElm.appendChild(liElm);
+ }
+ };
+
+ xhr.onprogress = function(event) {
+ if (event.lengthComputable) {
+ console.log(`Received ${event.loaded} of ${event.total} bytes`);
+ } else {
+ console.log(`Received ${event.loaded} bytes`); // no Content-Length
+ }
+ };
+
+ xhr.onerror = function() {
+ console.log('Request failed');
+ };
+}
+
+
+
+function requestWithAxios(){
+ axios.get(URL)
+ .then(function (response) {
+ // handle success
+ const liElm = document.createElement('li');
+ const imgElm = document.createElement('img');
+ imgElm.src = response.data.message;
+ imgElm.style.height = imgSize;
+ liElm.style.listStyle = 'none';
+ liElm.appendChild(imgElm);
+ ulElm.appendChild(liElm);
+ })
+ .catch(function (error) {
+ // handle error
+ console.log("Request failed");
+ })
+ .then(function () {
+ // always executed
+ });
+};
diff --git a/Week1/homework/masoud/js-exercises/Ex3.html b/Week1/homework/masoud/js-exercises/Ex3.html
new file mode 100644
index 000000000..54bdb6666
--- /dev/null
+++ b/Week1/homework/masoud/js-exercises/Ex3.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week2/LESSONPLAN.md b/Week2/AmirHossein/LESSONPLAN.md
similarity index 100%
rename from Week2/LESSONPLAN.md
rename to Week2/AmirHossein/LESSONPLAN.md
diff --git a/Week2/MAKEME.md b/Week2/AmirHossein/MAKEME.md
similarity index 100%
rename from Week2/MAKEME.md
rename to Week2/AmirHossein/MAKEME.md
diff --git a/Week2/README.md b/Week2/AmirHossein/README.md
similarity index 100%
rename from Week2/README.md
rename to Week2/AmirHossein/README.md
diff --git a/Week2/assets/week2.png b/Week2/AmirHossein/assets/week2.png
old mode 100755
new mode 100644
similarity index 100%
rename from Week2/assets/week2.png
rename to Week2/AmirHossein/assets/week2.png
diff --git a/Week2/AmirHossein/homework/js-exercises/doubleDigit.js b/Week2/AmirHossein/homework/js-exercises/doubleDigit.js
new file mode 100644
index 000000000..2a975f4f2
--- /dev/null
+++ b/Week2/AmirHossein/homework/js-exercises/doubleDigit.js
@@ -0,0 +1,11 @@
+function checkDoubleDigits(number) {
+ return new Promise((resolve, reject) => {
+ if(number > 10) {
+ resolve('The number is bigger than 10!');
+ } else {
+ reject('Error! The number is smaller than 10');
+ };
+ });
+
+}
+checkDoubleDigits(30).then(response => console.log(response));
\ No newline at end of file
diff --git a/Week2/AmirHossein/homework/js-exercises/johnWho.js b/Week2/AmirHossein/homework/js-exercises/johnWho.js
new file mode 100644
index 000000000..90d5ca82a
--- /dev/null
+++ b/Week2/AmirHossein/homework/js-exercises/johnWho.js
@@ -0,0 +1,21 @@
+const getAnonName = (firstName) => {
+ return new Promise((resolve, reject) => {
+ const fullName = `${firstName} Doe`;
+ if(firstName) {
+ resolve(fullName);
+ } else {
+ reject(new Error("You didn't pass in a first name!"));
+ }
+ });
+};
+ getAnonName('Masood')
+ .then(response => {
+ console.log(response)
+ })
+ .catch(error => {
+ console.log(error)
+ })
+
+
+
+
diff --git a/Week2/AmirHossein/homework/pokemon-app/.vscode/settings.json b/Week2/AmirHossein/homework/pokemon-app/.vscode/settings.json
new file mode 100644
index 000000000..6f3a2913e
--- /dev/null
+++ b/Week2/AmirHossein/homework/pokemon-app/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "liveServer.settings.port": 5501
+}
\ No newline at end of file
diff --git a/Week2/AmirHossein/homework/pokemon-app/index.html b/Week2/AmirHossein/homework/pokemon-app/index.html
new file mode 100644
index 000000000..b4614f847
--- /dev/null
+++ b/Week2/AmirHossein/homework/pokemon-app/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week2/AmirHossein/homework/pokemon-app/script.js b/Week2/AmirHossein/homework/pokemon-app/script.js
new file mode 100644
index 000000000..fc5382c91
--- /dev/null
+++ b/Week2/AmirHossein/homework/pokemon-app/script.js
@@ -0,0 +1,49 @@
+window.onload = main;
+function main() {
+ const url = 'https://pokeapi.co/api/v2/pokemon/?limit=20&offset=20'
+ const btn = document.createElement('button');
+ btn.innerHTML = 'Get Pokemon!'
+ document.body.appendChild(btn);
+ const select = document.createElement('select');
+ document.body.appendChild(select);
+ btn.addEventListener('click', () => [
+ fetchData(url, select)
+ ]);
+}
+
+function addPokemonToDOM(data, select) {
+ data.results.forEach(element => {
+ const option = document.createElement('option');
+ option.innerHTML = element.name;
+ option.value = element.name;
+ select.appendChild(option);
+
+ });
+ let image = document.createElement('img');
+ select.addEventListener('input', () => {
+ data.results.forEach(element => {
+ if(select.value == element.name) {
+ const pokUrl = element.url;
+ image.src = ''
+ fetch(pokUrl)
+ .then(response => response.json())
+ .then(data => {
+ image.src = data.sprites.front_default;
+ document.body.appendChild(image);
+ })
+ .catch(error => console.log(error))
+ }
+
+
+ })
+ } )
+}
+
+function fetchData(url, select) {
+ fetch(url)
+ .then(res => res.json())
+ .then(data => addPokemonToDOM(data, select))
+ .catch(error => console.log(error));
+
+}
+
diff --git a/Week2/traversy_async_crash/README.md b/Week2/AmirHossein/traversy_async_crash/README.md
similarity index 100%
rename from Week2/traversy_async_crash/README.md
rename to Week2/AmirHossein/traversy_async_crash/README.md
diff --git a/Week2/traversy_async_crash/callbacks.js b/Week2/AmirHossein/traversy_async_crash/callbacks.js
similarity index 100%
rename from Week2/traversy_async_crash/callbacks.js
rename to Week2/AmirHossein/traversy_async_crash/callbacks.js
diff --git a/Week2/traversy_async_crash/index.html b/Week2/AmirHossein/traversy_async_crash/index.html
similarity index 100%
rename from Week2/traversy_async_crash/index.html
rename to Week2/AmirHossein/traversy_async_crash/index.html
diff --git a/Week2/traversy_async_crash/promises.js b/Week2/AmirHossein/traversy_async_crash/promises.js
similarity index 100%
rename from Week2/traversy_async_crash/promises.js
rename to Week2/AmirHossein/traversy_async_crash/promises.js
diff --git a/Week2/homework/masoud/js-exercises/Ex1-johnWho.js b/Week2/homework/masoud/js-exercises/Ex1-johnWho.js
new file mode 100644
index 000000000..fbf5e09c6
--- /dev/null
+++ b/Week2/homework/masoud/js-exercises/Ex1-johnWho.js
@@ -0,0 +1,17 @@
+const getAnonName = firstName => {
+ return new Promise((resolves, rejects) => {
+ if (firstName) {
+ resolves(`${firstName} S`);
+ } else {
+ rejects(new Error("You didn't pass in a first name!"));
+ }
+ })
+};
+
+const firstName = 'Mas';
+getAnonName(firstName).then(response => {
+ console.log(response);
+})
+ .catch(error => {
+ console.log(error);
+ })
\ No newline at end of file
diff --git a/Week2/homework/masoud/js-exercises/Ex2-isItBiggerThan10.js b/Week2/homework/masoud/js-exercises/Ex2-isItBiggerThan10.js
new file mode 100644
index 000000000..4767e1e12
--- /dev/null
+++ b/Week2/homework/masoud/js-exercises/Ex2-isItBiggerThan10.js
@@ -0,0 +1,18 @@
+const checkDoubleDigits = number => {
+ return new Promise((resolves, rejects) => {
+ if (number >= 10) {
+ resolves('The number is bigger than or equal 10!');
+ } else {
+ rejects(new Error('Error! The number is smaller than 10...'));
+ }
+ })
+};
+
+const number = 10;
+
+checkDoubleDigits(number).then(response => {
+ console.log(response);
+})
+ .catch(error => {
+ console.log(error);
+ })
\ No newline at end of file
diff --git a/Week2/homework/masoud/pokemon-app/index.html b/Week2/homework/masoud/pokemon-app/index.html
new file mode 100644
index 000000000..8ec3aff7a
--- /dev/null
+++ b/Week2/homework/masoud/pokemon-app/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week2/homework/masoud/pokemon-app/script.js b/Week2/homework/masoud/pokemon-app/script.js
new file mode 100644
index 000000000..4bbff0829
--- /dev/null
+++ b/Week2/homework/masoud/pokemon-app/script.js
@@ -0,0 +1,71 @@
+//Calling main function after window load
+window.onload = main;
+
+//Define main function
+function main() {
+ //Define button element
+ const btn = document.createElement('button');
+ btn.textContent = 'start';
+ btn.style.display = 'block';
+ document.body.appendChild(btn);
+
+ // Define select element
+ const select = document.createElement('select');
+ select.style.display = 'block';
+ document.body.appendChild(select);
+
+ //Define image
+ const img = document.createElement('img');
+
+ //When button is clicked
+ btn.addEventListener('click', () => {
+ const url = `https://pokeapi.co/api/v2/pokemon/?limit=20&offset=20`;//Define API URL
+ fetchData(url, select, img); // Get data from API and insert to DOM
+ });
+}
+
+// Add data to DOM
+function addPokemonToDOM(data, select, img) {
+
+ //Add list to select tag
+ data.results.forEach(element => {
+ const option = document.createElement('option');
+ option.value = element.name;
+ option.textContent = element.name;
+ select.appendChild(option);
+ });
+
+ //User selection
+ select.addEventListener('input', () => {
+ data.results.forEach(element => {
+ if (select.value == element.name) {
+ const imgURL = element.url;
+ fetch(imgURL) // second API request to get image
+ .then(function (response) {
+ return response.json();
+ })
+ .then(function (myJson) {
+ img.src = myJson.sprites.back_default;
+ document.body.appendChild(img);
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+ }
+ })
+ })
+};
+
+//Get data from API by using fetch API
+function fetchData(url, select, img) {
+ fetch(url) // First getting data
+ .then(function (response) {
+ return response.json();
+ })
+ .then(function (myJson) {
+ addPokemonToDOM(myJson, select, img); // Add data to DOM
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
+};
\ No newline at end of file
diff --git a/Week3/LESSONPLAN.md b/Week3/AmirHossein/LESSONPLAN.md
similarity index 100%
rename from Week3/LESSONPLAN.md
rename to Week3/AmirHossein/LESSONPLAN.md
diff --git a/Week3/MAKEME.md b/Week3/AmirHossein/MAKEME.md
similarity index 100%
rename from Week3/MAKEME.md
rename to Week3/AmirHossein/MAKEME.md
diff --git a/Week3/README.md b/Week3/AmirHossein/README.md
similarity index 100%
rename from Week3/README.md
rename to Week3/AmirHossein/README.md
diff --git a/Week3/assets/JavaScript3_classes.png b/Week3/AmirHossein/assets/JavaScript3_classes.png
similarity index 100%
rename from Week3/assets/JavaScript3_classes.png
rename to Week3/AmirHossein/assets/JavaScript3_classes.png
diff --git a/Week3/traversy_fetch_api/app.js b/Week3/AmirHossein/traversy_fetch_api/app.js
similarity index 100%
rename from Week3/traversy_fetch_api/app.js
rename to Week3/AmirHossein/traversy_fetch_api/app.js
diff --git a/Week3/traversy_fetch_api/index.html b/Week3/AmirHossein/traversy_fetch_api/index.html
similarity index 100%
rename from Week3/traversy_fetch_api/index.html
rename to Week3/AmirHossein/traversy_fetch_api/index.html
diff --git a/Week3/traversy_fetch_api/sample.txt b/Week3/AmirHossein/traversy_fetch_api/sample.txt
similarity index 100%
rename from Week3/traversy_fetch_api/sample.txt
rename to Week3/AmirHossein/traversy_fetch_api/sample.txt
diff --git a/Week3/traversy_fetch_api/users.json b/Week3/AmirHossein/traversy_fetch_api/users.json
similarity index 100%
rename from Week3/traversy_fetch_api/users.json
rename to Week3/AmirHossein/traversy_fetch_api/users.json
diff --git a/Week3/traversy_oop_crash/1_basics_literals.js b/Week3/AmirHossein/traversy_oop_crash/1_basics_literals.js
similarity index 100%
rename from Week3/traversy_oop_crash/1_basics_literals.js
rename to Week3/AmirHossein/traversy_oop_crash/1_basics_literals.js
diff --git a/Week3/traversy_oop_crash/2_constructor.js b/Week3/AmirHossein/traversy_oop_crash/2_constructor.js
similarity index 100%
rename from Week3/traversy_oop_crash/2_constructor.js
rename to Week3/AmirHossein/traversy_oop_crash/2_constructor.js
diff --git a/Week3/traversy_oop_crash/3_prototypes.js b/Week3/AmirHossein/traversy_oop_crash/3_prototypes.js
similarity index 100%
rename from Week3/traversy_oop_crash/3_prototypes.js
rename to Week3/AmirHossein/traversy_oop_crash/3_prototypes.js
diff --git a/Week3/traversy_oop_crash/4_inheritance.js b/Week3/AmirHossein/traversy_oop_crash/4_inheritance.js
similarity index 100%
rename from Week3/traversy_oop_crash/4_inheritance.js
rename to Week3/AmirHossein/traversy_oop_crash/4_inheritance.js
diff --git a/Week3/traversy_oop_crash/5_object_create.js b/Week3/AmirHossein/traversy_oop_crash/5_object_create.js
similarity index 100%
rename from Week3/traversy_oop_crash/5_object_create.js
rename to Week3/AmirHossein/traversy_oop_crash/5_object_create.js
diff --git a/Week3/traversy_oop_crash/6_classes.js b/Week3/AmirHossein/traversy_oop_crash/6_classes.js
similarity index 100%
rename from Week3/traversy_oop_crash/6_classes.js
rename to Week3/AmirHossein/traversy_oop_crash/6_classes.js
diff --git a/Week3/traversy_oop_crash/7_subclasses.js b/Week3/AmirHossein/traversy_oop_crash/7_subclasses.js
similarity index 100%
rename from Week3/traversy_oop_crash/7_subclasses.js
rename to Week3/AmirHossein/traversy_oop_crash/7_subclasses.js
diff --git a/Week3/traversy_oop_crash/README.md b/Week3/AmirHossein/traversy_oop_crash/README.md
similarity index 100%
rename from Week3/traversy_oop_crash/README.md
rename to Week3/AmirHossein/traversy_oop_crash/README.md
diff --git a/Week3/traversy_oop_crash/assets/2_constructor.png b/Week3/AmirHossein/traversy_oop_crash/assets/2_constructor.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/2_constructor.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/2_constructor.png
diff --git a/Week3/traversy_oop_crash/assets/3_prototypes.png b/Week3/AmirHossein/traversy_oop_crash/assets/3_prototypes.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/3_prototypes.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/3_prototypes.png
diff --git a/Week3/traversy_oop_crash/assets/4_inheritance.png b/Week3/AmirHossein/traversy_oop_crash/assets/4_inheritance.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/4_inheritance.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/4_inheritance.png
diff --git a/Week3/traversy_oop_crash/assets/6_classes.png b/Week3/AmirHossein/traversy_oop_crash/assets/6_classes.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/6_classes.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/6_classes.png
diff --git a/Week3/traversy_oop_crash/assets/7_subclasses.png b/Week3/AmirHossein/traversy_oop_crash/assets/7_subclasses.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/7_subclasses.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/7_subclasses.png
diff --git a/Week3/traversy_oop_crash/assets/function_proto.png b/Week3/AmirHossein/traversy_oop_crash/assets/function_proto.png
similarity index 100%
rename from Week3/traversy_oop_crash/assets/function_proto.png
rename to Week3/AmirHossein/traversy_oop_crash/assets/function_proto.png
diff --git a/Week3/traversy_oop_crash/index-all.html b/Week3/AmirHossein/traversy_oop_crash/index-all.html
similarity index 100%
rename from Week3/traversy_oop_crash/index-all.html
rename to Week3/AmirHossein/traversy_oop_crash/index-all.html
diff --git a/Week3/traversy_oop_crash/index-all.js b/Week3/AmirHossein/traversy_oop_crash/index-all.js
similarity index 100%
rename from Week3/traversy_oop_crash/index-all.js
rename to Week3/AmirHossein/traversy_oop_crash/index-all.js
diff --git a/Week3/traversy_oop_crash/index.html b/Week3/AmirHossein/traversy_oop_crash/index.html
similarity index 100%
rename from Week3/traversy_oop_crash/index.html
rename to Week3/AmirHossein/traversy_oop_crash/index.html
diff --git a/Week3/homework/masoud/js-exercise/Ex1/Ex1-promiseMeToWait.js b/Week3/homework/masoud/js-exercise/Ex1/Ex1-promiseMeToWait.js
new file mode 100644
index 000000000..6c93d1916
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex1/Ex1-promiseMeToWait.js
@@ -0,0 +1,43 @@
+// Exercise A
+async function getData(url) {
+ try {
+ const number = await fetch(url);
+ return await number.json();
+ }
+ catch (error) {
+ console.log('error');
+ }
+}
+
+getData('https://randomfox.ca/floof/').then(res => {
+ console.log(res.image);
+})
+ .catch(error => {
+ console.log('error');
+ })
+
+
+// Exercise B
+const arrayOfWords = ['cucumber', 'tomatos', 'avocado'];
+
+async function makeAllCaps(array) {
+
+ try {
+ let capsArray = await array.map(word => {
+ if (typeof word === 'string') {
+ return word.toUpperCase();
+ } else {
+ throw 'Error: Not all items in the array are strings!';
+ }
+ })
+ return capsArray;
+ }
+
+ catch (error) {
+ return error;
+ }
+}
+
+makeAllCaps(arrayOfWords).then(res => {
+ console.log(res)
+});
\ No newline at end of file
diff --git a/Week3/homework/masoud/js-exercise/Ex1/index.html b/Week3/homework/masoud/js-exercise/Ex1/index.html
new file mode 100644
index 000000000..3d699ae66
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex1/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week3/homework/masoud/js-exercise/Ex2/Ex2-classify.js b/Week3/homework/masoud/js-exercise/Ex2/Ex2-classify.js
new file mode 100644
index 000000000..08b110db1
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex2/Ex2-classify.js
@@ -0,0 +1,25 @@
+class Person {
+ constructor(firstName, age, location, childerenNum, job, favourite) {
+ this.firstName = firstName;
+ this.age = age;
+ this.location = location;
+ this.childerenNum = childerenNum;
+ this.job = job;
+ this.favourite = favourite;
+ }
+}
+
+class Animal {
+ constructor(species, name, age, color, eat, help, owner) {
+ this.species = species;
+ this.name = name;
+ this.age = age;
+ this.color = color;
+ this.eat = eat;
+ this.help = help;
+ this.owner = owner;
+ }
+}
+
+const Adbulkareem = new Person('Abdulkareem', 35, 'Riyadh', 3, 'construction worker', ['eat dates', 'smoke water pipe']);
+const Adel = new Animal('horse', 'Adel', 15, 'brown', 'grass', 'transport materials', Adbulkareem);
\ No newline at end of file
diff --git a/Week3/homework/masoud/js-exercise/Ex3-triviaApp/app.js b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/app.js
new file mode 100644
index 000000000..a413399e3
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/app.js
@@ -0,0 +1,64 @@
+window.onload = main;
+
+function main() {
+ const url = 'https://opentdb.com/api.php?amount=5';
+ fetchData(url).then(response => {
+ AddToDOM(response);
+ })
+ .catch(error => { console.log(error) });
+};
+
+function AddToDOM(Data) {
+ const trivia = Data.results;
+ const questions = document.querySelector('.questions');
+ const div = document.createElement('div');
+ const answers = document.getElementsByClassName('answer');
+
+ trivia.forEach(array => {
+ const question = document.createElement('p');
+ const answer = document.createElement('p');
+
+ question.textContent = decodeHTML(array.question);
+ question.classList.add('question');
+ answer.textContent = decodeHTML(array.correct_answer);
+ answer.style.display = 'none';
+ answer.classList.add('answer');
+
+ div.appendChild(question);
+ div.appendChild(answer);
+ questions.appendChild(div);
+
+ close();
+ function open() {
+ answer.style.display = 'block';
+ question.removeEventListener('click', open);
+ question.addEventListener('click', close);
+ };
+ function close() {
+ answer.style.display = 'none';
+ question.removeEventListener('click', close);
+ question.addEventListener('click', open);
+ };
+
+ document.addEventListener('click', function (event) {
+ const isClickInsideElement = div.contains(event.target);
+ if (!isClickInsideElement) {
+ Array.from(answers).forEach(element => {
+ element.style.display = 'none';
+ close();
+ });
+ };
+ });
+ });
+};
+
+function decodeHTML(html) {
+ const txt = document.createElement('textarea');
+ txt.innerHTML = html;
+ return txt.value;
+};
+
+async function fetchData(url) {
+ const Data = await fetch(url);
+ return await Data.json();
+};
\ No newline at end of file
diff --git a/Week3/homework/masoud/js-exercise/Ex3-triviaApp/index.html b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/index.html
new file mode 100644
index 000000000..633ddfecf
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ Codestin Search App
+
+
+
+
+
+
+
Let's Play Some Trivia
+
Try your best to figure out the answer. If you really have no clue, click on the question to reveal the answer...
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Week3/homework/masoud/js-exercise/Ex3-triviaApp/style.css b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/style.css
new file mode 100644
index 000000000..e5f892092
--- /dev/null
+++ b/Week3/homework/masoud/js-exercise/Ex3-triviaApp/style.css
@@ -0,0 +1,38 @@
+*{
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-size: large;
+ font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
+ background-color:aquamarine;
+}
+
+.container{
+ width: 80%;
+ margin: auto;
+}
+
+h1{
+ text-align: center;
+ margin: 10px;
+}
+
+.questions{
+ margin: 20px;
+ background-color: coral;
+ padding: 10px;
+ color: white;
+}
+
+.question {
+ cursor: pointer;
+ margin: 10px 0;
+}
+
+.answer {
+ background-color: cyan;
+ color: black;
+}
\ No newline at end of file
diff --git a/apps/hackyourinfo/package.json b/apps/hackyourinfo/package.json
deleted file mode 100755
index a226417ab..000000000
--- a/apps/hackyourinfo/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "hackyourinfo",
- "version": "1.0.0",
- "description": "Small webserver for class collaboration.",
- "main": "index.js",
- "author": "Joost Lubach",
- "license": "MIT",
- "private": false,
- "dependencies": {
- "body-parser": "^1.18.3",
- "cors": "^2.8.5",
- "express": "^4.16.4",
- "fs-extra": "^7.0.1"
- },
- "scripts": {
- "start": "node ."
- }
-}
diff --git a/hackyourrepo-app/hyf.png b/hackyourrepo-app/AmirHossein/hyf.png
old mode 100755
new mode 100644
similarity index 100%
rename from hackyourrepo-app/hyf.png
rename to hackyourrepo-app/AmirHossein/hyf.png
diff --git a/hackyourrepo-app/index.html b/hackyourrepo-app/AmirHossein/index.html
old mode 100755
new mode 100644
similarity index 99%
rename from hackyourrepo-app/index.html
rename to hackyourrepo-app/AmirHossein/index.html
index 2b202e708..654eee321
--- a/hackyourrepo-app/index.html
+++ b/hackyourrepo-app/AmirHossein/index.html
@@ -20,6 +20,9 @@
+
+
+