- Склонировать репозиторий
git clone git@github.com:moevm/mse_plagiarism_search.git
cd mse_plagiarism_search
- Запустить docker
docker-compose up
Будут запущены:
- Фронтэнд на порту 8080
- pgAdmin 4 на порту 81
Пререквизиты:
- Python >= 3.6
- Node.js >= 12.0
- Docker
- Docker Compose >= 3.5
- bash >= 4.0 (!)
- Установить
virtualenv
pip install virtualenv
Альтернативный вариант (советую его) - Miniconda3.- Установить
Miniconda
conda create --name mse_plagiarism_search
conda activate mse_plagiarism_search
conda install python
- Опустить шаги 3.2, 3.3 далее
- Установить
- Склонировать репозиторий
git clone git@github.com:moevm/mse_plagiarism_search.git
cd mse_plagiarism_search
- Настрока бэкэнда. В корне репозитория:
cd backend
python -m virtualenv venv
source venv/bin/activate
- Установить зависимости Python
pip install -r requirements.txt
В случае проблем сpsycopg2
, ставить какpip install psycopg2-binary
- Настройка фронтэнда. В корне репозитория:
cd frontend
- Установить зависимости Node.js
npm install
В корне репозитория:
- Запуск БД (консоль 1). В корне репозитория:
docker-compose up -f docker-compose-db.yml
Будет развернута базаPostgresSQL
на порте. 5432 и pgAdmin на порте 81.
- Запуск бэкэнда (консоль 2):
cd backend
source venv/bin/activate
(илиconda activate mse_plagiarism_search
)export FLASK_APP=app.py
python -m flask run
dev-сервер запустится на порту 5000. При первом запуске в базе будут созданы таблички и будет установлено расширениеfuzzystrmatch
- Запуск фронтэнда (консоль 3):
cd frontend
npm run serve
Клиент запустится на порту 8080.
Будет привязано к основной функциональности, пока в формате отдельного скрипта
- Повторить п.1,3 инструкции по установке REST API
cd scripts
python load_repo.py <URI репозитория> <путь>
- В папке
<путь>
будут полученные файлы с исходным кодом
- Повторить п.1,2 инструкции по запуску REST API
cd parsing
- После запуска программы(python pars.py) ввести путь до файла, который необходимо парсить
- В консоль будут выведены теги языков из обработанного кода
- В файлы с соответствующими названиями будут добавлены фрагменты кода разделенные по языкам
- В файл o.txt будут сохранены все фрагменты кода
Запуск yapf
Поможет сделать код приятнее на вид.
pip install yapf
- В корне репозитория:
yapf -i -r **/*.py
Рекомендую призязатьyapf
к IDE, обычно возможности для интеграции находятся.
Договорились использовать Angular Commit Guidelines для формата коммитов (scope
будут свои).