https://github.com/jackblackjack/yii2-basic-articles-example
yii2-basic-articles-example
https://github.com/jackblackjack/yii2-basic-articles-example
news-reader php yii2 yii2-application-template yii2-framework
Last synced: 2 months ago
JSON representation
yii2-basic-articles-example
- Host: GitHub
- URL: https://github.com/jackblackjack/yii2-basic-articles-example
- Owner: jackblackjack
- License: other
- Created: 2018-04-16T00:24:29.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-08T20:24:40.000Z (about 7 years ago)
- Last Synced: 2025-01-20T12:05:33.906Z (4 months ago)
- Topics: news-reader, php, yii2, yii2-application-template, yii2-framework
- Language: PHP
- Size: 194 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Простейший новостной сайт с авторизацией и оповещением пользователей о событиях
На основе базового шаблона yii2## Функциональные требования
----------------------------------
**1.** Требования к ролевому распределению пользователей.
* Функционал приложения должен обеспечивать 4 пользовательских роли:
* Неавторизованный пользователь;
* Авторизованный пользователь;
* Редактор новостей;
* Администратор сайта.**2.** Требования к регистрации новых пользователей.
* При регистрации на указанный электронный адрес пользователя (email) должна высылаться ссылка для подтверждения email и активации пользовательского профиля;
* При подтверждении и активации пользовательской записи пользователю должна назначаться роль по-умолчанию (*Авторизованный пользователь*);
* При создании пользователя путем, отличным от самостоятельной регистрации, на указанный пользовательский электронный адрес (email) должна высылаться ссылка для подтверждения email и указания пользовательского пароля.**3.** Требования к управлению пользователями.
* Управление пользователями должно быть реализовано с использованием парадигмы CRUD;
* Создание нового пользователя должно быть реализовано в модальном окне;
* Редактирование существующего пользователя должно быть реализовано в модальном окне;
* Изменение статуса активности пользователя (активен/неактивен) должно быть реализовано без перезагрузки страницы.
* Должен быть реализован список пользователей с возможностью фильтрации по:
* порядковому номеру пользователя;
* логину пользователя;
* email пользователя;
* дате регистрации пользователя;
* дате последней авторизации пользователя;
* по статусу пользователя (активен/неактивен).* **Права доступа:** Все, вышеописанные операции должны быть доступны только пользователям с назначенной ролью *Администратор сайта*.
**4.** Требования к управлению новостями.
* Управление новостями должно быть реализовано с использованием парадигмы CRUD;
* Требуется реализовать хранение медиафайлов при создании текста новости (изображения);
* Создание новой новости должно быть реализовано в модальном окне;
* Редактирование существующей новости должно быть реализовано в модальном окне;
* Изменение статуса активности новости (активна/неактивна) должно быть реализовано без перезагрузки страницы.
* Должен быть реализован список новостей с возможностью фильтрации по:
* дате добавления новости;
* названию новости;
* краткому описанию новости;
* полному описанию новости;
* по статусу новости (активна/неактивна).
* **Права доступа:**
* *Неавторизованный пользователь* может просматривать только краткий текст новости;
* *Авторизованный пользователь* может просматривать полный текст новости;
* *Редактор новостей* может добавлять новости и редактировать (удалять) только свои новости;
* *Администратор сайта* - все выше описанное.**5.** Требования к главной странице сайта.
* На главной странице сайта должен быть реализован постраничный вывод (без перезагрузки страницы) превью новостей с возможностью перехода на страницу детального просмотра.
* На главной странице сайта должна быть реализована возможность пользовательского выбора количества выводимых новостей без перезагрузки страницы.**6.** Требования к пользовательским настройкам.
* Нужно реализовать функционал, обеспечивающий настройку пользовательских уведомлений (получать уведомления о новых новостях только на *email* и/или *в браузер*)**7.** Требования к пользовательским уведомлениям.
* При добавлении новости на сайт, оповещать зарегистрированных пользователей по email и всплывающим уведомлением (в соответствии с настройками п.6.) с возможностью отметить уведомление как прочитанное.## Создание базового образа
----------------------------------
**1.** Разверните окружение для разработки.
Установите [VirtualBox](https://www.virtualbox.org/) и [Vagrant](https://www.vagrantup.com/).**2.** Создайте типовое базовое приложение yii2
```
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
```**3.** Создайте собственный репозиторий на github.com
```
git init
git add .
git commin -m "First commit"
git remote add origin remote github/repo/url
git push origin master
```
**4.** Запустите виртуальную машину
- Укажите github токен в файле vagrant/config/vagrant-local.yml
```
cd basic
vagrant up
vagrant ssh
```**5.** Внесите изменения в конфигурацию сервера
- Изменения в php.ini
> **Найти наименование сервиса php7 можно выполнив комнаду:** sudo service --status-all | grep php```
sudo sed -i 's/\(;\)\(cgi.fix_pathinfo=\)\([0-9]\+\)/\21/' /etc/php/7.0/fpm/php.ini && sudo service php7.0-fpm restart
```- Изменения в конфигурации nginx
```
sudo rm -f /etc/nginx/sites-enabled/default && sudo service nginx restart
```- Внесите изменения в файл config/test_db.php
```
cd /app && sudo sed -i 's/dbname=yii2_basic_tests/\dbname=yii2basic_test/' config/test_db.php
```* Внесите изменения в composer.json
* В секцию "require":
````
"require": {
"yii2mod/yii2-rbac": "*",
"yiidoc/yii2-redactor": "*",
"nterms/yii2-pagesize-widget": "*"
}
````*
В секцию необходимо внести разрешения, устанавливаемые на каталоги, содержащие миграции и загружаемые медиафайлы.
* В секцию "require-dev":
````
"require-dev": {
...
"codeception/codeception": "^2.4",
"codeception/verify": "^1.0",
"codeception/specify": "^1.0"
}
````
*
* В секцию "extra":
````
"extra": {
"yii\\composer\\Installer::postCreateProject": {
"setPermission": [
{
...
"migrations": "0755",
"web/upload/article": "0755"
}
]
}
}
````- **6.** Обновите проект
```
cd /app && composer update
```