GithubHelp home page GithubHelp logo

a-nikolaefff / hawking-bros-test-task Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 79 KB

Тестовое задание на позицию PHP-разработчика для компании Hawking Bros

Makefile 0.53% Dockerfile 2.72% PHP 91.14% SCSS 0.12% JavaScript 2.09% Blade 3.40%
laravel php testtask

hawking-bros-test-task's Introduction

Hawking Bros Test Task

Задание

Написать страницу с лентой новостей, где отображается превью текст, картинка, заголовок, теги. Дизайн не важен, front может быть любой и не учитывается при проверке реализации.

У новостей должна быть возможность выставлять лайки и дизлайки Сортировка новостей в списке должна быть по следующему правилу:

  1. Сортировка идет по рейтингу. формула расчета рейтинга: количество лайков - количество дизлайков (Пример: лайков 5 дизлайков 1 . 5 - 1 = 4 - рейтинг статьи). Направление сортировки по убыванию
  2. Если рейтинг одинаковый сортировать по дате добавления.

Общие требования к выполнению задачи:

  1. Теги должны быть реализованы через связь много ко многим
  2. Лайки и дизлайки должны хранится в отдельной таблице (1 голос - одна запись)
  3. Новости нужно брать с RSS источника https://lenta.ru/rss/news и запускать парсинг при помощи команды из консоли. Обязательно отслеживать те записи которые уже были добавлены на сайт(если новость есть на сайте, то пропускаем и не обрабатываем ее). В консоле после выполнения выводим фразу “На сайт было добавлено {{количество}} новостей”
  4. Картинку сохранять файлом, а не ссылкой в базу.
  5. Обязательно учесть постраничную навигацию (Сортировка должна корректно работать с учетом разбиения вывода новостей по страницам)
  6. Таблицы создавать через миграции.

Время выполнения ограничено 4 часами.

Запуск

  1. Сборка и запуск контейнеров
make up
  1. Установка npm пакетов
make npm-i
  1. Сборка css и js при помощи Vite
make vite-build
  1. Переход в php контейнер
make php
  1. Установка composer пакетов
composer install
  1. Запуск команды парсинга новостей
php artisan news:parse

hawking-bros-test-task's People

Contributors

a-nikolaefff 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.