Образец Технического задания на разработку портал знакомств

Образец Технического задания на разработку портал знакомств

 1. Общие сведения

 1.1 Перечень работ

- создание дизайна;

- адаптивная верстка;

- создание сайта (backend , frontend).

 1.2 Перечень документов для создания сайта:

- Техническое задание

 1.3 Основные сведения о проекте:          

Мультиязычный портал (изначально представлен с двумя языками - русским и английским) направленный на формирование удобной среды для знакомства пользователей.

1.4  Аудитория сайта

- люди возрастом от 24 лет, с доходом выше среднего (необходимо учесть это при разработке дизайна), желающие приятно провести свой досуг.

 1.5 Адрес будущего сайта

  • n/a

 2. Требования к разработке сайта

 2.1  Требование к системе управления контентом сайта

Выбранный стек — Yii2 и Bootstrap.

 2.2 Требования к административному интерфейсу

Административный интерфейс предоставляет возможность контроля над контентом проекта и выполнения следующих действий:

- добавление, редактирование, отключение и удаление любых элементов контента (страницы, услуги), предусмотренных на сайте;

- создание мультиязычных версий и перевод существующих элементов для отображения на различных языках;

 Предусмотреть две роли – администратор (полный доступ) с  возможность добавления групп пользователей и управления их правами, и модератор с ограниченными  правами доступа. Права доступа модератора к разделам могут быть заданы/изменены администратором сайта.

 Обязательная визуальная поддержка действий пользователя – т.н. «интерактив» (визуальное отображение  активных, пассивных ссылок; четкое обозначение местонахождения пользователя).

 2.3 Требования к средствам просмотра/верстке

Сайт должен обеспечивать корректное отображение данных в следующих браузерах:

- Firefox (последних версий);

- Chrome (последних версий);

- Safari (последних версий);

2.4 Требования к компоновке страниц

Стандартный размер ширины контента составляет 1200 пикселя для ПК. Выравнивание сайта по центру экрана.

2.5 Версия сайта для мобильных телефонов/планшетов

Разрабатывается адаптивная версия сайта.

Обязательно корректное отображение и перестройка всех элементов на таких разрешениях:

1) Мониторы и ноутбуки:

-         1920x1080 (монитор 24 дюйма);

-         1680x1050 (монитор 21-22 дюйма, большие ноутбуки);

-         1280x800 (ноутбуки 15 дюймов);

-         1024x768 (нетбуки 13-14 дюймов);

-         800х600 (нетбуки 10-11 дюймов).

2) Планшеты с учетом альбомной ориентации:

-         768х1024, 1024x768

-         1024х1366, 1366х1024

-         768x1366, 1366x768

-         1536x2048, 2048x1536

-         800х1280, 1280x800

3) Смартфоны с учетом альбомной ориентации:

-         320х480, 480х320

-         320х568, 568х320

-         360х640, 640х360

-         480х800, 800х480

-         540х960, 960х540

-         375х667, 667х375

-         414х736, 736х414

-         412х732, 732х412

2.6 Стандарты

HTML5/CSS3. HTML - должен содержать минимум ошибок (допускаются лишь те, которые обеспечивают кроссбраузерность) и максимально соответствовать  валидации по стандарту  http://validator.w3.org.   и https://developers.google.com/speed/pagespeed/

2.7 Скорость работы сайта

Первое открытие любой страницы сайта не должно превышать 3 секунд. Допускается отображение основной части контента в рамках 3 секунд и затем подгрузка некритичных элементов.

 Повторное открытие (перезагрузка) любой страницы сайта не должно превышать 2 секунд. Допускается отображение основной части контента в рамках 2 секунд и затем подгрузка некритичных элементов.

Для ускорения работы сайта минимально необходимо - выполнить все базовые рекомендации стандартного средства проверки Google (агрегация и сжатие файлов стилей и скриптов, перемещение их по возможности в футер, оптимизация картинок, склейка иконок в спрайты где это возможно, включение кеша и сжатия страниц и пр.)

 Время открытия проверяется на кабельном (не мобильном) интернете.

 Создать кеширование данных, для ускорения работы сайта. 

2.8 Требования к установке дополнительных кодов отслеживания

Использовать google tag manager. 

2.9 Устойчивость к нагрузкам

Сайт необходимо проверить на устойчивость к нагрузкам внешним сервисом. 

2.10 Требования к стилистическому оформлению дизайна

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

Шрифты – семейства PT Sans и Open Sans. Должны быть читабельными учитывая адаптивность на планшетах и телефонах. PT Sans используется для заголовков, а open Sans для текста.

