/BackTest

Выполненное тестовое задание!

Primary LanguageJavaScript

Тестовое задание для Backend разработчика

Необходимо на базе данного проекта реализовать АПИ, который предоставляет CRUD-интерфейс для работы с компаниями и связанными с ними контактами.

Требования

  • В качестве БД нужно использовать PostgreSQL.
  • Автоматические тесты
  • Документация к API
  • К проекту должна быть приложена инструкция по запуску, а также дамп БД, содержащий несколько записей о компаниях/контактах.
  • Результат выполнения задания должен быть выложен в любой открытый репозиторий.

Задачи

  • Реализовать авторизацию по логин/паролю.
  • Реализовать методы получения/сохранения данных компаний и контактов. Пример форматов данных есть в "заглушках" в коде проекта.
  • Реализовать дополнительно методы получения списка компаний. Должна быть возможность отфильтровать по статусу и/или типу компании, отсортировать по имени и/или дате создания. Также метод получения списка должен предлагать параметры для реализации пагинации.
  • Реализовать метод удаления контакта.
  • Добавить компании новое свойство "адрес".

Результат выполнения задания

Для запуска проекта в режиме отладки:

# копируем файл настроек
cp ./.env.dev ./.env

Устанавливаем PostgresSQL локально.

  • создаем базу данных test-app

Для инициализации пустой базы данных и заведения тестовых данных:

npm db:init

Для простой генерации тестовых данных:

npm db:seed

Устанавливаем зависимости:

# устанавливаем зависимости
npm i

Запускаем проект в dev режиме:

# Запускаем проект
npm dev

Запускаем проект в обычном режиме:

# Запускаем проект
npm start

сервер доступен по адресу: http://localhost:5000

Запуска проекта в Docker контейнере

# Запуск
docker-compose -f docker-compose.yml up -d --build

# Останов
docker-compose -f docker-compose.yml down

# Удаление остановленных контейнеров
docker system prune -a

Документация

Документация доступна в запущенном проекте по адресу: http://localhost:5000/doc

Дамп базы данных

Доступен в ./test_data.sql