Используя basic шаблон фреймворка Yii2 нужно написать простейший новостной сайт с авторизацией и оповещением пользователей о событиях.
- Регистрация и авторизация пользователей (можно использовать готовые модули/расширения) с подтверждением почтового ящика.
- При добавлении новости на сайт, оповещать зарегистрированных пользователей по e-mail и всплывающим окном в браузере.
- Постраничный вывод превью новостей на главной странице с дальнейшим полным просмотром. Количество превью на странице должно быть изменяемым.
- CRUD управление новостями и пользователями с разграничением прав. Анонимный пользователь может просматривать только превью, пользователь может просматривать полные новости, модератор может добавлять новости, а администратор еще и управлять пользователями.
- Сделать в настройках профиля настройку уведомлений (получать уведомления о новых новостях только на e-mail, в браузер или и то и другое)
- Оповещать пользователя по e-mail при изменении пароля или создания нового пользователя администратором (выслать новому пользователю на e-mail ссылку для активации профиля и ввода нового пароля для дальнейшей авторизации) и оповещать администратора при регистрации нового пользователя.
- Автоматическая авторизация на сайте при активации профиля.
- Возможность добавления событий к любым моделям (тригерим события), отслеживание событий (слушаем события модели).
- Возможность управления уведомлениями к событиям из веб-интерфейса. С указанием в качестве адресата группу/роль пользователей и выбором типа уведомления (e-mail и/или браузер). Реализовать возможность управления шаблонами текстов уведомлений с автоподстановкой туда информации из уведомления. Например, подстановка имени пользователя или ссылки на появившуюся новость в тексте и заголовке уведомления.
- Предусмотреть возможность легкого добавления новых типов уведомлений. Например, в telegram или push (описать в readme как добавлять новые типы).
- Немедленная отправка уведомлений выбранным пользователям/ролям/всем по требованию администратора без события в модели.