Наличие Faviconа обязательно.

Кнопки с элементами динамики (hover), когда курсор наведен на элемент, но при этом элемент еще не активен (кнопка не нажата), должны быть выполнены с помощью html и css. 

2.11 Поисковая оптимизация

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

Для картинок – возможность добавления alt/title

Основные заголовки страниц – тег h1

В редакторе текста должна быть возможность простановки тегов h1-h3

URL страниц формируется в виде ЧПУ

Автоматическое формирование XML-карт сайта (1 карта на 1 язык) 

2.12 Безопасность

Защищенный вход в систему управления контентом сайта.

Защита базы данных от внешнего вмешательства.

Подключение протокола https.

Проактивная защита (модуль реализует защитный комплекс для сайта). 

2.13 Ошибки и доработки

Ошибка – несоответствие выполненной работы данному техническому заданию, неправильное отображение сайта на одной/ом из утвержденных платформе/браузере. Ошибки устраняются без доплат на основании тестирования сайта.

Доработка – внесение дополнений или изменений в дизайн и/или функционал сайта, которые не зафиксированы данным техническим заданием. Доработки оговариваются и оцениваются по стоимости и срокам дополнительно.

2.14 Гарантийные обязательства

После сдачи сайта, разработчик предоставляет год гарантии работоспособности без перебоев сайта, при условии отсутствия правок в коде сайта, и при отсутствии переноса сайта на другой сервер (хостинг). 

2.15 Краткое описание основных функциональных блоков/модулей

Отдельно и детально функционал расписан в п.4.

Данный пункт 2.15 представлен только для обозначения основного функционала сайта.

  • регистрация пользователей (мужчины и женщины);
  • поиск по критериям;
  • личные кабинеты пользователей;
  • чат;
  • фильтрация и выборка пользователей по параметрам;
  • модули оплаты;
  • модуль знакомств;
  • отслеживание заказов/покупок пользователей;
  • каждый пользователь может оставить свой email в блоке “рассылка новостей” для получения на почту информации;
  • перевод статических страниц / блоков / элементов администратором сайта;
  • боты.

 2.16 Разрешения и ограничения для полей данных

При появлении в поле ошибки необходимо как-то информировать пользователя о ее причине - на выбор программиста):

  • почта не может совпадать с паролем (полное совпадение);
  • пароль должен быть написан латинскими символами, состоять как минимум из 6 символов, включая цифры и буквы;
  • при введении данных в поле почта с данным new@user должна появиться ошибка о введении некорректных данных;
  • нельзя использовать все заглавные символы в поле - пароль;
  • содержание в полях “почта” и/или “пароль” пробелов и/или содержащийся только из пробелов запрещается и выдает ошибку о введении некорректных данных;
  • в полях для заполнения должны присутствовать подсказки, какая информация должна быть в этом поле (например: Введите текст сообщения) и исчезать при вводе данных;
  • при введении верного логина и пароля - успешно залогинен;
  • при введении корректного логина и некорректного пароля - должен выдавать ошибку;
  • при введении некорректного логина и корректного пароля - должен выдавать ошибку с указанием причины;
  • при введении некорректного логина и некорректного пароля - ошибка с указанием причины;
  • при введении в поле логина правильный логин начинающийся с нескольких пробелов и корректный пароль - выдает ошибку с указанием причины;
  • при введении в поле правильного логина, после которого стоит несколько пробелов и правильный пароль - ошибка с указанием причины;
  • установить фокус на поле логина. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на поле пароля. Ввести текст. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на галочку “remember me”. Нажать кнопку Space на клавиатуре. Expected: появилась галочка. Нажать кнопку Tab на клавиатуре. Expected: фокус перемещается на кнопку Login. Нажать кнопку Enter на клавиатуре. Expected: процесс пошёл.
  • залогиниться под корректными логином/паролем. Переименовать аккаунт. Перегрузить браузер. Залогиниться под старыми логином/паролем. Expected: не пускает. Залогиниться под новым логином/паролем. Expected: пускает.

2.17 Требования к сервисам статистики

Просмотр базовой статистики посещений ( Google Analytics стандартный отчет или Яндекс.Метрика), типовых взаимодействий посетителей сайта.

  1. Страницы
  2. Главная

Для незарегистрированных пользователей главная представляет собой лендинг о возможностях сайта, с предложением зарегистрироваться / войти в ручном режиме или посредством входя через социальную сеть или почту.

Для зарегистрированных - переход на страницу поиска

  1. Поиск

