diff --git a/js-core/homeworks/homework-13/index.html b/js-core/homeworks/homework-13/index.html
new file mode 100644
index 0000000..d45e88a
--- /dev/null
+++ b/js-core/homeworks/homework-13/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Home work 13
+
+
+
+
+
+
diff --git a/js-core/homeworks/homework-13/src/main.js b/js-core/homeworks/homework-13/src/main.js
new file mode 100644
index 0000000..1aea797
--- /dev/null
+++ b/js-core/homeworks/homework-13/src/main.js
@@ -0,0 +1,55 @@
+//Task1 (hw12 ---> task1)
+class Http {
+ constructor() {
+ this.ctx = {
+ req: {
+ PORT: 'number',
+ url: 'string'
+ },
+ res: {
+ status: 'number',
+ message: 'string',
+ header: {
+ content_type: 'application/json'
+ }
+ }
+ },
+ this.next = () => {}
+ };
+
+ createServer(fn) {
+ this.createServerCallback = fn;
+ return this;
+ };
+ listen(PORT, host) {
+ console.log(`Server running on https://${host}:${PORT}`);
+ this.createServerCallback(this.ctx, this.next);
+ };
+};
+
+const server = new Http().createServer(function(ctx, next) {
+ console.log(ctx);
+}).listen(3000, 'localhost');
+
+
+//Task2
+
+class DataBase {
+ constructor() {
+ this.idSetTimeout;
+ };
+
+ time() {
+ clearTimeout(this.idSetTimeout);
+ this.idSetTimeout = setTimeout(function(){
+ console.log('The web server is down');
+ }, 5000);
+ };
+
+ query() {
+ this.time();
+ };
+};
+
+const dataBase = new DataBase();
+dataBase.query();
\ No newline at end of file
diff --git a/js-core/homeworks/phonebook/index.html b/js-core/homeworks/phonebook/index.html
new file mode 100644
index 0000000..a0140c8
--- /dev/null
+++ b/js-core/homeworks/phonebook/index.html
@@ -0,0 +1,10 @@
+
+
+
+ phonebook
+
+
+
+
+
+
\ No newline at end of file
diff --git a/js-core/homeworks/phonebook/index.js b/js-core/homeworks/phonebook/index.js
new file mode 100644
index 0000000..8116467
--- /dev/null
+++ b/js-core/homeworks/phonebook/index.js
@@ -0,0 +1,106 @@
+class PhoneApp {
+ constructor() {
+ this.dataBase = [
+ {id:1, name:'Vasya', phone:'qweqwe'},
+ {id:6, name:'Vasya', phone:'qweqwe'},
+ {id:3, name:'Vasya', phone:'qweqwe'},
+ {id:8, name:'Vasya', phone:'qweqwe'},
+ {id: 10, name: 'Tom2', phone: '0995385'},
+ {id: 10, name: 'Anita', phone: '0995305385'},
+ {id: 12, name: 'Anita', phone: '9995305385'}
+ ]
+ };
+
+ checkForNumbers(phone) {
+ let arrPhone = phone.split('');
+ let numberArrPhone = arrPhone.map((elem) => {
+ return parseInt(elem);
+ });
+ let validNumber = numberArrPhone.some((elem) => {
+ return isNaN(elem)
+ });
+ if(validNumber) {
+ // console.error('Телефонный номер должен содержать только цифры');
+ return false;
+ } else {
+ //console.log('Телефонный номер вылидный');
+ return true;
+ };
+ };
+
+ transformNumber(phone) {
+ if(this.checkForNumbers(phone)){
+ let arrPhone = phone.split('');
+ arrPhone.splice(0, 0, '(');
+ arrPhone.splice(4, 0, ')', ' ');
+ arrPhone.splice(8, 0, '-');
+ arrPhone.splice(11, 0, '-');
+ return arrPhone.join('');
+ } else {
+ return 'Телефонный номер должен содержать только цифры';
+ };
+ };
+
+ addUser(id, name, phone) {
+ let objUser = {
+ id,
+ name
+ };
+ if(this.checkForNumbers (phone)) {
+ objUser.phone = phone;
+ this.dataBase.push(objUser);
+ } else {
+ console.log('Введите коренктный номер')
+ };
+ };
+
+ removeUserByName(name) {
+ let indexDelete = this.dataBase.findIndex((elem) => {
+ return elem.name === name;
+ });
+ if(indexDelete === -1) {
+ console.log('Нет такого пользователя');
+ } else {
+ this.dataBase.splice(indexDelete, 1);
+ };
+ };
+
+ searchByName(value) {
+ let newArr = [];
+ this.dataBase.forEach((elem) => {
+ if(elem.name == value) {
+ newArr.push(elem)
+ };
+ });
+ newArr.forEach((elem) => {
+ console.log('Поиск по имени --->', elem);
+ });
+ };
+
+ changeUserData(initialUser, value) {
+ let arr = this.dataBase;
+ arr.forEach((elem) =>{
+ for(let key in elem) {
+ if(elem[key] == initialUser) {
+ elem[key] = value;
+ };
+ };
+ });
+ };
+
+ sortingUsers(value) {
+ function compare(a, b) {
+ return a[value] > b[value];
+ };
+ let tmp = this.dataBase.sort(compare);
+ console.log('Сортировка пользователей по заданному свойству --->', tmp);
+ };
+};
+let phoneApp = new PhoneApp();
+console.log('проверенный и преобразованый номер --->', phoneApp.transformNumber('0995305385'));
+console.log('номер не прошедший проверку --->', phoneApp.transformNumber('099530)5385'));
+phoneApp.addUser(3, 'Natalia', '0995305300');
+phoneApp.removeUserByName('Tom2');
+phoneApp.searchByName('Natalia');
+phoneApp.changeUserData(3, 5);
+phoneApp.sortingUsers('id');