{"id":24763226,"url":"https://github.com/psigfry/fcmk","last_synced_at":"2026-04-05T23:36:39.442Z","repository":{"id":264489129,"uuid":"623343639","full_name":"Psigfry/FCMK","owner":"Psigfry","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-04T09:23:35.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T14:34:40.515Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Psigfry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-04T07:24:04.000Z","updated_at":"2023-04-04T07:24:04.000Z","dependencies_parsed_at":"2024-11-24T17:41:14.007Z","dependency_job_id":null,"html_url":"https://github.com/Psigfry/FCMK","commit_stats":null,"previous_names":["psigfry/fcmk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Psigfry/FCMK","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psigfry%2FFCMK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psigfry%2FFCMK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psigfry%2FFCMK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psigfry%2FFCMK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Psigfry","download_url":"https://codeload.github.com/Psigfry/FCMK/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Psigfry%2FFCMK/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31454199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T20:26:26.666Z","updated_at":"2026-04-05T23:36:39.422Z","avatar_url":"https://github.com/Psigfry.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Тестовое задание для PHP разработчика\n\n## Предисловие\nУважаемые соискатели, уважайте свое время и время программиста, проверяющего вашу работу. Если так получилось, что вы не можете (не успеваете\\не хотите) выполнить задание до конца - сообщите пожалуйста об этом.\n\nПодойдите пожалуйста к исполнению задания максимально усердно. Продумайте архитектуру проекта, используйте \"плюшки\" фреймворка, которые сделают ваш код качественным. Максимально хорошо организуйте код. Если можно что то вынести в сервисный слой - выносите, если можно где то использовать eloquent scopes - используйте (думаю, что вы поняли. Знаете как показать свои знания - показывайте). Напишите свой код так, чтобы не стыдно было показать другим.\n\nНе забывайте, что мне необходимо по этому, крайне небольшому, заданию оценить ваши знания. Я хочу увидеть production ready сервис, который вы можете запустить в работу прямо сейчас.\n\nА далее у нас такие проекты:\n- разработка Всероссийской системы оперативных донесений о чрезвычайных ситуациях\n- работа над сервисом Телемедицинских консультаций\n- работа над сервисом Силы и средства\n- и другие проекты\n\n\n**Если вам не понятно задание - не бойтесь задавать вопросы**.\n\n## Описание\nНеобходимо написать небольшой сайт - статейник. Макет не принципиален. Можно взять bootstrap или любой другой фреймворк. Так же можно использовать любые JS фреймворки. Главное, чтобы на страницах присутствовали все компоненты.\n\nВремя выполнения: 1 неделя.\n\nМожно не реализовывать хранение изображений. Для заглушек можно юзать сервис [https://placeholder.com/](https://placeholder.com/) или подобный (чтобы не заморачиваться с нарезкой). Либо сделать 2 изображения (миниатюра и обычное) и переиспользовать их.\n\nВсю логику реализуем встроенным функционалом Laravel.\n\nРезультат необходимо загрузить в публичный репозиторий GitHub.\n\n## Стек\n- PHP 7.2+\n- Laravel 8+\n\n## Разделы сайта\n- [Главная страница](#главная-страница)\n- [Каталог статей](#каталог-статей)\n\n## Страницы сайта\n- Главная страница\nUrl: /\n- Каталог статей\nUrl: /articles\n- Страница статьи\nUrl: /articles/{slug}\n\n## Описание страниц\n### Главная страница\nКомпоненты:\n- [Навигационное меню](#навигационное-меню). Активный пункт \"Главная страница\".\n- Последние добавленные статьи. 6 [миниатюр статей](#миниатюра-статьи) в сортировке LIFO\n\n### Каталог статей\nКомпоненты:\n- [Навигационное меню](#навигационное-меню). Активный пункт \"Каталог статей\".\n- Листинг статей. Сортировка LIFO. 10 [миниатюр статей](#миниатюра-статьи) на страницу\n- [Пейджинация](#пейджинация)\n\n### Статья\nКомпоненты:\n\n- [Навигационное меню](#навигационное-меню). Активный пункт \"Каталог статей\".\n- Обложка статьи\n- Текст статьи\n- [Теги статьи](#тег-статьи)\n- [Счетчик лайков статьи](#счетчик-лайков-статьи)\n- [Счетчик просмотров статьи](#счетчик-просмотров-статьи)\n- [Форма коментария](#форма-комментария)\n\n## Компоненты\n\n### Навигационное меню\nНеобходимо сделать так, чтобы в блоке меню был помечен пункт раздела, в котором находится в текущий момент пользователь. Правила формирования подсветки выбранного раздела описаны в блоке [**Описание страниц**](#описание-страниц)\n\n### Пейджинация\nСтандартная пейджинация Laravel ([https://laravel.com/docs/7.x/pagination#introduction](https://laravel.com/docs/7.x/pagination#introduction))\n\n### Миниатюра статьи\nБлок состоит из следующих элементов:\n- миниатюра обложки статьи\n- заголовок статьи\n- краткое описание статьи - первые 100 симоволов от текста статьи\n\n### Тег статьи\nСсылка. Состоит из url и label. \n\n### Счетчик лайков статьи\nЭлемент является кнопкой, на которой в качестве label написано число.\nПри клике на кнопку отправляется AJAX запрос, инкрементирующий счетчик. В ответе на запрос \nвозвращается новое значение, которое необходимо отобразить в label.\n\n### Счетчик просмотров статьи\nТекстовый элемент, отображающие текущий счетчик просмотров. Через 5 секунд после открытия статьи отправляется запрос, инкрементирующий счетчик. В ответе на запрос возвращается новое значение, которое необходимо отобразить в элементе.\n\n### Форма комментария\nФорма, состоящая из 2х полей:\n- Тема сообщения\n- Текст сообщения\n\nПри нажатии на кнопку \"Отправить\" отправляется AJAX запрос. При успешной обработке форма заменяется на плашку \"Ваше сообщение успешно отправлено\".\n\n### Инкрементирование счетчика лайка\nОтвет: новое значение счетчика\n\n### Инкрементирование счетчика просмотров\nОтвет: новое значение счетчика\n\n## Развертывание\nРазвертывание должно производиться через стандартные механизмы:\n- git clone ...\n- php artisan migrate\n- php artisan db:seed\n- php artisan serve\n\nТо есть никакие импорты SQL файлов \\ загрузка zip архивов - не приемлемы.\n\n## Тестирование\n- ArticleSeed. Должен сгенерировать 20 статей с рандомной датой и рандомным текстом (длина текста от 200 символов). Используем Faker.\n- ArticleTagSeed. Должен сгенерировать некоторое количество тегов, чтобы хотя бы 1 был в каждой статье.\n\n\n## Примерный вид интерфейсов\n### Главная страница\n![Главная страница](https://i.ibb.co/Yykzsby/3.jpg)\n### Каталог статей \n![Каталог статей](https://i.ibb.co/f4WF9nb/4.jpg)\n![Каталог статей](https://i.ibb.co/sFpCfrz/2.jpg)\n### Статья \n![Статья](https://i.ibb.co/5LYDhRT/1.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsigfry%2Ffcmk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsigfry%2Ffcmk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsigfry%2Ffcmk/lists"}