Создать страницы для рынка валют.
-
Header страницы должен содержать ссылки на список валют (Currencies) и страницу добавления валюты (Add)
-
Страница со списком валют.
- Должна быть доступна по адресу /сurrencies
- Должна содержать заголовок "Currency market".
- Список должен содержать следующие данные:
- Логотип
- Имя
- Короткое имя (bitcoin - btc)
- Цена USD
- Имя валюты должно быть кликабельно и вести на страницу соответствующей валюты.
- Кнопки edit/delete для редактирования и удаления валюты.
- Placeholder с текстом "No currencies" в случае пустого списка.
-
Страница отдельной валюты
- Страница должна быть доступна по адресу /сurrencies/{id}
- Заголовок страницы должен содержать имя валюты
- Страница должна содержать данные:
- Логотип
- Имя
- Короткое имя (bitcoin - btc)
- Цена USD
- Страница должна содержать кнопки edit/delete
- При нажатии на delete(css class - '.delete-button') валюта удаляется и происходит редирект на страницу /currencies (можно добавить модальное окно для подтверждения удаления, но не есть обязательным)
- При нажатии на edit(css class - '.edit-button') происходит редирект на страницу /currencies/{id}/edit
-
Страница добавления валюты
- Страница должна быть доступна по адресу /currencies/add
- Страница должна содержать форму добавления валюты
- Имя (значения не больше 255 символов)
- Короткое имя (значения не больше 10 символов и не менее 2-х)
- Ссылка на логотип (валидный урл)
- Цена USD (число с плавающей точкой)
- Все поля обязательны для заполнения
- Все поля формы должны быть с валидацией (только на бекенде, для тестов)
- Ошибки валидации должны показываться под полями формы.
- Должна содержать кнопку Save
- После успешного добавления должен быть показан список /currencies с новой записью.
-
Страница редактирования валюты
- Страница должна быть доступна по адресу /currencies/{id}/edit
- Страница должна содержать форму редактирования (требования по валидации те же, что и к странице добавления)
- После успешного сохранения должна быть показана страница /currencies/{id} с обновленными значениями.
git clone
cd project dir
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate:fresh --seed
Некоторые подготовительные данные находятся в database/seeds.
- Для выполнения взять код из этого репозитория. Репозиторий не должен быть форкнут.
- Страницы должны быть созданы с помощью темплейтов Blade.
- Темплейты должны наследовать друг друга.
- Должна присутствовать защита от XSS и CSRF атак.
- Все тесты должны проходить. Тесты менять нельзя, но очень даже можно смотреть. Если какой-то тест написан с ошибкой (sic!) - обращайтесь в комментариях.
- Выложить выполненное ДЗ в отдельный репозиторий на github/bitbucket.
- Приветствуется использование возможностей PHP 7.0-7.2
- Приветствуется (но не обязательно) использование Material, Bootstrap или другого front-end фреймворка для добавления CSS стилей.
-
Создайте APP_URL в .env
-
Запустите тесты
php artisan dusk
Зайдите на виртуальную машину через ssh из папки, где установлен Homestead
vagrant ssh
Перейдите в директорию проекта и запустите
php artisan serve --host=192.168.10.10 --port=8080
Установите в '.env' строку
APP_URL=http://192.168.10.10:8080
Теперь можно запустить тесты.
php artisan dusk