Git Product home page Git Product logo

summerpracticevkfriends's Introduction

Visualizator VK Friends

Спецификация

  • Задача: Требуется визуализировать граф общих друзей в социальной сети vk.com для заданного пользователем списка участников социальной сети. Вершины графа должны однозначно идентифицировать пользователя социальной сети.

    • Дополнение: При нажатии на одного из друзей из графа будут выделены общие друзья пользователя и выбранного друга. Так же будет видно пользователей, которые онлайн на данный момент.
  • Структура данных: бор.

  • Алгоритм: Построение бора по списку ID клиента

    1. Корнем бора является пользователь, чей ID был получен на вход.
    2. Если буквы, на которую начинается имя друга еще не было, то добавить ребро из корня к вершине друга. Каждая вершина хранит имя и фамилию друга.
    3. Ребро к следующему другу будет вести из вершины с одинаковой начальной буквой или из корня. Т.к. список отортирован в лексикографическом порядке, то каждая следующая вешина будет располагаться под предыдущей.
    4. Граф считается построенным, если в списке не осталось необработанных вершин.

    Пример того, как должен будет выглядеть граф в программе

  • Входные данные: в специальную строку пользователь вводит id клиента социальной сети ВКонтаке.

  • Выходные данные: граф друзей.

  • GUI: диалоговое окно со строкой для ввода id пользователя, кнопка «Построить граф», окно с построенным графом, ползунок для прокрутки страницы и кнопки для управления окном.

    Пример GUI

План разработки:

  • распределение ролей
  • получение списка ID друзей выбранного пользователя
  • разработка прототипа GUI
  • поиск библиотеки для визуализации графа
  • разработка начальной версии графа друзей
  • поиск библиотеки для тестирования
  • написание алгоритма построения бора по списку ID друзей
  • реализация диалогового окна
  • написание UML-диаграммы
  • первичная сборка проекта
  • тестирование правильности построения списка ID
  • тестирование правильности построения бора
  • исправление ошибок
  • добавление дополнительных опций
  • тестирование дополнительных опций

UML

Ответственные:

  1. Глазунов Сергей (7382) - VK API, логика задач.
  2. Петрова Анна (7382) - тестирование, написание отчетов.
  3. Токарев Андрей (7382) - разработка GUI, построение графа.

Первая итерация

1. Получение списка ID друзей пользователя.
2. Визуализация пробной версии графа друзей.
3. Библиотека для написания юнит-тестов JUnit.

Quick Start

краткая инструкция для запуска программы

Main tasks

  • Get list of friends of user
  • Graph-visualizator
  • Tests

Rules for contributors

  • 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

Tests

  • There must be individual branch for tests. This branch wont be merged in master ever!

summerpracticevkfriends's People

Contributors

light5551 avatar aaapetrova avatar yawningstudent avatar

Watchers

James Cloos avatar  avatar

Forkers

aaapetrova

summerpracticevkfriends's Issues

Список друзей

предоставить функцию, когда выдает список друзей определенного юзера

Демо граф

нужно,чтобы была функция, которая принимает например имя начального пользователя и список пользователей- его друзей. и по этим данным строился граф. То есть надо построить одну вершинку и от нее линии ко всем другим

Разобраться с vk_api

Найти метод в api, позволяющий получить список друзей определенного пользователя по ссылке на страницу в вк. Создать класс адаптер, позволяющий делать запросы в вк

Внешний вид вершины

Вершина должна быть оформлена кругом, внутри должна быть фотка, а также если человек в онлайне, то оно должно быть как то оформлено, например кружок рядом с фоткой или (что легче) грань окрашивать в какой то цвет

Найти библиотеку для тестирования.

Найти либу на java, которая помогает в тестировании. Написать пример использования. Для примера можно привести пару функций, которые просто возвращают значения

static int getInt(int x) {
return x + 2;
}
...

Нужно чтобы при запуске тестирования было видно прошел тест или нет.

Разобраться какую либу использовать для визуализации

Возможно JavaFx или Java-Swing. Стоит разобраться какую стоит использовать в проекте. Сама задача состоит в том, чтобы создать wiki страницу, где будет указаны ссылки на полезные ресурсы, а еще лучше участок кода с пояснениями и его результат с использованием выбранной либы.

Добавить начальное окошко

начальное gui, на которой есть поле куда вводить id и кнопочка, по нажатию кнопочки нужен какой то вызов функции. Должен быть отдельный класс, или еще лучше пакет

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.