diff --git a/js-core/homeworks/homework-13/index.html b/js-core/homeworks/homework-13/index.html
new file mode 100644
index 0000000..6e418d2
--- /dev/null
+++ b/js-core/homeworks/homework-13/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Home work 1
+
+
+
+
+
+
\ No newline at end of file
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..7e1cd9d
--- /dev/null
+++ b/js-core/homeworks/homework-13/src/main.js
@@ -0,0 +1,71 @@
+class Human {
+ constructor(options) {
+ this.name = options.name;
+ this.age = options.age;
+ this.pol = options.pol;
+ this.height = options.height;
+ this.weight = options.weight;
+ }
+}
+
+class Worker extends Human {
+ constructor(options) {
+ super(options);
+ };
+ //work4() { console.log(`работать`); }
+}
+Worker.prototype.work4 = () => { console.log(`работать`); }
+
+class Student extends Human {
+ constructor(options) {
+ super(options);
+ };
+ //visionTV() { console.log(`смотреть сериалы`); }
+}
+Student.prototype.visionTV = () => { console.log(`смотреть сериалы`); }
+
+var alexWorker = new Worker({ name: 'alex', age: 38, pol: 'm', height: 180, weight: 110 });
+var vasyaWorker = new Worker({ name: 'vasya', age: 47, pol: 'm', height: 170, weight: 120 });
+var alfredStudent = new Student({ name: 'alfred', age: 47, pol: 'm', height: 197, weight: 80 });
+var annaStudent = new Student({ name: 'anna', age: 18, pol: 'w', height: 190, weight: 62 });
+
+console.log(alexWorker);
+console.log(vasyaWorker);
+console.log(alfredStudent);
+annaStudent.visionTV();
+
+/* Вы должны создать имитацию медленной базы данных.
+ * TASK - 1 Сделайте Класс Database с методами
+ * query
+ * При запуске метода query запустите внутренний таймаут, который будет длиться 5 секунд.
+ * При поступлении еще 1 запроса(если вызвать метод еще раз),
+ * таймаут должен стартануть сначала
+ * и ответ должен прийти снова через 5 секунд
+ *
+ */
+class DataBase {
+ constructor() {
+ this.num = 6;
+ };
+ set() {
+ this.seti = setInterval(() => {
+ console.log(this.num = this.num - 1);
+ if (this.num <= 1) {
+ console.log('The web server is down');
+ clearInterval(this.y);
+ }
+ }, 1000);
+ }
+ query() {
+ if (!this.seti) {
+ this.set();
+ } else {
+ clearInterval(this.y);
+ this.num = 6;
+ this.set();
+ }
+ }
+}
+
+const dataBase = new DataBase();
+dataBase.query();
\ No newline at end of file
diff --git a/js-core/homeworks/telephone/index.html b/js-core/homeworks/telephone/index.html
new file mode 100644
index 0000000..6e418d2
--- /dev/null
+++ b/js-core/homeworks/telephone/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Home work 1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/js-core/homeworks/telephone/src/main.js b/js-core/homeworks/telephone/src/main.js
new file mode 100644
index 0000000..9815ae4
--- /dev/null
+++ b/js-core/homeworks/telephone/src/main.js
@@ -0,0 +1,126 @@
+/*Приложение телефонный справочник
+
+Создайте функцию конструктор.
+У данной функции должны быть методы:
+
+1+. Преобразование телефонного номера из формата 0993378130 в (099) 33-78-130
+2+. Проверка, что телефонный номер содержит только числа
+3+. Добавление пользователей в справочник
+4+. Удаление пользователя по имени, фамилии
+5+. Поиск пользователей по имени - отображает всех пользователей с одинаковым именем
+6+. Изменение имени, фамилии, телефонного номера у выбраного пользователя ( здесь должно быть реализовано через this )
+7+. Сортировка пользователей по номеру телефона, фамилии, имени и тд, по любому из свойств пользователя
+8. Фильтр по указанному свойству
+
+*/
+const myApp = new PhoneApp();
+
+function PhoneApp() {
+ this.dataBase = [
+ { id: 1, name: 'Vasya', phone: '1234' },
+ { id: 2, name: 'Vasya2', phone: '12441' },
+ { id: 5, name: 'Vasya5', phone: '12444' },
+ { id: 6, name: 'Vasya6', phone: '12444' },
+ { id: 7, name: 'Vasya2', phone: '12442' },
+ { id: 8, name: 'Vasya2', phone: '12443' },
+ { id: 9, name: 'Vasya2', phone: '12455' }
+ ]
+}
+PhoneApp.prototype.phoneNum = function(phoneNum) {
+ if (this.testOnNum(phoneNum) && this.ten(phoneNum)) {
+ let str = phoneNum;
+ return `(${str.substring(0,3)}) ${str.substring(3,5)}-${str.substring(5,7)}-${str.substring(7,10)}`;
+ } else {
+ return `неправильно введен номер`;
+ }
+}
+PhoneApp.prototype.testOnNum = function(phoneNum) {
+ let arr = phoneNum.split('');
+ let isNum = function(number) {
+ return !isNaN(number);
+ }
+ return arr.every(isNum);
+}
+PhoneApp.prototype.ten = function(phoneNum) {
+ return phoneNum.length == 10 || `введите десятизначный номер`;
+}
+PhoneApp.prototype.addUser = function(name, phone) {
+ let lastId = this.dataBase[this.dataBase.length - 1].id;
+ let obj = {};
+ obj.id = lastId + 1;
+ obj.name = name;
+ obj.phone = this.phoneNum(phone);
+ this.dataBase.push(obj);
+}
+PhoneApp.prototype.deleteUser = function(name) {
+ this.dataBase.forEach((value, i) => {
+ if (value.name == name) {
+ this.dataBase.splice(i, 1);
+ }
+ });
+}
+PhoneApp.prototype.search = function(name) {
+ let arr = [];
+ this.dataBase.forEach((value, i) => {
+ if (value.name == name) {
+ arr.push(value);
+ }
+ });
+ return arr;
+}
+PhoneApp.prototype.change = function(name, newName, newPhone) {
+ if (newName && newPhone) {
+ this.changePhone(name, newPhone);
+ this.changeName(name, newName);
+ }
+}
+PhoneApp.prototype.changeName = function(name, newName) {
+ this.dataBase.forEach((value, i) => {
+ if (value.name == name) {
+ this.dataBase[i].name = newName;
+ }
+ });
+}
+PhoneApp.prototype.changePhone = function(name, newPhone) {
+ this.dataBase.forEach((value, i) => {
+ if (value.name == name) {
+ this.dataBase[i].phone = this.phoneNum(newPhone);
+ }
+ });
+}
+PhoneApp.prototype.sort = function(param) {
+ //let tempArr = this.dataBase
+ return this.dataBase.sort((a, b) => {
+ return a[param] > b[param];
+ });
+}
+PhoneApp.prototype.filter = function(str) {
+ let dataBaseFilter = [];
+ this.dataBase.forEach((value, i) => {
+ for (let key in value) {
+ for (let j = 0; j <= value[key].length - str.length; j++) {
+ if (value[key].substr(j, str.length) == str) {
+ dataBaseFilter.push(value);
+ return;
+ }
+ }
+ }
+ });
+ return dataBaseFilter;
+}
+
+console.log(myApp.phoneNum('1234567890'));
+console.log(myApp.testOnNum('1234567890'));
+myApp.ten('1234567890');
+myApp.addUser('alex', '0671233445');
+myApp.addUser('alex1', '5554618456');
+//console.log(myApp.deleteUser('Vasya2'));
+//console.log(myApp.deleteUser('alex'));
+console.log(myApp.search('Vasya2'));
+myApp.changeName('alex', 'Alexey');
+myApp.change('Vasya6', 'Pedro', '3333333333');
+myApp.changePhone('Pedro', '2222222222');
+console.log(`dataBase `, myApp.dataBase);
+console.log(`dataBase `, myApp.sort('name'));
+//console.log(`dataBase `, myApp.sort('id'));
+console.log(`filter `, myApp.filter('ex'));
\ No newline at end of file