Это копия финальной версии дипломного проекта по курсу промышленного программирования 32 группы МШП Яндекс. Работу над проектом вело 10+ человек, зоной моей ответственности был только весь фронтэнд, а также некоторая доля бэка. Существование этого репозитория объясняется ностальгией и уважением к моей группе.
Система для проведения удаленного интервью с возможностью совместного написания, редактирования и выполнения программного кода.
ВНИМАНИЕ! Здесь и далее все примеры приведены для
OC Ubuntu/Linux Mint
. МШП не поощряет и не поддерживает использование других ОС для работы над дипломным проектом по курсу.
Для начала работы с проектом необходимо подготовить репозиторий на https://gitlab.informatics.ru
Для этого нужно:
- Сгенерировать пару ssh ключей на своей машине
$ cd ~/.ssh
$ ssh-keygen -t rsa
Если директория ~/.ssh
не существует, то ее нужно предварительно
создать: $ mkdir ~/.ssh
В директории ~/.ssh
появится два файла с ключами
один из них приватный, а второй публичный
$ ls
id_rsa id_rsa.pub
- Загрузить публичный ключ в свой профиль на gitlab в раздел ssh-ключи
Для того, чтобы работать над проектом Вам необходимо иметь на своем компьютере установленную систему контроля версий GIT
,
если она до сих пор не установлена, сделайте это:
$ sudo apt-get -y update
$ sudo apt-get install git
После того, как ключ загружен и система контроля версий установлена, Вы сможете склонировать репозиторий на свой компьютер:
$ git clone [email protected]:smirnov2016/mpsPromCourse2017_32.git
Как только репозиторий будет склонирован можно зайти внутрь папки с пректом $ cd mpsPromCourse2017_32
Зависимости, которые необходимо установить в систему:
- python3.6
- pip
- virtualenv
$ sudo add-apt-repository ppa:jonathonf/python-3.6
$ sudo apt-get -y update
$ sudo apt-get install -y python3.6
$ sudo apt-get install -y python3.6-dev
$ sudo apt-get install python-pip
$ sudo pip install virtualenv
Проект из коробки поддерживает разворачивание базы данных MySQL
в виртуальном контейнере Docker
(https://www.docker.com/).
Для того, чтобы пользоваться автоматическим разворачиванием базы, нужно установить в систему Docker
- Установка зависимостей
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- Добавление в систему
GPG
ключа репозиторияDocker
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Добавление в систему сведений о репозитории
Docker
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Обновление индекса
apt-get
$ sudo apt-get -y update
- Инсталляция Docker из добавленного репозитория
$ sudo apt-get install -y docker-ce
- Добавить своего пользователя в группу с привелегиями для Docker
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Выйдите и войдите снова в терминал, чтобы изменения вступили в силу
Вы можете проверить работу Docker, развернув hello world container $ docker run hello-world
$ sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
Контейнер с базой данных стартует простой командой из директории проекта:
$ make db_container
Для проверки можно вывести список запущенных контейнеров
$ docker ps
Вы только что запустили сервер БД MySQL в виртуальном контейнере Docker, но для работы с ней Вам потребуется программа ```mysql`` - терминал для подключения и работы с БД (клиент БД). Ее нужно установить при помощи комманд:
$ sudo apt-get install -y mysql-client libmysqlclient-dev
Для инсталляции проекта в систему воспользуйтесь встроенной в проект утилитой ```make``. Для этого, находясь в директории проекта, выполните комманду:
$ make develop
Комманда make develop
установит пакет с проектом и все зависимости проекта, перечисленные в файле setup.py
в систему.
Теперь можно активировать виртуальное окружение или настроить его в IDE PyCharm
$ source .env/bin/activate
$ python manage.py runserver
- Получить свежую ветку develop
git checkout develop
git pull
- Создать новую ветку от develop в которой будем работать
git checkout -b feature/my-awesome-task
- Кодим
- Коммитим
git commit -m "My comment"
- Пушим
git push
Ветка мастер и ветка девелоп закрыты от прямого пуша, добавить свои изменения можно только через merge request
- Заходим в gitlab создаем merge request своей ветки в девелоп, ставим проверяющим преподавателя.
- Сообщаем в Telegramm группу ссылку на свой merge request, приглашаем всех членов комманды принять участие в оценке вашего кода в gitlab
- Фиксим замечания от коллег по комманде и преподавателя.
- После успешного прохождения код-ревью Ваш мердж реквест будет заапрувлен, а код будет замерджен в develop.
Задача считается выполненной, только тогда, когда она заехала в develop!!!