Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Olenek/py-network-clone

Repository files navigation

ВНИМАНИЕ:

Это копия финальной версии дипломного проекта по курсу промышленного программирования 32 группы МШП Яндекс. Работу над проектом вело 10+ человек, зоной моей ответственности был только весь фронтэнд, а также некоторая доля бэка. Существование этого репозитория объясняется ностальгией и уважением к моей группе.

Дипломный проект по курсу промышленного программирования 32 группы МШП Яндекс

Система для проведения удаленного интервью с возможностью совместного написания, редактирования и выполнения программного кода.

Начало работы

ВНИМАНИЕ! Здесь и далее все примеры приведены для 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 в систему

Для того, чтобы работать над проектом Вам необходимо иметь на своем компьютере установленную систему контроля версий 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

Контейнерная виртуализация и Docker

Проект из коробки поддерживает разворачивание базы данных MySQL в виртуальном контейнере Docker (https://www.docker.com/). Для того, чтобы пользоваться автоматическим разворачиванием базы, нужно установить в систему Docker

  1. Установка зависимостей
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  1. Добавление в систему GPG ключа репозитория Docker
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Добавление в систему сведений о репозитории Docker
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. Обновление индекса apt-get
$ sudo apt-get -y update
  1. Инсталляция Docker из добавленного репозитория
$ sudo apt-get install -y docker-ce
  1. Добавить своего пользователя в группу с привелегиями для Docker
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

Выйдите и войдите снова в терминал, чтобы изменения вступили в силу Вы можете проверить работу Docker, развернув hello world container $ docker run hello-world

Установка docker compose

$ 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

Старт контейнера с БД MySQL

Контейнер с базой данных стартует простой командой из директории проекта:

$ make db_container

Для проверки можно вывести список запущенных контейнеров

$ docker ps
Установка клиента MySQL

Вы только что запустили сервер БД 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!!!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published