From 3918aa2e2b20dca40672bd113141aa55944d34db Mon Sep 17 00:00:00 2001 From: Victor Date: Mon, 20 Mar 2023 11:13:27 +0300 Subject: [PATCH] first commit --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..39c9839 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# Тестовое задание по Node.js + Express.js + +1. Написать API для приёма контактных данных клиентов, с возможностью: + + 1.1 Добавлять данные в базу данных массивом, например: + **POST /contacts** + + ```javascript + { + source_id: 1, + items: [ + { + "name": "Анна", + "phone": 9001234453, + "email": "mail1@gmail.com" + }, + { + "name": "Иван", + "phone": "+79001234123", + "email": "mail2@gmail.com" + } + ] + } + ``` + + - **`source_id`** - id источника контактов, для примера достаточно 1 и 2 + - **`phone`** - в БД сохраняем в формате без +7 (10 цифр) + - **`phone`** - не уникально, но может добавляться максимум 1 раз в сутки для каждого **`source_id`** + + В ответе возвращаем количество добавленных контактов. + + 1.2 Находить данные по номеру телефона, например: + **GET /contacts?phone=9001234453** + + В ответе - массив с найденными данными. + + 1.3 Выводить все контакты, например: + **GET /contacts** + + В ответе - массив с найденными данными. + + 1.4 Удалять контакт, например: + **DELETE /contacts?phone=9001234453** + + В ответе - удаленный контакт. + +2. Оптимизировать скорость добавления и поиска, т.к. контактов будет много + +3. По желанию. Сделать простой интерфейс, например на Bootstrap. Можно использовать шаблонизатор (EJS, HBS). + +При выполнении можно использовать фреймворк Express (или Adonis). +В качестве БД предпочтительно использование SQLite. + +#### Результат - исходный код на Github.