Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Анализ Git репозиториев

Состав команды: Арикова Кристина Георгиевна, Гусарова Александра Павловна, Утенкова Мария Александровна

Капитан команды: Утенкова Мария Александровна

Руководитель: i2z1

Содержание:

Презентация проекта

Обзор проекта от идеи до реализации представлен здесь

Также доступно видео демонстрации работы программы

Как запустить?

Требования:

  1. R версии 4.0 и выше
  2. Git (проект тестировался на версии git 2.48 для Windows)
  3. RStudio (по желанию)

Установка пакетов

Для корректной работы ПО необходимо установить пакеты, для чего можете выполнить команду:

install.packages(c(
  "shiny", "shinydashboard", "DT", "dplyr", "plotly", "tidyr", 
  "ggplot2", "RColorBrewer", "treemap", "glue", "httr2", "DBI", 
  "duckdb", "stringr", "markdown", "shinyjs", "networkD3", 
  "zoo", "igraph", "lubridate"
))

Запуск

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

  • Запуск через консоль R:
shiny::runApp('git-analysisProject.R')
  • Запуск через RStudio:
    1. Откройте репозиторий в RStudio

    2. Откройте файл git-analysisProject.R

    3. Нажмите на кнопку Run App в правом верхнем углу панели с кодом

      image

Используемые пакеты

Основные UI-библиотеки:

  1. shiny - базовый фреймворк для создания веб-приложений на R
  2. shinydashboard - создание панелей управления с боковым меню и вкладками
  3. shinyjs - дополнительные JavaScript-эффекты и анимации

Работа с данными:

  1. dplyr - манипуляции с данными (arrange, select, filter, mutate, summarize)
  2. tidyr - преобразование структуры данных
  3. glue - интерполяция строк и шаблонизация
  4. stringr - обработка строковых данных

Визуализация:

  1. ggplot2 - построение статических графиков
  2. plotly - создание интерактивных графиков
  3. RColorBrewer - цветовые палитры для визуализаций
  4. treemap - древовидные карты для иерархических данных
  5. networkD3 - интерактивные сетевые графики (коллаборации)

Работа с БД:

  1. DBI - универсальный интерфейс работы с базами данных
  2. duckdb - встраиваемая колоночная СУБД для хранения данных

Вспомогательные инструменты:

  1. DT - интерактивные таблицы DataTables
  2. httr2 - HTTP-запросы (проверка URL, работа с API GitHub)
  3. tools - работа с файловыми путями и расширениями
  4. markdown - обработка Markdown-контента

Анализ временных данных:

  1. zoo - скользящие средние для анализа временных рядов
  2. lubridate - обработка дат и времени

Сетевой анализ:

  1. igraph - анализ графов (выявление связей между разработчиками)

Как работать?

После запуска программы вас встречает следующий интерфейс:

image

Слева представлены навигационные ссылки по разделам:

  • Репозитории: добавление новых репозиториев в базу данных, просмотр и анализ добавленных репозиториев, удаление репозиториев из базы
  • Авторы: просмотр и анализ авторов, которые работали над добавленными репозиториями
  • Организация: сводная информация о графике работы над добавленными проектами, топ лучших разработчиков, сеть взаимодействия разработчиков
  • Рекомендации: подбор команды для проекта
  • О программе: краткая информация и инструкция по работе с проектом

Добавление репозитория в базу данных

Возможны три способа добавления репозитория в базу данных. Для добавления репозитория нужно необходимые данные подставить в соответствующие поля формы на вкладке "Репозитории", предварительно выбрав режим добавления.

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

  • Добавление локального репозитория:
    • путь к директории, в которой располагается git-репозиторий

image

  • Добавление удаленного репозитория:
    • URL удаленного репозитория представляет собой ссылку для клонирования репозитория с удаленного хостинга
    • путь к директории, в которую будет склонирован git-репозиторий

image

  • Добавление всех репозиториев пользователя:
    • Имя пользователя на сайте github.com
    • путь к директории, в которую будут склонированы git-репозитории

image

Удаление репозитория из базы данных

Для удаления репозитория необходимо выбрать его в списке, кликнув по нему ЛКМ. Выбранная строка станет синей.

После этого необходимо нажать на кнопку "Удалить". Появится всплывающее окно для подтверждения удаления репозиториЯ из базы данных.

Если вы уверены, что хотите удалить репозиторий, нажмите на кнопку "Удалить", иначе нажмите на кнопку "Отмена"

image

При удалении репозитория из базы данных происходит удаление информации о нем, но директория с репозиторием остается нетронутой.

При необходимости пользователь может удалить локальный репозиторий стандартными средствами операционной системы.

