GithubHelp home page GithubHelp logo

bsa-2017-php-8's Introduction

Домашнее задание

Описание

Создать страницы для сервиса аренды автомобилей из предыдущего задания.

Страницы

  1. Header страницы должен содержать ссылки на список машин (Cars list) и страницу добавления машины (Add)
  2. Страница со списком машин.
    • Страница должна быть доступна по адресу /cars
    • Список должен содержать следующие данные:
      • Model
      • Color
      • Price
    • Название модели машины должно быть кликабельно и вести на страницу соответствующей машины.
    • Placeholder с текстом “No cars” в случае пустого списка машин.
  3. Страница отдельной машины
    • Страница должна быть доступна по адресу /cars/{id}
    • Страница должна содержать данные:
      • Model
      • Year
      • Registration number
      • Color
      • Price
    • Заголовок страницы должен содержать название модели
    • Страница должна содержать кнопки-ссылки для перехода на формы редактирования и удаления машины Edit и Delete с классами “edit-button”, “delete-button”.
    • После нажатия ссылки “Delete” пользователь должен попасть на страницу со списком машин.
  4. Страница добавления машины
    • Страница должна быть доступна по адресу /cars/create
    • Все поля формы должны быть с валидацией (только на бекенде, для тестов).
      • Все поля обязательны для заполнения
      • Значения не больше 255 символов
      • Registration number - 6 символов, буквы и цифры
      • Year - год от 1000 до текущего
      • Color - только буквы
      • Price - только цифры
    • Ошибки валидации должны показываться под полями формы.
    • В случае срабатывания валидации, все поля формы должны оставаться заполненными предыдущими значениями.
    • После сохранения машины должен быть показан список машин с новой записью.
  5. Страница редактирования машины
    • Требования по валидации те же, что и к странице добавления
    • Страница должна быть доступна по адресу /cars/{id}/edit
    • После сохранения машины должна быть показана страница машины с обновленными значениями.

Требования

Основные

  • Для выполнения взять код из этого репозитория. Репозиторий не должен быть форкнут.
  • Страницы должны быть созданы с помощью темплейтов Blade.
  • Темплейты должны наследовать друг друга.
  • Должна присутствовать защита от XSS и CSRF атак.
  • Для хранения данных должен быть использован репозиторий, подключенный к проекту.
  • Репозиторий должен инжектиться с помощью DependencyInjection.
  • Все тесты должны проходить. Тесты менять нельзя, но очень даже можно смотреть. Если какой-то тест написан с ошибкой (sic!) - обращайтесь в комментариях.
  • Выложить выполненное ДЗ в отдельный репозиторий на github/bitbucket.

Дополнительные

Запуск тестов

  1. Создайте APP_URL в .env
  2. Запустите тесты
    php artisan dusk
    

Запуск тестов c Homestead

  1. Зайдите на виртуальную машину через ssh из папки, где установлен Homestead

    vagrant ssh
    
  2. Запустите следующие команды перед запуском тестов

    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
    sudo apt-get update && sudo apt-get install -y google-chrome-stable
    sudo apt-get install -y xvfb
    
  3. В отдельном окне терминала:

    Xvfb :0 -screen 0 1280x960x24 &
    
  4. Теперь можно запустить тесты.

    php artisan dusk
    

bsa-2017-php-8's People

Contributors

sergii-bubalo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.