No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend News item author is now populated on save Nov 18, 2018
mongo
swagger Swagger config updated for news items Nov 16, 2018
.gitattributes
.gitignore Initial commit Nov 14, 2018
README.md fix (readme) remove $ Nov 14, 2018
docker-compose.yml Database is now stored in a Docker volume Nov 16, 2018

README.md

Бэкенд для ТЗ-3

  • Бэкенд предназначен для решения тестового задания №3.
  • Для решения ТЗ вам потребуется запустить бэкенд локально и ознакомиться с его API, которое задокументировано с помощью Swagger'a. Подробности ниже.

Предварительная настройка

  1. Для начала склонируйте этот репозиторий:
git clone https://github.com/maxfarseer/backend-tz3.git
  1. В настройках проекта вам нужно указать свой client ID для авторизации через Google. Как создать свой ClientID подробно описано здесь. Созданный ClientID нужно будет указать в файле backend/config/env/common.js. Этот же ClientID вам нужно будет использовать на фронтенде.

backend/config/env/common.js

...
google: {
  clientID: "ВАШ_ID_ЗДЕСЬ" // остальные поля конфига не трогайте
}
...

Запуск через Docker

Прежде всего, нужно установить и запустить Docker локально на своей машине. После этого запуск бэкенда будет предельно простым, поэтому мы настоятельно рекомендуем воспользоваться данным способом.

  1. Скачайте и установите Docker.

  2. После запуска (подождите, пока иконка докера будет статичной), чтобы убедиться, что Docker установлен и запущен, в командой строке введите:

    docker info
    

    Примерный вывод команды:

    Containers: 41
    Running: 1
    Paused: 0
    Stopped: 40
    Images: 24
    Server Version: 18.06.1-ce
    Storage Driver: overlay2
    Backing Filesystem: extfs
    Supports d_type: true
    Native Overlay Diff: true
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    ...
    

    Это значит, что Docker установлен и работает в штатном режиме.

  3. Перейдите в директорию проекта и запустите бэкенд:

    cd backend-tz3 (или название вашей директории, куда вы скачали репозиторий)
    docker-compose up
    

    Выполнение команды может занять некоторое время - Docker выкачает необходимые образы и установит все зависимости для проекта. Когда приложение запустится, вы увидите в консоли следующее:

    Вывод docker-compose

  4. Чтобы проверить, что бэкенд работает, откройте Swagger UI и сделайте несколько запросов к API бэкенда. Для этого:

    1. В браузере перейдите на localhost (без указания порта). Должен открыться Swagger UI, из котрого можно делать запросы на бэкенд: Swagger UI
    2. В качестве пробного запроса можно выполнить запрос GET на получение списка новостей. Нужно нажать на "Try it out": Try it out А затем на "Execute": Execute В качестве ответа вы увидите список новостей. Пока что он будет пустой. Подробности по использованию Swagger даны ниже.

Запуск без Docker'а

Если вы по какой-то причине не хотите использовать Docker, вы можете запустить все компоненты приложения поотдельности.

  1. Скачайте Mongo DB Server. После установки нужно запустить базу. Как это сделать описано в документации.

    Важно, чтобы база данных была запущена в первую очередь.

  2. Запустите бэкенд:
    npm install
    npm run start
    
  3. Запустите Swagger UI. Как это сделать описано в документации.

Использование Swagger UI

Для полноценного взаимодействия с бэкендом через Swagger UI вам потребуется авторизоваться.

  1. Для начала вам нжуно авторизоваться через Google. Как это сделать подробно описано в уроке авторизация с помощью Google Sign In. В результате вы должны получить token от Google, который нужно будет передать бэкенду для авторизации.
  2. Авторизуйтесь на бэкенде. Для этого нужно отправить запрос POST на адрес /auth/google с полученным токеном в качестве параметра. В ответ вы получите токен авторизации на бэкенде, который можно использовать для создания и изменения новостей и просмотра профиля.
  3. Вверху страницы нажмите на кнопку "Authorize" и вставьте полученный токен. Теперь вы можете выполнять запросы, требующие авторизации.
  4. Для проверки авторизации попробуйте создать новость. Для этого отправьте запрос POST на адрес /feeds с необходимыми параметрами. Если все прошло хорошо, значит вы авторизованы.

Токен авторизации действителен в течение часа, после этого его нужно обновлять. Для этого повторите шаги 2-3. Авторизоваться заново в Google не нужно.