Путь, по которому располагается репозиторий, указан в таблице со всеми добавленными репозиториями на вкладке "Репозитории". Поэтому рекомендуется при удалении репозитория из базы данных скопировать этот путь, чтобы без проблем найти и удалить репозиторий с диска.

Анализ репозитория

Для анализа репозитория необходимо выбрать его в списке, кликнув по нему ЛКМ. Выбранная строка станет синей.

После этого необходимо нажать на кнопку "Анализировать".

Появится всплывающее окно. В левой части представлены фильтры:

  • Авторы - участники команды, работающей над проектом
  • Период - даты с-по для уточнения временного интервала анализа. По умолчанию выбран весь доступный период.

image

Пользователю доступны следующие графики для анализа:

  • Вклад участников

image

  • Типы изменений

image

  • История участия

image

  • Коммиты в файлах

image

Для закрытия этого окна нужно нажать на кнопку "Dismiss" или кликнуть на затемненной области за пределами всплывающего окна в рамках интерфейса программы.

Анализ автора

Список всех авторов, работавших над добавленными в базу данных репозиториях, представлен на вкладе "Авторы".

Для анализа автора необходимо выбрать его нажатием ЛКМ, соответствующая строка станет синей.

Далее необходимо нажать на кнопку "Анализировать".

Появится всплывающее окно.

image

В левой части окна доступен фильтр по исследуемому периоду (даты с-по для уточнения временного интервала анализа). По умолчанию выбран весь доступный период.

Также в левой части окна представлена статистика:

  • Количество репозиториев, над которыми работал автор
  • Количество коммитов автора
  • Среднее количество коммитов автора в день
  • Наиболее часто используемое слово в описании коммита
  • Наиболее продуктивный день по коммитам

Пользователю доступны следующие крафики для анализа:

  • Использование языков программирования

image

  • Анализ репозиториев по количеству файлов

image

  • Тепловая карта

image

  • Коммиты в репозиториях

image

  • Активные часы

image

Обзор организации

На вкладке «Обзор репозитория» в правой части окна представлены три области, демонстрирующие динамику активности проекта, список лучших разработчиков и сеть взаимодействия разработчиков.

  1. «Динамика активности проекта» отображает три показателя: коммиты, 7-дневное среднее и 30-ти дневное среднее по количеству коммитов во временной шкале.

Строится график работы над проектами (склонированными репозиториями) во времени по количеству коммитов. Что позволяет сделать выводы о динамике работы всех проектов.

image

  1. «Лучшие разработчики» показывает топ 5 лучших авторов, количество коммитов в активные дни и дату последнего коммита. Оценка разработчика вычисляется на основе опыта, активности и регулярности.

Лучшие авторы выбираются на основе их оценки, которая в свою очередь вычисляется как средневзвешенное произведение показателей опыта, активности и регулярности:

experience_score * 0.4 + activity_score * 0.4 + recency_score * 0.2

image

  1. «Сеть взаимодействия разработчиков» определена взаимосвязью пользователей, принимающих участие, в одинаковых файлах и проиллюстрирована в виде графов.

На основе этого графа можно сделать вывод о командах, работающих над одним проектом, то есть выполняющих коммиты в один и тех же файлах проекта.

image

Рекомендации

На вкладке «Рекомендации» пользователю необходимо в веб-панели управления параметрами проекта указать требуемые характеристики.

Когда форма настройки параметров проекта будет заполнена, пользователь нажимает на кнопку «Сформировать рекомендацию», чтобы запустить процесс подбора команды.

Программа предусматривает следующие характеристики проекта:

  1. «Примерный размер проекта (KLOC)» - это показатель, который обозначает размер программного проекта в тысячах строк кода. Автоматически подставляется значение 50, однако пользователь может ввести нужное количество с клавиатуры или выбрав нужное число в окне.
  2. Приоритет проекта представляет собой выпадающий список с вариантами приоритета команды – опыт, скорость разработки, стабильность или баланс.
  3. Тип проекта таже является выпадающим списком с возможными типами backend, frontend, fullstack и документация.

image

image

После нажатия кнопки на экране появится результаты имеющихся в базе данных авторов – «сводные рекомендации».

В области «рекомендованная команда» указан оптимальный размер команды и ключевые разработчики, которые лучше всех удовлетворяют требованиям к реализации проекта по стилю работы и знаниям.

image

Ниже приведена таблица «Детальная оценка разработчиков» имеющихся в базе данных разработчиков.

image

Таблица содержит следующие метрики:

  1. Разработчик (никнейм)
  2. Опыт (числовой показатель 0.00-2.00)
  3. Активность (шкала 0.00-10.00)
  4. Регулярность (коэффициент 0.00-1.00)
  5. Основной язык
  6. Количество коммитов
  7. Средний размер коммита (в строках кода)
  8. Итоговая оценка

Для удобства каждый параметры таблицы отсортировать.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages