SMS-рассылка. Предназначена для рассылки SMS-сообщений подписчикам. Рассылка осуществляется через web-интерфейс сайта "ВелоСамара", а также через email-интерфейс (в будущем). I. Общее описание ================= Основные понятия: - подписчик - отправитель - номер телефона - активация номера - группа рассылки - сообщение Подписчик --------- Подписчиками рассылки являются пользователи сайта "ВелоСамара". Для осуществления подписки необходима авторизация. Авторизация осуществляется с помощью логина и пароля пользователя форума "ВелоСамара". Т.е. для подписки на рассылку вначале необходимо зарегистрироваться на форуме. Каждый подписчик может внести несколько (до четырёх) номеров, каждый из которых может быть подписан на одну или несколько групп рассылки. Номер телефона -------------- Номер телефона вводится в международном формате: +7xxxxxxxxxx. Каждый подписчик может указать до четырёх номеров телефонов. После ввода нового номера телефона он должен быть активирован (см. ниже). Активация номера ---------------- После ввода пользователем нового телефонного номера, в целях защиты от злоупотреблений (ввода чужих телефонных номеров) - номер требует активации. Для этого по указанному номеру отсылается тестовое SMS-сообщение с кодом активации. После ввода кода активации на сайте, номер считается "активированным" и может получать сообщения. Группа рассылки --------------- SMS-рассылки сгруппированы в тематические группы, например: - покатушки: Самара - покатушки: Тольятти - SOS - Флейм Каждый номер телефона может быть подписан на любое количество групп рассылки. Сообщение --------- SMS-сообщение размером не более 120 символов (часть символов уходит на служебные нужны) Отправитель ----------- Отправитель - пользователь, отправляющий сообщение через web-интерфейс сайта или с помощью email-интерфейса (например, через функцию sms-на-email). Отправка сообщений по различным группам осуществляется в зависимости от прав доступа. Права доступа на отправку сообщений ----------------------------------- На отправку сообщений отправителями наложены определённые ограничения в зависимости от группы рассылки. В "Общедоступные" группы сообщения могут отправляться любыми пользователями. В "Приватные" группы сообщения могут отправлять только пользователи, входящие в определённую группу пользователей. Группы пользователей рассылки соответствуют группам пользователей форума (информация берётся из базы форума). Ограничения на отсылку сообщений -------------------------------- Любой отправитель может отсылать не более чем определённое количество сообщений в час (указывается в настройках администратора; по умолчанию - 4 сообщения). II. Интерфейс пользователя ========================== После авторизации пользователя ему доступны следующие страницы: 1. Номера телефонов. Просмотр, удаление номеров. Для каждого номера отображаются статус (активен/не активен) и список групп рассылки, на которые подписан номер. 1.1. Форма ввода нового номера 1.2. Форма активации номера (ввод кода активации для неактивированных номеров) 1.3. Список групп рассылки для выбранного номера. Добавление, удаление групп (подписка/отписка). 2. Форма отсылки сообщения 3. Журнал отправленных сообщений (список всех отправленных пользователем сообщений) 4. Журнал входящих сообщений (список полученных пользователем сообщений) III. Интерфейс администратора ============================= Если пользователь является администратором, то кроме страниц из раздела II, ему доступны следующие функции: 1. Список пользователей (список всех пользователей, имеющих хотя бы один подписанный номер или одно отправленное сообщение) 1.1. Редактирование статуса пользователя (заблокирован / не заблокирован) 2. Журнал отправленных сообщений (список всех сообщений, отправленных всеми пользователями) 3. Список групп рассылки 3.1. Форма ввода/редактирования группы. Указание уровня доступа к группе (публичная/приватная) 3.2. Список групп пользователей, имеющих право писать в данную группу рассылки (возможно указание как групп пользователей форума, так и отдельных пользователей. см. раздел "Группы пользователей") IV. Доставка сообщений ====================== SMS-сообщения доставляются с помощью отправки формы на сайте http://sms.telefan.ru/ Однако, в качестве механизма доставки может быть выбран любой другой. В том числе, механизм доставки может быть разным для разных операторов. ********* ТЕХНИЧЕСКАЯ ИНФОРМАЦИЯ *********** V. Механизм авторизации ======================= Для авторизации используется логин и пароль пользователя форума (phpBB). Т.е. пользователь должен быть вначале зарегистрирован на форуме "ВелоСамара". Данные о пользователях хранятся в базе форума в таблице phpbb_users. Поля таблицы, имеющие отношение к авторизации: user_id mediumint(8) NOT NULL, username varchar(25) NOT NULL, user_password varchar(32) NOT NULL, user_level tinyint(4) Пример записей таблицы phpbb_users: +-----------+----------------------------------+------------+ | username | user_password | user_level | +-----------+----------------------------------+------------+ | Anonymous | | 0 | | admin | 711ead053f52be85b29222040dbcb96c | 1 | | user1 | 76419c58730d9f35de7ac333c2fd6737 | 1 | | user2 | 3f3ecc90bccd337f82940f3a553c38e1 | 0 | +-----------+----------------------------------+------------+ Поле username хранит имя пользователя (login), user_password - захешированный с помощью MD5 пароль, user_level - уровень доступа. Если user_level = 1 - это признак администратора. Администратор имеет право доступа к административному интерфейсу. Любое другое значение - означает обычного пользователя, который может редактировать только собственную анкету. VI. Группы пользователей ======================== Данные о пользователях хранятся в базе форума в таблице phpbb_groups. Документация по данной таблице group_id mediumint(8) NOT NULL - ID группы group_name varchar(40) NOT NULL - кратное название группы group_description varchar(255) NOT NULL - описание группы group_single_user tinyint(1) NOT NULL Если group_single_user = 0 - это обычная группа, состоящая из нескольких пользователей. Если group_single_user = 1 - это "виртуальная" группа, состоящая из одного пользователя. В последнем случае group_id совпадает с полем user_id таблицы пользователей (phpbb_users).