Цель системы
Цель системы – предоставление удобной системы публикации, получение и оценки материалов (публикаций).
Структура системы
Систему можно представить как совокупность нескольких интегрированных подсистем:
Хранилище;
Подсистема публикации;
Подсистема доступа;
Подсистема поиска;
Подсистема оценки;
Подсистема управления.
Сценарии работы с системой
В данном разделе будут перечислены наиболее популярные сценарии работы с системой.
Регистрация пользователя
Подсистема доступа приложения предназначена для проведения аутентификации и авторизации
пользователя на основе классических идентификаторов – имени (login) и пароле. Подсистема
доступа должна реализовывать такие функции как:
Регистрация нового пользователя;
Определение прав доступа;
Блокировка пользователя.
Регистрация пользователя осуществляется самим пользователем. Ему необходимо указать имя
(login) и email, куда будет пароль доступа. На текущем этапе разработки приложения,
дополнительная информация о пользователе отсутствует.
На данном этапе разработки приложения, зарегистрированный пользователь будет обладать
возможностью чтения и оценки публикаций, иметь возможность размещать собственные
публикации.
Администратору системы будут доступны дополнительные возможности: блокировка
пользователя, удаление публикации.
Настройка структуры хранилища. Создание каталога
Для хранения данных системы должно быть предусмотрено хранилище. В качестве хранилища
может использоваться любая реляционная СУБД.
Для более удобного управления публикациями предлагается использовать структуру каталогов.
Каждая публикация должна располагаться в одном из каталогов. Сами каталоги, в свою очередь,
составляют иерархию – каждый каталог кроме публикаций может содержать ряд других
каталогов.
На усмотрение разработчика, вместо каталогов может использоваться облако тегов. Каждая
публикация может быть помечена одним или несколькими тегами.
Публикация материала
Каждый зарегистрированный пользователь имеет возможность опубликовать материал.
Материал загружается на сайт в виде файла PDF. После загрузки, материалу назначается каталог
хранения и ряд дополнительных атрибутов: название публикации, краткое описание.
Поиск публикации
На данном этапе разработки приложения, должен быть предусмотрен поиск публикаций по его
атрибутам. Поиск должен быть доступен любому пользователю, в том числе
незарегистрированному.
Результатом поиска должен быть список публикаций и их атрибутов.
Оценка публикации
Каждая публикация может быть оценена зарегистрированным пользователем по пятибалльной
системе. Особенностью системы оценки данного приложения является алгоритм выравнивания
оценки публикаций. Смысл данного алгоритма – добиться равномерной оценки всех публикаций.
Под выравниванием понимается назначение одинакового (приближенного) количества оценок
для всех материалов.
Если пользователь желает поставить оценку публикации, которая имеет максимальное или
равное количество оценок по сравнению с другими публикациями, то выставленная оценка будет
принята только в том случае, если пользователь дополнительно оценит публикацию с меньшим
количеством оценок.
Рассмотрим работу алгоритма на примере.
Этап 1
Допустим, в системе зарегистрировано два пользователя и опубликовано три материала.
|
Пользователь 1 |
Оценил материал 1, материал 2 |
|
Пользователь 2 |
Оценил материал 2, материал 3 |
|
Материал 1 |
Оценка 4 |
|
Материал 2 |
Оценка 3, Оценка 4, |
|
Материал 3 |
Оценка 5 |
Этап 2
Если пользователь 2 захочет оценить материал 1, то система примет его оценку без каких-либо
ограничений и дополнительных действий для пользователя.
Если пользователь 3 захочет оценить материал 3, то система так же примет оценку без
ограничений. Данные системы после таких действий будут выглядеть следующим образом:
|
Оценил материал 1, материал 2, материал 3 |
|
|
Пользователь 2 |
Оценил материал 2, материал 3, материал 1 |
|
Материал 1 |
Оценка 4,Оценка 5 |
|
Материал 2 |
Оценка 3, Оценка 4, |
|
Материал 3 |
Оценка 5, Оценка 4 |
Этап 3
По аналогии с предыдущим сценарием допустим оценку пользователя 1. В след за этим, в системе
будет зарегистрирован новый пользователь 3.
|
Пользователь 1 |
Оценил материал 1, материал 2, материал 3 |
|
Пользователь 2 |
Оценил материал 2, материал 3 |
|
Пользователь 3 |
|
|
Оценка 4 |
|
|
Материал 2 |
Оценка 3, Оценка 4, |
|
Материал 3 |
Оценка 5, Оценка 4 |
Этап 4
Новый пользователь 3 решил оценить материал 2. Однако алгоритм выравнивания предлагает после приема оценки пользователя 3 материала 2, оценить материал 1, так как он имеет минимальное количество оценок.
|
Пользователь 1 |
Оценил материал 1, материал 2, материал 3 |
|
Пользователь 2 |
Оценил материал 2, материал 3 |
|
Пользователь 3 |
Оценка материала 2 выставлена, но не принята |
|
Оценка 4 |
|
|
Материал 2 |
Оценка 3, Оценка 4, Принята Оценка 4 |
|
Материал 3 |
Оценка 5, Оценка 4 |
Этап 5
Пользователь 3 оценивает материал 1 и система принимает обе оценки (и за материал 2 и за
материал 1).
|
Пользователь 1 |
Оценил материал 1, материал 2, материал 3 |
|
Пользователь 2 |
Оценил материал 2, материал 3 |
|
Пользователь 3 |
Оценил материала 2, материал 1 |
|
Материал 1 |
Оценка 4, Оценка 5 |
|
Материал 2 |
Оценка 3, Оценка 4, Оценка 4 |
|
Материал 3 |
Оценка 5, Оценка 4 |
Используемы инструменты разработки
Каких либо ограничений на используемый инструментарий не ставится. Разработчик должен самостоятельно выбрать необходимый инструментарий.
