ТЗ - GeekBrainsRepository/PersonRank GitHub Wiki

1. Создать сайт для нашей компании. Сайт содержит следующие страницы:

1.1. Страница «О компании». Содержит:

####1.1.1. Текстовое описание компании. ####1.1.2. Фотографии / аватарки всех участников разработки ####1.1.3. Роль каждого участника в компании ####1.1.4. Краткая история основания(~ 4 строчки) ###1.2. Страница с описанием продукта «Продукт»: ####1.2.1. Видео на фоне на котором демонстрируется функционал программы. ####1.2.2. Краткое, но емкое описание программы.

  • Для чего;
  • Что умеет бесплатная версия;
  • Что умеет платная версия;
  • Пара ярких слов о лучшей тех. поддержке.
  • Ссылки на скачивание мобильных и десктопных приложений
  • Ссылки на все веб-интерфейсы

###1.3. Страница «Техническая помощь»: ####1.3.1. FAQ ####1.3.2. Задать вопрос в тех. поддержку ###1.4. Страница «Связь»: ####1.4.1. Форма обратной связи ####1.4.2. Телефон/e-mail ###1.5. Страница «Отзывы»: ####1.5.1. Добавить отзыв ####1.5.2. Список отзывов(Имя, фирма, отзыв, дата) #2. Добавить авторизацию. ###2.1. Регистрация нового администратора. ####2.1.1. Интерфейс администратора дает возможность зарегистрировать новую учетную запись администратора. ####2.1.2. С этой учетной записью можно заходить как в интерфейс администратора, так и интерфейс пользователя. ####2.1.3. У каждого администратора в интерфейсе отображается только те личности, которые были добавлены этим администратором. ####2.1.4. При регистрации необходимо указать свой почтовый ящик. ###2.2. Регистрация пользователя. ####2.2.1. Интерфейс администратора позволяет добавлять и удалять учетные записи пользователей. ####2.2.2. Пользователи видят статистику только по тем личностям, которых добавил их администратор. ####2.2.3. С учетной записью пользователя нельзя зайди в интерфейс администратора. ###2.3. Функция «Сменить пароль». ####2.3.1. Интерфейс позволяет сменить пароль текущему пользователю ####2.3.2. Интерфейс администратора позволяет сменить пароль для любого пользователя, которыми управляет администратор. ###2.4. Функция «Забыл пароль». ####2.4.1. Если пользователь забыл пароль, он имеет возможность его восстановить, получив его по почте. #3. Внедрение платной и бесплатной версии продукта ###3.1. Установление ограничений на бесплатную версию ####3.1.1. Если администратор хочет добавить больше 3-х сайтов на обход, он получает сообщение, что данная функция поддерживается только в платной версии продукта. ####3.1.2. Если администратор хочет добавить более 5 личностей, он получает сообщение, что данная функция поддерживается только в платной версии продукта. ####3.1.3. Если администратор хочет добавить новый сайт на обход, он получает сообщение, что данная функция поддерживается только в платной версии продукта. ###3.2. Дать возможность купить платную версию продукта #4. В интерфейс администратора добавить статистику обхода сайтов ###4.1. Для каждого сайта отображать следующую информацию: ####4.1.1. Сколько ссылок с этого сайта всего находится в БД; ####4.1.2. Сколько ссылок с этого сайта не обходилось никогда, но они уже хранятся в БД; ####4.1.3. Сколько ссылок с этого сайта уже обходилось когда-либо ####4.1.4. Обновлять счетчики без обновления страницы (ajax-ом) ####4.1.5. Отображать таблицу ссылок для каждого сайта.

  • 4.1.5.1. Столбцы таблицы соответствуют столбцам таблицы Pages в БД.
  • 4.1.5.2. Возможность отсортировать таблицу по каждому из столбцов
  • 4.1.5.3. Возможность отфильтровать таблицу по некоторым столбцам
  • 4.1.5.4. Отображать таблицу постранично (не целиком)
  • 4.1.5.5. Дать возможность выгрузить всю таблицу в csv

#5. Доработка интерфейса пользователя ###5.1. Добавить статистику за период времени ####5.1.1. Выбираем диапазон времени и сайт. ####5.1.2. Отображаем таблицу, содержащую два столбца: Личность, Количество новых страниц. ####5.1.3. Количество новых страниц содержит информацию о том, сколько было найден новых страниц на сайте, содержащих имя данной личности за указанный промежуток времени. ###5.2. Добавить статистику популярности личности на различных сайтах ####5.2.1. Выбираем личность из списка ####5.2.2. Отображаем таблицу, содержащую два столбца: «Сайт» и «Количество страниц» ###5.3. Внедрение графиков и/или диаграмм ####5.3.1. Общую статистику отображать в виде графиков и/или диаграмм ####5.3.2. Ежедневную статистику отображать в виде графиков и/или диаграмм ####5.3.3. Статистику за период отображать в виде графиков и/или диаграмм ####5.3.4. Статистику ###5.4. Выделять цветом те имена личностей, для которых мы пока не имеем полной статистики по сайту ####5.4.1. Так как при добавлении новой личности требуется какое-то время, чтобы выполнить повторный обход сайта, мы не сразу получаем актуальную информацию по личности. #6. Доработка мобильных и десктопных приложений ###6.1. Добавить «настройки», позволяющие выбирать тип используемого веб-сервиса (rest или soap) ###6.2. Добавить «настройки» позволяющие указать ссылку, по которой отвечает веб-сервис. #7. Доработка краулера ###7.1. Поддержка сайтов, не содержащих sitemap ####7.1.1. Поиск и обход ссылок на страницы сайта, найденных на странице сайта. ####7.1.2. Исключение ссылок из обхода ссылок, не соответствующих robots.txt ###7.2. Параллельный обход ссылок с различных сайтов. ###7.3. Поддержка нескольких параллельно запущенных краулеров