Statement of work (web site) - GeekBrainsCommunityofAlumni/Statistics 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.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. Поддержка нескольких параллельно запущенных краулеров.