{"id":15827820,"url":"https://github.com/subb98/race-results","last_synced_at":"2026-04-16T04:32:16.288Z","repository":{"id":62305853,"uuid":"559265810","full_name":"Subb98/Race-Results","owner":"Subb98","description":"Test task for PHP developer position at Smart Logistics","archived":false,"fork":false,"pushed_at":"2022-10-30T11:21:43.000Z","size":55,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-12T10:31:22.542Z","etag":null,"topics":["app","application","backend","docker","docker-compose","example","php","php8","php81","project","task","test"],"latest_commit_sha":null,"homepage":"https://t.me/sunday_research","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Subb98.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-29T15:21:31.000Z","updated_at":"2022-10-30T14:54:03.000Z","dependencies_parsed_at":"2022-10-30T11:45:20.821Z","dependency_job_id":null,"html_url":"https://github.com/Subb98/Race-Results","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Subb98%2FRace-Results","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Subb98%2FRace-Results/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Subb98%2FRace-Results/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Subb98%2FRace-Results/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Subb98","download_url":"https://codeload.github.com/Subb98/Race-Results/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246628398,"owners_count":20808105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["app","application","backend","docker","docker-compose","example","php","php8","php81","project","task","test"],"created_at":"2024-10-05T10:09:22.941Z","updated_at":"2026-04-16T04:32:16.253Z","avatar_url":"https://github.com/Subb98.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Race Results\n[![Build Status](https://travis-ci.org/Subb98/Race-Results.svg?branch=master)](https://travis-ci.org/Subb98/Race-Results)\n[![StyleCI](https://styleci.io/repos/559265810/shield)](https://styleci.io/repos/559265810)\n\n![preview](https://i.imgur.com/Yua0svO.png)\n\n## Описание\nОрганизаторы провели соревнования по автогонкам среди 15 участников. У каждого участника был свой уникальный номер (пример и формат данных в файле data_cars.json). Заезды проходили в случайном порядке, каждому участнику было дано 4 попытки, всего было проведено 60 заездов. За каждую попытку участнику присваивались очки (результаты каждого заезда вы можете найти в файле data_attempts.json).\n\nВаша задача \u0026ndash; вывести турнирную таблицу. В качестве колонок необходимо использовать: номер места, имя пилота, город пилота, автомобиль, 1, 2, 3, 4 попытки, сумма очков. На первой строчке будет участник, который набрал суммарно за 4 попытки наибольшее количество очков, дальше участники по убыванию. В случае совпадения суммы очков по 4 попыткам у 2 или более участников, выше по турнирной таблице должен располагаться тот участник, который набрал большее количество очков в четвертой попытке. В случае совпадения \u0026ndash; в третьей, далее \u0026ndash; второй и далее \u0026ndash; в первой. Если суммы очков совпадают во всех попытках, то участников нужно отсортировать по фамилии в алфавитном порядке. Данные требуется объединить в один массив и с помощью PHP вывести их в таблицу. Для верстки таблицы допустимо использовать Bootstrap v4. На странице необходимо предусмотреть кнопку для пересчета результатов с сохранением итоговой таблицы в файл results.csv.\n\nПроект необходимо дополнить Dockerfile, который годится для сборки образа и запуска вашего решения в среде Docker. Входные и выходные файлы (data_cars.json, data_attempts.json, results.csv) необходимо подключить к контейнеру таким образом, чтобы их можно было редактировать и просматривать с хост-машины без каких-либо дополнительных манипуляций. Т.е. изменили что-то во входных файлах, на странице нажали кнопку Пересчитать результат, в файле results.csv на хост-машине видим свежие данные.\n\n## Запуск и использование приложения\n1. Скачать проект: `git clone git@github.com:Subb98/Race-Results.git`\n2. Перейти в директорию проекта: `cd Race-Results`\n3. Скопировать файл с переменными окружения `cp .env.example .env`\n4. Запустить сборку проекта: `docker compose up --build`\n5. Установить зависимости Composer: `docker exec -it -w /usr/local/src/ race-results.php-fpm composer install`\n6. Для просмотра страницы с результатами перейти по ссылке http://localhost:8000\n7. Сгенерировать первый файл `data/output/result.csv` нажатием на кнопку `Посчитать результат`\n8. При необходимости изменить входные данные в директории `data/input` и нажать на кнопку `Пересчитать результат`\n9. При необходимости есть возможность запустить автотесты бизнес-логики: `docker exec -it -w /usr/local/src/ race-results.php-fpm ./vendor/bin/phpunit tests`\n\n## Лицензия\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubb98%2Frace-results","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsubb98%2Frace-results","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubb98%2Frace-results/lists"}