Представляет собой страницу с карточками пользователей, выведенных согласно настройкам поиска зарегистрированного пользователя. Результаты поиска выводятся плиткой по 3-4 элемента в ряд, в зависимости от размера экрана пользователя. Подгружаются по 5 рядов с последующей подгрузкой аяксом. При клике на выбранную плитку происходит переход на страницу выбранного пользователя.

  1. Сообщения

Представляет собой страницу из трех функциональных областей.

  1. Симпатии

Представляет собой страницу с собранной статистической информацией о взаимодействиях с другими пользователями.

  1. Знакомства.
  2. Личный кабинет

Представляет собой страницу предоставляющую пользователю возможность операций с личной информацией, настройками и пополнением. 

  1. Детальное описание функционала

 4.1 Пользователи и посетители

Типы посетителей на сайте:

- незарегистрированные посетители;

- пользователи;

- менеджер;

- администратор.

 Регистрация пользователя

Любой пользователь может пройти простой процесс регистрации, указав только свой email. После пользователю приходит уведомление на сайте что на его почту отправлено письмо с верификацией его почты.

Письмо содержит в себе ссылку, после перехода по которой профиль пользователя подтверждается и пользователь попадает в личный кабинет, где он обязательном порядке должен заполнить поля:

  • фото
  • имя;
  • возраст;
  • рост
  • пол;
  • цель знакомства;
  • страна, город (определяются автоматически, пользователь может отредактировать вручную);
  • курение, алкоголь.
  • параметры внешности (рост, вес, телосложение, цвет волос/глаз, размер груди);
  • интересы;

После заполнения все этой информации пользователю предоставляется доступ к остальным страницам сайта.

 Регистрация менеджера и/или администратора

Не предусмотрена. Только в ручном режиме.

 4.2 Функционал страниц

4.2.1 Страница поиска

Настройками для пользователя служат критерии:

         Параметры списка доступны для всех пользователей:

  • город (выпадающий список);
  • возраст (диапазон, ползунок);
  • рост (диапазон, ползунок);
  • вес

          Параметры списка доступны для премиум пользователей:

  • размер груди
  • телосложение
  • цвет волос
  • цвет глаз
  • подтвержденное фото
  • цель знакомства
  • курение
  • алкоголь

 В плитке выводится информация:

  • фото (суммарное количество фотографий);
  • имя;
  • возраст;
  • город;
  • страна;
  • статус в сети/не в сети;
  • кнопка - возможность добавить в избраное
  • кнопка - написать пользователю

 4.2.2 Сообщения

Представляет собой страницу из трех функциональных областей

  • верхняя область - область фильтров, где расположены функциональные элементы позволяющие отфильтровать переписку по категориям:
    • все контакты;
    • контакты с непрочитанными сообщениями;
    • сообщения от избранных контактов;
    • заблокированные контакты.
  • левая область - содержит:
    • фильтр;
    • количество доступных контактов;
    • список контактов с которыми происходит переписка.
  • правая область - поле для переписки. Необходимо предусмотреть возможность отправки смайликов из каталога, подарков из каталога и подгрузку фотографий.

 4.2.3 Симпатии

Страница позволяет вывести отфильтрованные значения по категориям активности пользователя:

  • кто просматривал страницу пользователя;
  • совпадения с пользователями сайта из раздела Знакомств;
  • избранные контакты;
  • список пользователей, которым пользователь поставил лайк;
  • список пользователей которые поставили лайк пользователю.

 4.2.4 Личный кабинет пользователя

В личном кабинете пользователю предоставляется возможность работ с:

  • профиль
    • пополнение баланса
    • задать/изменить свою личную информацию:
      • основное фото;
      • фото в галерее;
      • имя;
      • возсраст;
      • рост;
      • пол;
      • цели знакомства;
      • курение;
      • алкоголь;
      • о себе;
      • телосложение;
      • вес;
      • цвет волос;
      • цвет глаз;
      • размер груди (если пользователь женского пола);
      • интересы;
      • подключить соц. сети;
      • контактный номер телефона.
    • настройки;
      • изменение пароля;
      • активация / деактивация режима инкогнито;
      • активация / деактивация механизма автоматического продления премиум статуса;
      • активация / деактивация механизма автоматической покупки кредитов;
      • подключение социальных сетей;
      • активация / деактивация механизма автоматического уведомления о событиях;
      • механизм скрытия профиля;
      • механизм удаления профиля.

 4.2.5 Знакомства

