Mentor
======

Сервис для поиска ментора внутри Яндекса

.. image:: https://img.shields.io/badge/built%20with-Cookiecutter%20Django-ff69b4.svg?logo=cookiecutter
     :target: https://github.com/pydanny/cookiecutter-django/
     :alt: Built with Cookiecutter Django
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
     :target: https://github.com/ambv/black
     :alt: Black code style


Установка ПО
------------

Для работы с проектом нужно установить:

- `Docker <https://docs.docker.com/docker-for-mac/install/>`_
- СУБД Postgres (для Mac OS рекомендуется использовать `PostgresApp <https://postgresapp.com/>`_)

Быстрый старт
-------------
1. Создаем в Postgres новую базу данных и пользователя::

    createuser -s mentor_user
    createdb --encoding=UTF8 --locale=ru_RU.UTF-8 --owner=mentor_user mentor

..

  для справки можно запустить указанные команды с ключом ``--help``


2. Создаем конфиги проекта на основе примеров::

    cp .envs/.local/.django.example .envs/.local/.django
    cp .envs/.local/.postgres.example .envs/.local/.postgres

..

  в ``.envs/.local/.postgres`` прописываем настройки подключения к БД

3. Создаем файлы для сертификатов::

    touch compose/local/nginx/certs/local.crt
    touch compose/local/nginx/certs/local.key

..

    Содержимое для файлов берем из `секретницы <https://yav.yandex-team.ru/secret/sec-01f06dghvmmehe0m3jqhsvecyd/>`_

4. Пропиcываем в файлик ``/etc/hosts``::

    127.0.0.1 mentor-backend.local.yandex-team.ru
    ::1       mentor-backend.local.yandex-team.ru

5. Собираем docker-образы: ``make build``
6. Запускаем миграции БД: ``make migrate``
7. Создаем суперюзера: ``make createsuperuser``
8. Стартуем проект: ``make start-dev``
9. Открываем в браузере страницу: `mentor-backend.local.yandex-team.ru <https://mentor-backend.local.yandex-team.ru>`_


Разработка
----------

Разрабатываем и тестируем код внутри Docker-контейнеров,
поэтому все команды и тесты запускаем только через ``docker-compose``::

    docker-compose run --rm django ./manage.py <command> <args>

Чтобы не писать опцию ``-f local`` можно выполнить команду::

    export COMPOSE_FILE=local.yml


Например, запустить юнит-тесты можно так::

    docker-compose run --rm django pytest

--------------

Полезные команды
----------------
Смотри Makefile





