node-test/README.md

55 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2023-03-20 11:13:27 +03:00
# Тестовое задание по 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.