first commit
This commit is contained in:
commit
3918aa2e2b
54
README.md
Normal file
54
README.md
Normal file
@ -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.
|
Loading…
Reference in New Issue
Block a user