Архитектура - GeeksTricks/Quantisk GitHub Wiki

Компоненты

images/architecture_overview.jpg

  1. Веб-интерфейс пользователя и администратор – веб-сайт, являющийся интерфейсом для работы пользователя и администратора. Пользователь имеет возможность просматривать общую и ежедневную статистику.
  2. Краулер – это служба, которая по определенному расписанию, или принудительно, обращается к сайтам в интернете. Анализирует их на наличие новых страниц. Загружает новые страницы, после чего обрабатывает контент новой страницы. Результаты обработки и ссылку на новую страницу записывает в Базу Данных. Результатом обработки является количество упоминаний имен политиков на странице сайта.
  3. Веб-сервис – транслирует запросы от Мобильного и Десктопного интерфейсов пользователя, в SQL запросы к базе данных. Результат, полученный от запроса, передает обратно Мобильному и Десктопному интерфейсу.
  4. Мобильный интерфейс пользователя – приложение, разработанное для мобильной платформы AndroID, для работы пользователя. Пользователь получает возможность просматривать общую и ежедневную статистику.
  5. Десктопный интерфейс администратор – приложение, разработанное для деcктопной версии Windows. Администратор получает возможность настраивать работу системы, заполнять справочники, а также просматривать общую и ежедневную статистику.

Модель данных v1.0

images/basic_auth_db.png

  1. Persons (личности)– таблица базы данных, отвечающая за хранение имен личностей. Каждой личности соответствует от 0 до бесконечности пар ключевых слов.

    Имя столбца Описание Тип Пример
    id Идентификатор личности int 1
    name Наименование личности nvarchar(255) «Дикаприо»
  2. Wordpairs (пары ключевых слов) - таблица базы данных, отвечающая за хранение пар ключевых слов и расстояния между ними. В каждой статье будут искаться два ключевых слова не дальше, чем через заданное количество слов друг от друга. Каждой паре ключевых слов соответствует только одна персона.

    Имя столбца Описание Тип Пример
    id Идентификатор пары int 1
    keyword_1 Первое ключевое слово nvarchar(255) 1
    keyword_2 Второе ключевое слово nvarchar(255) 1
    distance Максимальное расстояние между ключевыми словами int 1
    person_id Идентификатор личности int 1
  3. PersonPageRank (рейтинг личности на странице сайта) – таблица базы данных, отвечающая за хранение рейтинга личности на обработанной странице. Рейтинг - это количество статей на странице, в которых встречается одна из пар ключевых слов, располагающихся на определенном расстоянии.

    Имя столбца Описание Тип Пример
    rank Рейтинг int 2
    page_id Идентификатор страницы сайта, на которой найдена пара ключевых слов. Является внешним ключом к таблице Pages int 1
    person_id Идентификатор личности, которой соответствует данная пара ключевых слов. Является внешним ключом к таблице Persons. int 1
  4. Pages (страница сайта) – таблица базы данных, содержащая страницы сайта, которые были найдены при анализе сайтов из таблицы Sites.

    Имя столбца Описание Тип Пример
    id Идентификатор страницы int 1
    url Полный URL адрес страницы nvarchar(255) «http://lenta.ru/rubrics/world/»
    site_id Идентификатор сайта (ресурса). Является внешним ключом к таблице Sites. int 2
    found_date_time Дата и время обнаружения страницы системой datetime “10-10-2015 15:23”
    last_scan_date Дата и время последней проверки на упоминания datetime “03-04-2015 15:23”
  5. Sites (сайт) – таблица базы данных, содержащая названия сайтов для анализа на упоминания.

    Имя столбца Описание Тип Пример
    id Идентификатор сайта int 1
    name Наименование сайта nvarchar(255) «lenta.ru»
  6. Users (пользователи) – таблица базы данных, отвечающая за хранение информации о пользователях.

    Имя столбца Описание Тип Пример
    id Идентификатор пользователя int 1
    login Логин пользователя nvarchar(255) «lenta.ru»
    pass_hash Хэш от пароля nvarchar(255) dfghjklfghjk

Модель данных v2.0

images/auth_db.png

  1. Persons (личности)– таблица базы данных, отвечающая за хранение имен личностей. Каждой личности соответствует от 0 до бесконечности пар ключевых слов.

    Имя столбца Описание Тип Пример
    id Идентификатор личности int 1
    name Наименование личности nvarchar(255) «Дикаприо»
  2. Wordpairs (пары ключевых слов) - таблица базы данных, отвечающая за хранение пар ключевых слов и расстояния между ними. В каждой статье будут искаться два ключевых слова не дальше, чем через заданное количество слов друг от друга. Каждой паре ключевых слов соответствует только одна персона.

    Имя столбца Описание Тип Пример
    id Идентификатор пары int 1
    keyword_1 Первое ключевое слово nvarchar(255) 1
    keyword_2 Второе ключевое слово nvarchar(255) 1
    distance Максимальное расстояние между ключевыми словами int 1
    person_id Идентификатор личности int 1
  3. PersonPageRank (рейтинг личности на странице сайта) – таблица базы данных, отвечающая за хранение рейтинга личности на обработанной странице. Рейтинг - это количество статей на странице, в которых встречается одна из пар ключевых слов, располагающихся на определенном расстоянии.

    Имя столбца Описание Тип Пример
    rank Рейтинг int 2
    page_id Идентификатор страницы сайта, на которой найдена пара ключевых слов. Является внешним ключом к таблице Pages int 1
    person_id Идентификатор личности, которой соответствует данная пара ключевых слов. Является внешним ключом к таблице Persons. int 1
    user_id Идентификатор пользователя, создавшего личность. int 1
  4. Pages (страница сайта) – таблица базы данных, содержащая страницы сайта, которые были найдены при анализе сайтов из таблицы Sites.

    Имя столбца Описание Тип Пример
    id Идентификатор страницы int 1
    url Полный URL адрес страницы nvarchar(255) «http://lenta.ru/rubrics/world/»
    site_id Идентификатор сайта (ресурса). Является внешним ключом к таблице Sites. int 2
    found_date_time Дата и время обнаружения страницы системой datetime “10-10-2015 15:23”
    last_scan_date Дата и время последней проверки на упоминания datetime “03-04-2015 15:23”
  5. Sites (сайт) – таблица базы данных, содержащая названия сайтов для анализа на упоминания.

    Имя столбца Описание Тип Пример
    id Идентификатор сайта int 1
    name Наименование сайта nvarchar(255) «lenta.ru»
    user_id Идентификатор пользователя, добавившего сайт int 1
  6. Users (пользователи) – таблица базы данных, отвечающая за хранение информации о пользователях.

    Имя столбца Описание Тип Пример
    id Идентификатор пользователя int 1
    login Логин пользователя nvarchar(255) «lenta.ru»
    pass_hash Хэш от пароля nvarchar(255) dfghjklfghjk
    role Код роли пользователя, определяющей права доступа. int 1