node-test/README.md
2023-03-20 11:13:27 +03:00

2.2 KiB
Raw Blame History

Тестовое задание по Node.js + Express.js

  1. Написать API для приёма контактных данных клиентов, с возможностью:

    1.1 Добавлять данные в базу данных массивом, например: POST /contacts

    {
        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.