Модуль  знакомств представляет собой страницу с автоматически подключаемыми карточками пользователей, которые территориально находятся ближе к пользователю. Карточка состоит:

  • фотография пользователя;
  • возраст пользователя;
  • кнопки управления - поставить лайк, отклонить карточку, вернуть предыдущую карточку.

Если оба пользователя поставят друг другу лайк - то становится доступен механизм чата между этими пользователями (платная услуга).

Принцип подбора карточек - ограничен, и происходит по заданному алгоритму и с интервалом. Основной подбор кандидатов происходит согласно желаемым настройкам пользователя в личном кабинете - пол, возраст, город. Выборка подается в процентном соотношении - часть из его города, часть из +80 км зоны, часть их пользователь который подобрали “топ знакомств”. В зависимости от количества лайков и дизлайков, происходит подача новых кандидатов. Но не более T карточек за Y часов.

 4.2.6 Боты

Необходимо предусмотреть возможность наличия, функционирования ботов на сайте:

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

Если пользователь премиум - бот формирует выборку из реальных пользователей сайта противоположного пола.

 4.2.7 Парсер

Для наполнения базы необходимо единоразово спарсить данные анкет пользователей с сайта https://atr.one/ На усмотрение разработчика следует разработать парсер и получить в базу не менее 3000 анкет пользователей. Полученные анкеты должны содержать :

  • город (страна);
  • каталог фотографий;
  • пол;
  • возраст;
  • рост;
  • размер груди;
  • цвет глаз;
  • цвет волос.

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

 4.2.8 Кредиты

Внутренняя валюта сайта, используя которую можно проводить оплату услуг внутри сайта. Отображается на балансе пользователя. Пополнение происходит посредством использования платёжного модуля или платёжного агрегатора

 4.2.9 Услуги      

  • поиск и выборки на сайте:
    • “топ знакомств” - позволяет пользователям чаще попадать в выборку к другим пользователям при использовании страницы знакомств.  Если пользователь ранее отклонил кандидатуру поднятого в топ “знакомств” - то этот кандидат ему появляется реже чем остальным, но при этом выводится сообщение что этот пользователь недавно просматривал вашу страницу, приглядитесь к нему.
    • “топ поиск” - на странице поиска (доступна только для премиум пользователей), вначале выводится кандидаты частично подходящие ему по критериям поиска но оплативших услугу “топ поиск”. После выводятся максимально релевантные для него результаты.
    • “закрепить в ленте” - N мини карточек пользователей закрепляется в линии на K часов. При клике - пользователь переходит на страницу кандидата оплатившего услугу.
  • показать номер телефона пользователя - при просмотре личной страницы другой пользователя, гость этой страницы, при наявности скрытых контактных данных пользователя - можем выкупить право открыть каждый контакт в отдельности - почта, телефоны, контакты в соц сетях.
  • верификация фото - каждый пользователь может подать заявку согласно установленного регламента на верификацию своих фото. Подтверждает админом после оплаты.
  • подарки - каждый пользователь можем подарить другому пользователю подарок из каталога. После этого они отображаются на странице пользователя. Администратор может создать новый, отредактировать или удалить уже существующий;
  • контакты - у пользователя изначально ограниченное количество контактов (количество пользователей, с которыми он может переписываться). Пользователю предоставляется возможность докупать нужное ему количество контактов;
  • знакомства - вернуть предыдущую карточку;
  • знакомства - написать пользователю подобранному системой без взаимного лайка;
  • премиум статус - пользователь может приобрести премиум статус на установленный администратором срок. При этом у него снимаются все ограничения на общение и поиск;
  • разовая покупка
    • показать кто поставил симпатию;
    • активировать чат с выбранным контактом.
  • скрытые альбомы
    • открыть скрытый альбом при согласии владельца;
    • открыть скрытый альбом без согласия владельца.
  • чат - пользователь может общаться с другими пользователями посредством интерактивного чата. Блок с чатом обновляет автоматически и незаметно для пользователя. Первое сообщение в чате для пользователя платное, для возможности вести переписку с выбранным контактом - необходимо оплатить разовый пропуск (цена устанавливается администратором сайта), либо приобрести премиум. Переписка для пользователей девушек - бесплатна. Необходимо предусмотреть возможность отправки в чат:
    • смайлов из каталога сайта;
    • подгрузку фотографи;
    • подарков из каталога сайта.
  1. Административная часть сайта

5.1 Вход в админ панель

Осуществляется по ссылке адрес_сайта/ххх, где ххх - это админ выражения по типу: admin, administrator, content, etc

С использованием полей для входа:

- логин

- пароль

 5.1.1 Необходимые требования к паролю:

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

