-
Задача: Требуется визуализировать граф общих друзей в социальной сети vk.com для заданного пользователем списка участников социальной сети. Вершины графа должны однозначно идентифицировать пользователя социальной сети.
- Дополнение: При нажатии на одного из друзей из графа будут выделены общие друзья пользователя и выбранного друга. Так же будет видно пользователей, которые онлайн на данный момент.
-
Структура данных: бор.
-
Алгоритм: Построение бора по списку ID клиента
- Корнем бора является пользователь, чей ID был получен на вход.
- Если буквы, на которую начинается имя друга еще не было, то добавить ребро из корня к вершине друга. Каждая вершина хранит имя и фамилию друга.
- Ребро к следующему другу будет вести из вершины с одинаковой начальной буквой или из корня. Т.к. список отортирован в лексикографическом порядке, то каждая следующая вешина будет располагаться под предыдущей.
- Граф считается построенным, если в списке не осталось необработанных вершин.
Пример того, как должен будет выглядеть граф в программе
-
Входные данные: в специальную строку пользователь вводит id клиента социальной сети ВКонтаке.
-
Выходные данные: граф друзей.
-
GUI: диалоговое окно со строкой для ввода id пользователя, кнопка «Построить граф», окно с построенным графом, ползунок для прокрутки страницы и кнопки для управления окном.
Пример GUI
- распределение ролей
- получение списка ID друзей выбранного пользователя
- разработка прототипа GUI
- поиск библиотеки для визуализации графа
- разработка начальной версии графа друзей
- поиск библиотеки для тестирования
- написание алгоритма построения бора по списку ID друзей
- реализация диалогового окна
- написание UML-диаграммы
- первичная сборка проекта
- тестирование правильности построения списка ID
- тестирование правильности построения бора
- исправление ошибок
- добавление дополнительных опций
- тестирование дополнительных опций
UML
Ответственные:
- Глазунов Сергей (7382) - VK API, логика задач.
- Петрова Анна (7382) - тестирование, написание отчетов.
- Токарев Андрей (7382) - разработка GUI, построение графа.
Первая итерация
1. Получение списка ID друзей пользователя.
2. Визуализация пробной версии графа друзей.
3. Библиотека для написания юнит-тестов JUnit.
краткая инструкция для запуска программы
- Get list of friends of user
- Graph-visualizator
- Tests
- After any pull request need to change quick start
- Pull request Example:
#<number of issue>
Short test case
Expected result
- Any variables should be camel case. Example:
camelCase
- Don't merge pull request before any checks
- Every pull request should have label of type issue. Example:
bug
,tests
,vk_api
,visualizator
and so on - Pull request shouldn't be very big!
- Everynissue should have some comment
- One pull request only one issue
- There must be individual branch for tests. This branch wont be merged in master ever!