Проектирование - djbelyak/PHPMailSender GitHub Wiki

Схема цикла разработки

Что нужно сделать

Организовать отправку данных, в соответствии с запросом клиента, на полученный от него e@mail

Кто этим будет пользоваться

Анонимный пользователь

Когда и как будут использовать это

  1. Для отправки напоминаний (простого текста) на e-mail
  2. Для отправки веб-страницы (по ссылке) на e-mail

Предметная область

В системе присутствует обычный текст, гиперссылка на страницу, адрес e-mail. Текст необходимо очистить от HTML и JS кода. Гиперссылку необходимо проверить на правильность и доступность. Адрес e-mail необходимо проверить на правильность.

Сущности

  • Адрес e-mail
  • Текст
  • Ссылка
  • Письмо

Диаграмма классов

Диаграмма классов

##Диаграмма исключений Диаграмма исключений

Задачи UI

  1. Выбор типа отправляемых данных
  2. Форма для ввода текста и адреса e-mail
  3. Форма для ввода гиперссылки и адреса e-mail
  4. Сообщения об успешной отправке
  5. Сообщения об ошибках

Бизнес-логика

Пользователь выбирает тип сообщения.

При выборе напоминания, пользователю показывается форма для ввода текста и адреса e-mail. Если пользователь ввел валидный адрес --- письмо отправляется и появляется сообщение об успешной отправке. В противном случае --- сообщение об ошибке.

При выборе статьи, пользователю показывается форма для ввода ссылки и адреса e-mail. Если пользователь ввел валидную и рабочую ссылку, а также валидный адресы --- письмо отправляется и появляется сообщение об успешной отправке. В противном случае --- сообщение об ошибке.

Функциональная логика -> Библиотеки и фреймворки

  • Приветственная страница и формы --- HTML+CSS
  • Сообщения --- JavaScript
  • Очистка текста, валидация адресов --- Регулярные выражения
  • Конвертация статей, отправка e-mail --- PHP
  • Общее взаимодействие --- PHP