# Спецификация Socialist

##### Общий функционал

- Поддержка несколько режимов работы - Facebook, Instagram, Linkedin.
- Модульная архитектура, которая позволяет расширять функционал.
- Наличия закрытого подсайта для администратора.
- Поддержка геолокации.
- Мультивалюты.
- Поддержка всех языков, включая язык с направления RTL. Имеется редактор языковых пакетов. Наличие 28 готовых ленгвидж паков.
- Вход/регистрация с помощью аккаунтов социальных сетей (Facebook, Google, VKontakte + возможно подключить другие социальные сети).
- Удобная поисковая система с разнообразными фильтрами и видами отображения результата поиска. Поиск объявлений с учетом геолокации.
- Наличие REST API (RESTful API).
- Страница карты сайта.
- Генератор Sitemap (Карта сайта Google XML).
- SEO оптимизация.
- Поддержка кэширования.

##### Функционал для пользователей

- Наличие готовых сервисов:   
     - Альбомы изображений.  
     - Видео.  
     - Короткие видео.  
     - Заметки.  
     - Популярные посты.  
     - Воспоминания.  
     - Мои группы.  
     - Мои Страницы.  
     - Блог  
     - Доска объявлений.  
     - Мероприятия.  
     - Игры.  
     - Форум.  
     - Биржа труда.  
     - Предложения  
     - Поиск друзей.  
     - Общие вещи.  
     - Краудфандинг.
- Наличие стены активности пользователя.
- Наличие персонального и группового чата.
- Наличие системы внутренний, push и email оповещений,
- Наличие поисковой системы.
- Наличие стены групповой и персональной стены активности.
- Наличие внутреннего кошелька.
- Наличие подписки для получения доступа к расширенному функционалу.
- Наличие системы вознаграждений за активность (начисление поинтов).
- Наличие рекламного сервиса для продвижения персональных и групповых страниц.
- Наличие личного кабинета пользователя для управления профилем и персональными параметрами работы сервиса.
- Возможностью редактирования персональных данных, фото аватара, контактной информации.
- Возможностью редактирования данных аккаунта (логин, пароль).
- Наличие раздела для управления постами.
- Наличие раздела для управления группами.
- Наличие раздела для управления объявлениями.
- Наличие раздела для обзора истории платежей.

##### Функционал Администратора

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

##### Авторизация/Регистрация с помощью социальных сетей

- Telegram
- Mailru
- Vkontakte
- ok.ru
- Google
- Discord
- Twitter
- Facebook
- Linkedin
- Instagram
- QQ
- TikTok
- WeChat
- Wordpress

##### Интеграция с платежными системами 

- Robokassa
- Yoomoney
- Qiwi
- PayStack
- 2Checkout
- Stripe
- PayStack
- RazorPay
- PaySera
- CashFree
- Securionpay
- Coinbase
- Authorize.Net
- Iyzipay
- Flutter Wave
- Ngenius
- Fortumo
- Braintree
- PayFast
- Банковский перевод.

##### Интеграции 

- Google AdSense
- Карты Yandex, Карты Google
- Google ReCaptcha

##### Дизайн

- Возможность использовать одну из 5 дизайнерских тем.
- Возможность создания любой цветовой схемы дизайна.
- Адаптивный пользовательский интерфейс для работы на мобильных экранах.

##### Технические требования

- PHP 8.1 или выше.
- MySQL 5.6 или выше.
- BCMath PHP Extension.
- Ctype PHP Extension.
- Fileinfo PHP extension.
- JSON PHP Extension.
- Mbstring PHP Extension.
- OpenSSL PHP Extension.
- Tokenizer PHP Extension.
- XML PHP Extension.
- PHP Zip Archive.
- Rewrite Module (Apache or Nginx).