VKFriends - GUI приложение, написанное на Java, позволяющее пользователя визуализировать связи между разными аккаунтами вконтакте. Программа строит граф, вершины которого - разные ВК аккаунты, рёбро - наличие/отсутствие общих друзей, вес этого ребра - количество общих друзей.
В основе графа - список смежности. Также, есть возможность построить максимальное остовное дерево из этого графа с помощью алгоритма Краскала, если граф связный и взвешенный.
-
Input data - пользователь вводит id/url страницы ВК в специальную строку ввода, добавляя вершину.
-
Output data - пользователь получает на экране граф, в котором вершинами являются страницы в ВК, а ребра - наличие общих друзей. А так же пользователь может получить минимальную информацию о пользователе в графе. Полученный граф - взвешенный (количество общих друзей), возможен несвязный граф, или остов, в зависимости от запроса пользователя.
- Графический интерфейс
Примерный вид GUI представлен ниже (возможны изменения).
Базовый gui состоит из кнопок добавления/удаления вершины, удаления всего графа, графического поля для графа и поля/окна для вывода информации об аккаунте.
-
Строит граф, у которого вершины - ВК аккаунты, ребра - общие друзья, есть они или нет.
Будет создан демо скриншот -
Удаление и добавление вершины в графе.Пользователь может ввести айди/ссылку на аккаунт и добавить/удалить его из графа.
Будет создан демо скриншот -
Минимальная информация о пользователе с помощью нажатия на вершину графа.
Будет создан демо скриншот -
Алгоритм, создающий минимальное остовное дерево из этого графа.
Будет создан демо скриншот
Инструкции по тестированию
https://github.com/DarkFlink/VKFriends/wiki/Using-the-unit-tests
Здесь будут приведены инструкции для запуска и использования VKFriends.
-
Создать базовый gui с кпопками добавления/удаления вершины, удаления всего графа, графическое поле для графа и поле/окно для вывода информации об аккаунте.
-
Добавить возможность строить граф, где вершина - аккаунт, а ребро - кол-во общ. Друзей.
-
Добавить возможность добавлять/удалять новые вершины.
-
Реализовать базовый набор unit тестов.
-
Свести все наработки в один проект (реализовать взаимодействие между частями проекта).
-
Получить новую версию приложения, которое умеет:
-
Выводить некоторую информацию об аккаунте по нажатию на вершину.
-
Строить минимальное/максимальное остовное дерево на основе базового графа.
-
- Разработка программы на разных ветках
- Новая ветка должна быть создана как: <issue_id>_имя ветки.
- создание пул реквеста с наименованием РВП: (Работа в прогрессе) если работа не выполнена.
- Не заливать в мастер.
- Одна проблема - один пул реквест - одна ветка.
- Пул реквест: <issue_id>_имя пул реквеста.
- Все пул реквесты должны иметь комментарии.
- Yaroslav Gosudarkin - ответственный за алгоритмы.
- Gavrilov Andrew - ответственный за графический интерфейс.
- Gizzatov Amir - ответственный за юнит тестирование и отчёт.