В админ части должны быть списки существующих на сайте элементов с возможностью редактирования, перевода, удаления, скрытия таких элементов.

5.2. Список всего контента (страниц)

В табличном виде и пагинацией (по 50 строк на странице) и фильтрами для поиска. Фильтры: заголовок (поиск выполняется по частичному совпадению), тип страницы, email (поиск выполняется по частичному совпадению), статус (опубликовано или нет), период времени в виде промежутка дат «от» и «до» (например, от 1 февраля 2017 до 1 мая 2017) - добавления страницы и последнего обновления страницы.

Для каждой строки-страницы в таблице выводить список параметров (те же по которым возможна фильтрация). И ссылки на просмотр (в новом окне), редактирование (в новом окне), снятие с публикации (в новом окне с подтверждением) удаления (в новом окне с подтверждением).

Заголовок каждого столбца таблицы должен быть кликабельным – при клике включается сортировка по данному столбцу по возрастанию. При следующем клике – сортировка по данному столбцу по убыванию. При третьем клике – снова по возрастанию и т.д.

Возле каждой строки должен быть чекбокс для массовых операций и чекбокс в заголовке таблицы для выбора вообще всех строк в списке ниже с учетом фильтров. Массовые операции – удаление, снятие с публикации, публикация. Все массовые операции выполняются с подтверждением.

Страницы/элементы, снятые с публикации, остаются в системе админ-части, но для посетителей не показываются. В частности, для страниц – выдают ошибку 404.

Поиск с помощью фильтров осуществляется без перезагрузки страницы. Вверху над таблицей результатов выводится суммарное количество строк в таблице и кол-во показанных элементов. Например: «Показаны 1-37 элементы из 37», «показаны 50-100 элементы из 148»

Внизу таблицы – кнопка по нажатию на которую экспортируется и автоматически скачивается вся таблица c учетом фильтров (все строки вместе с заголовками) в формате xls или csv.

 5.3 Возможность добавления контента на сайт (страницы, баннеры, пользователи)

Можно реализовать как на отдельной странице, так и встроить в существующие таблицы.

Для текстовых областей наполнения сайта для администратора должна быть возможность включения/отключения текстового редактора, например, CKEditor или любой другой, где есть возможность:

  • базовой правки текста, подчеркивания, выделения жирным;
  • центрирования (лево, центр, право, на всю ширину);
  • добавления картинок с загрузкой картинок на сервер;
  • выбор форматирования текста в виде заголовков h1-h6;
  • выбор размера шрифта;
  • добавление абзацев, переносов строки.

 5.4  Мультиязычность

Предусмотреть возможность добавления нового языка. Реализация функционала перевода – на усмотрение исполнителя. На сайте мультиязычный функционал реализован по ip пользователя. 

Язык по умолчанию и языковая версия сайта по умолчанию - русская. Предусмотреть, что будут добавляться несколько языков, в том числе: английский.

 5.4.1 Язык админ-части – русский, в том числе при добавлении/правках мультиязычного контента. Т.е. если изменяется страница на английском – язык админки русский, если изменяется страница на испанском – страница все равно на русском.

 5.5 Пользователи

5.5.1 Добавление / Удаление / Редактирование  пользователей

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

 5.5.2 Назначение прав пользователей

Предусмотреть возможность для администратора, редактирование прав доступа для класса пользователей “менеджер”

 5.5.3 Блокировка пользователей

5.5.3.1 Ручная блокировка

Администратор или менеджер может заблокировать любого зарегистрированного посетителя.  Если заблокированный посетитель пытается авторизоваться на сайте (вводит email и пароль), то он получает сообщение что аккаунт был заблокирован в связи с нарушением правил сайта и предложением отправить стандартную вебформу обратной связи с апелляцией на блокировку).

 5.5.3.2 Блокировка по IP

В админ-части сайта либо в файле на сервере должен быть список адресов, куда можно добавлять отдельный адреса либо списки адресов, которым блокируется доступ к сайту.

 5.6 Управление платными услугами

Администратор и менеджер, согласно правам доступа, обладают правами удаления, редактирования всех существующих платных услуг, представленных на сайте.

При выполнении удаления подарка - система должна запрашивать подтверждение на эту операцию. При этом он не удаляется, а становится недоступным для покупки. Администратор может добавлять новые подарки из админки.

 6 Ошибки 403, 404

Должны быть представлены в виде кастомных страниц для каждого языка. Т.е. в админке можно управлять содержимым этих страниц.

При этом сайтбаров на этих страницах нет – только шапка, введенный текст/картинки/ссылки и футер.