Создание сайта - мультисервисного портала с региональными подсайтами

1 200 000 руб. за проект • безналичный расчёт, электронные деньги
14 февраля 2016, 00:34 • 33 отклика • 129 просмотров
  • Цена указана предварительная.
  • Если здесь не читабельно, то см. в нормально отформатированном виде см. в подклеенном файле (файл формата OpenOffice Writer).
  • Техническое задание.
  • Введение. Создать сайт а точнее мультисервисный портал а точнее группу региональных сайтов, объединенных одним движком, интерфейсом, с единым списком пользователей и единым входом на все дочерние сайты (сайты регионов). Сайт мультиязычный. На сегодняшний момент требуется обязательная поддержка 3 языков (один из них русский).
  • Пункт 0. Права пользователей. Главный админ. Он должен иметь возможность создавать/удалять региональные сайты и назначать/снимать админов региональных сайтов, управлять всеми пользователями. Админы (модераторы) региональных сайтов. Должны иметь возможность публикации новостей на своем региональном сайте, должны иметь возможность публикации объявлений о предстоящих событиях и отчетов (в т.ч. фотоотчетов) о прошедших событиях, должны иметь возможность модерации (форум, объявления о купле-продаже) на своем региональном сайте. должны иметь возможность запретить пользовтелю публиковаться на региональном сайте (другие регионы при этом пользователю не запрещаются). Пользователи. Пишут на форуме, публикуют объявления о купле-продажи, подписываются на участие в событиях, получают уведомления о событиях, могут подписаться на рассылку или заполнить анкету на языковые курсы или волонтерство. Незарегистрированные, не вошедшие на сайт (незалогиненные) пользователи. Читают. Могут подписаться на рассылку или заполнить анкету на языковые курсы или волонтерство.
  • Пункт 1. Региональность, региональные сайты на отдельных доменах Сайты отдельных регионов будут размещены на отдельных доменах. Но физически сервер один общий. Возможно, это можно будет реализовать на одной базе данных, на одном движке сайта. Возможно, на отдельных базах данных, но на одном и том же движке сайта. Но список пользователей и вход на все сайты должен быть единым. Регионы огранизованы иерархически - страна, регион (область, провинция), город. До 5 уровне вложенности географической иерархии. Сайты регионов абсолютно независимы по своему содержимому. Объединяет их только список пользователей, общий движок и общий дизайн.
  • Пункт 2. Внешний вид Речь идет прежде всего о функционале движка. К внешему виду сайта не предъявляется жестких требований, вполне достаточно примерного соответствия визуальной логики черновику http://test.nationsorg.com/ При этом речь не идет о следовании этому дизайну, черновик иллюстрирует только логику отображения. Вполне годится стандартный внешний вид CSS-фреймворков Bootstrap или Foundation. Предполагается, что речь идет об удобном интерфейсе пользователя. Но разработчик не ограничивается в своем вИдении. Обращаем внимание о необходимости иметь адаптивный дизайн (специальное отображение сайта) на различных экранах, в т.ч. на смартфонах. Возможностей Bootstrap или Foundation для этого вполне возможно. См. к примеру как изменяется сайт http://foundation.zurb.com/sites/docs/ на различных устройства и различных экранах. Примерно такая адаптивная верстка и ожидается.
  • Пункт 3. Движок. Основа сайта - любая распространенная CMS на выбор разработчика. Drupal, Wordpress, Joomla и пр. Обратите внимание, возможностей уже существующих модулей определенно не хватит, разработчику обязательно придется реализовывать часть функционала самостоятельно. Требуемый функционал описан ниже.
  • Пункт 4. Управления пользователями и логин, интеграция с соц. сетями, SSO Самостоятельная регистрация пользователем, удаление/блокировка, изменение настроек пользователя, восстановление пароля, список пользователей (для админа) С поддержкой подтверждения через e-mail, через SMS (провайдер SMS вполне определенный с определенным API) Поддержка регистрации и входа через FaceBook, VKontakte, LinkedIn, Twitter, Odnoklassniki, Google+ В профиле пользователя: Возможность привязывать дополнительные соц. сети (тогда можно будет зайти из нескольких разных соц. сетей). Возможность привязывать дополнительные номера телефонов, дополнительные e-mail Возможность указывать возраст, пол, город проживания, никнейм. Ограничения на никнейм. Менять не чаще раза в день, не допускать чтобы никнеймы разных пользователей пересекались, хранить историю, пользователь может вернуться к старому никнейму. Другой пользовтель не может использовать даже уже неиспользующийся никнейм иного пользователя. Поддержка единого логин (вход) пользователя, Single Sign-On (SSO) для всех региональных сайтов, несмотря на то, что каждый регион может быть доступен по отдельному домену второго или третьего уровня. Тем не менее пользователь, зашедший на один сайт (в одном регионе), после перехода в другой регион (на другой домен) не должен входить на сайт повторно - он уже должен быть залогинен.
  • Пункт 5. GeoIP При входе на любой домен должен происходить автоматически выбор региона и языка по IP пользователя, а также должен быть доступен ручной выбор пользователем. Отображать погоду и время с учетом выбранного региона.
  • Пункт 6. Новости Админ сайта каждого региона имеет права размещать новости. Все пользователи (в том числе незарегистрированные), зашедшие на сайт этого региона могут видеть эти новости Размещение новостей производится через указание URL (а не через публикацию текста новости вручную). Админ указывает URL. Сайт парзит новость по этому URL (точнее начало новости, анонс, тизер, первый абзац). Определяет название, текст и одну иллюстрацию (если таковая есть в новости). После этого новость начинает отображаться на сайте. Для сайтов, поддерживающих технологию Facebook, называемую OpenGraph, процесс парзинга новости прост. В других случая придется разбирать дерево DOM. В случае если сайт отображает новости только с JavaScript придется реализовать хитрый метод получения новости. Новости отображают подобно отображению новостей на стене в Facebook, новости публикуются примерно так же как и на Facebook.
  • Пункт 7. Нотификация (уведомление) пользователей По e-mail и SMS Забытые пароли (восстановление), регистрация (подтверждение), уведомление пользователей о событиях, уведомление админов о жалобах. Все это может создавать большое количество сообщений. Чтобы нас не посчитали спамерами, сайт должен отправлять сообщения не большими пачками сообщений сразу, а с соблюдением интервалов между сообщениями. Вполне возможно, что это будет реализовано через API mailchimp, так как он будет использоваться для рассылок. Не обязательно самостоятельно строить очередь писем.
  • Пункт 8. Публикация админом произвольной информации. В некоторых разделах сайта (например, в разделе "Языковые курсы") админ (не пользователи) должен иметь возможность размещать: - тексты с возможностью форматирования, выделения цветом как на http://test.nationsorg.com/, - иллюстрации к ним и подклееные к текстам файлы (PDF, например), - видеозаписей, - карт Google Maps с помечанными на них объектами (один объект на карту, например, наши курсы проводятся по адресу - и на карте указан адрес), - анкеты, тех кто пожелает поступить на курсы или пойти к нам волонтером. Размещенная таким образом информация должна нормально отображаться в адаптивном дизайне на смартфонах. Эти статьи должны быть огранизованы иерархически, в разделы. Иерархию должен иметь возможность менять админ регионального сайта.
  • Пункт 9. Файлы. Админы региональных сайтов могут иллюстрировать файлами (картинками, PDF и т.п.) информацию о событиях, об языковых курсах. Пользователи могут иллюстрировать файлами свои объявления о купле-продаже. Все эти файлы нужно хранить. Файлы, иллюстрирующие объявления о купле-продаже должны удаляться автоматически через 3 месяца после снятия объявления с публикации. Thumbnails должны делаться автоматически при загрузке или при первом просмотре картинки.
  • Пункт 10. Видеофайлы Видеозаписи, хотя и должны заливаться (добавляться в публикацию) через интерфейс сайта, но физически они должны тут же отправлять на сторонний внешний видеосервис, где и должны храниться. Видеосервис еще не определен. Это должен быть видеосервис не подобный YouTube, чтобы не было возможностей у пользователя в конце ролика получить список других роликов. А также чтобы не было возможностей перейти на сайт видеосервиса. То есть с точки зрения пользователя видео должно выглядеть как размещенное на нашем сайте и только на нем.
  • Пункт 11. Аналог Avito, сервис объявлений о купле-продаже. Почти полный аналог Avito, включая интерактивную карту для выбора региона. Не включает из функционала Avito отображение сторонней рекламы. Не включает из функционала Avito платные услуги (подъем объявления вверх и т.п.) Включает в себя жалобы пользователей на объявление (поступают админу регионального сайта). Включает в себя снятие объявлений с публикации, повторную публикацию объявлений. Поиск объявлений по названия и по категориям. Обратите внимание - в разных категориях объявлений используются различные параметры в описании продаваемого-покупаемого. Скажем для квартиры имеет значение количество комнат, их площадь, район города и т.п. а для автомобиля - объем двигателя, марка и т.п. Автоматическое по истечению времени снятие объявлений с публикации (1 месяц) и окончательное автоматическое удаление объявления спустя 3 месяца. Картинки объявления удаляются вместе с ним.
  • Пункт 12. Форум. Очевидно. Модератор форума - админ регионального сайта. Назначения дополнительных модераторов пока не предусмотрено.
  • Пункт 13. Поиск Поиск по новостям Поиск по событиям Поиск по объявлениям о купле-продаже Поиск по всему сайту (включая раздел "Языковые курсы" и т.п.)
  • Пункт 14. События. Объявление о предстоящем событии (текст, иллюстрации, видео) - только админ регионального сайта имеет право. Снятие с публикации - только админ регионального сайта. Подписка на событие - все пользователи (зарегистрированные) имеют право. Уведомление/напоминание (нотификация) о предстоящем событии, о погоде в месте и времени события Отчет о событии (текст, иллюстрации, видео) - только админ регионального сайта
  • Пункт 15. Планировщик. Используется для запланированных на определенное время ситуаций уведомления о событиях, рассылках и т.п.
  • Пункт 16. Подписки (newsletter) Подписка, отписка - различные категории (причины) рассылок. Изначально рассылка формируется на сайте (учитываются данные пользователей, которые пожелали ее получать) Физически рассылка реализуются через mailchimp. Вся работа через API mailchimp. Админу сайта занимающемуся рассылками нужно только для статистики заходить на mailchimp - все остальное на сайте. Зарегистированные пользователи могут подписать нажатием кнопки "Подписаться" без указания своего e-mail (ибо он уже есть в профиле пользователя) Незарегистрированным пользователям для подписки нужно вводить свой e-mail.
  • Пункт 17. API, для подключения приложений для смартфонов. Приложения только для пользователей, следовательно API только для функционала пользователей. Не для админов.
  • Пункт 18. Максимум AJAX и интеллектуальная каптча Обновление (прокрутка вниз, переходы между разделами) без перезагрузки страниц. Использование нераздражающей интеллектуальной каптчи, которая не докучает пользователю сложными проверками, а позволяет просто поставить галочку.
  • Пункт 19. Анкеты. На сайте есть анкеты для тех, кто хочет записаться на яыковые курсы или записаться волонтером. Анкеты накапливаются в базе данных и могут быть прочитаны админом регионального сайта. Также уведомление о новой анкете отправляется на почтовые адреса - разным людям (разным преподавателям) для разных языковых курсов и копия - админу регионального сайта. Админ должен иметь возможность размещать эти анкеты на свое усмотрение в описаниях различных курсов (это часть пункта 8 - публикация админом произвольной информации) Админ должен иметь возможность править анкету по своему усмотрению и указывать адреса получателей по своему усмотрению (например, когда появится новый языковой курс админ регионального сайта должен иметь возможность без обращения к программисту исправить анкету так, чтобы новый преподаватель получал письма) Пользователь зарегистрированный при отправке анкеты может видит анкету без идентификационных полей (телефон, e-mail, имя) так как это уже есть в профиле пользователя. Незарегистрированный пользователь должен указать в анкете все это.
  • Пункт 20. Этапы. Здесь описаны все этапы. Предполагается разделение реализации на 2 части. Первая часть это: Региональные сайты - автоматический выбор по IP и ручное переключение Переключение 3-х языков Отображение погоды и времени для каждого региона. Регистрация, интеграция с соц. сетями, восстановление пароля, логин, подтверждение по SMS Единый вход на все сайты регионов - SSO Личный кабинет админа (управление пользователями, управление региональными сайтами - создание/удаление) Пункты 8 и 9 - то есть публикация админом с картинками и произвольными файлами, но без видео. Админ должен иметь возможность ввести все, что нужно для переноса раздела "Языковые курсы" с сайта http://test.nationsorg.com/ на созданный сайт Личный кабинет пользователя - можно привязывать аккаунты социальных сетей, дополнительные адреса, номера телефонов, указывать имя, никнейм. Пользователь - публикация объявлений о купле-продаже Админ - модерация объявлений о купле продаже, определение категорий товаров и параметров категорий товаров Счетчик (Google Analytics)
Файлы