{"id":23167607,"url":"https://github.com/bentonfraizer/test-task-gna","last_synced_at":"2026-04-15T14:35:54.826Z","repository":{"id":176333242,"uuid":"654219421","full_name":"BentonFraizer/test-task-gna","owner":"BentonFraizer","description":"Тестовое задание.","archived":false,"fork":false,"pushed_at":"2024-04-22T14:06:07.000Z","size":7513,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-22T14:26:46.963Z","etag":null,"topics":["ant-design","mockoon","mockoon-cli","react","react-router","redux","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/BentonFraizer.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}},"created_at":"2023-06-15T16:29:33.000Z","updated_at":"2024-04-22T14:26:59.984Z","dependencies_parsed_at":"2024-04-22T14:26:50.400Z","dependency_job_id":"bda8bf69-c0a6-441c-b703-d7b6d88f98ad","html_url":"https://github.com/BentonFraizer/test-task-gna","commit_stats":null,"previous_names":["bentonfraizer/test-task-gna","bentonfraizer/test-task-gpna"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentonFraizer%2Ftest-task-gna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentonFraizer%2Ftest-task-gna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentonFraizer%2Ftest-task-gna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentonFraizer%2Ftest-task-gna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BentonFraizer","download_url":"https://codeload.github.com/BentonFraizer/test-task-gna/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256108,"owners_count":20909240,"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":["ant-design","mockoon","mockoon-cli","react","react-router","redux","typescript"],"created_at":"2024-12-18T02:31:20.241Z","updated_at":"2026-04-15T14:35:54.778Z","avatar_url":"https://github.com/BentonFraizer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# test-task-gna\n\n# Задание.\n\nОграничения:\n\n- Обязательно использование React, Typescript;\n- Желательно использовать UI-библиотеку готовых компонентов (прекрасно если Ant Design, но допустимо также Material UI и любые другие);\n- Желательно использовать сервис для подготовки mock API (см. примечания), например Mockoon;\n- В остальном разрешено использовать любые библиотеки которые посчитаешь уместными (Redux, Mobx, Axios и др.)\n\nЗадача:\n\n1. Подготовить эндпоинты /documents1 и /documents2\n   С обоих возвращаются данные в формате :\n\n   ```\n   {\n      id: string,\n      name: string,\n      quantity: number,\n      deliveryDate: string,\n      price: number,\n      currency: ‘USD’ | ‘RUB’,\n   } []\n   ```\n\n2. Создать таблицу в которой будут данные из обоих запросов, по умолчанию отсортированные по deliveryDate.\n   Все поля кроме id, являются столбцами этой таблицы.\n\n3. Добавить возможность сортировки по всем столбцам этой таблицы.\n\n4. Для каждой строки таблицы нужно добавить галочку выбора товара, а также в заголовке таблицы галочку выбора всех товаров.\n\n5. В последней строке таблицы вывести результирующий показатель «Общее количество» (сумма всех quantity).\n\n6. Добавить кнопку «Аннулировать», при нажатии на которую должно появляться модальное окно с текстом\n   «Вы уверены что хотите аннулировать товар(ы): [названия выбранных товаров через запятую]»,\n   и кнопки «Применить», «Отклонить».\n\nЕсли пользователь нажимает кнопку «Применить» отправить запрос на эндпоинт /cancel с перечислением id товаров которые мы хотим аннулировать.\nЕсли пользователь нажимает кнопку «Отклонить» закрыть модальное окно.\n\nПримечания:\n\n1. Допустимо захардкодить данные, получаемые с сервера по эндпоинтам /documents1 и /documents2 и отправляемые на сервер по эндпоинту /cancel, но будет плюсом имитировать клиент-серверное взаимодействие через сервис mock API или backend-сервис.\n2. Требований к дизайну нет, все на усмотрение разработчика.\n\n---\n\n# Инструкция для запуска проекта.\n\n\u003e На данный момент приложение выложено на GitHub Pages. Соответственно, есть два варианта его просмотреть:\n\u003e \n\u003e1.Перейти по ссылке: [ссылка на приложение](https://bentonfraizer.github.io/test-task-gna/);\n\u003e \n\u003e2.Либо установить приложение локально, но стоит учитывать, что сервер запускать больше нет необходимости (п.п 3-4) \n\u003e поскольку данные запрашиваются с сервиса моковых данных mockapi.io.\n\n1. Скопировать репозиторий:\n\n```\ngit clone git@github.com:BentonFraizer/test-task-gna.git\n```\n\n2. Установить зависимости:\n\n```\nnpm install\n```\n\n3. Установить mockoon-cli:\n\n```\nnpm install -g @mockoon/cli\n```\n\n\u003e **Предупреждение**\n\u003e\n\u003e Для выполнения шага №4 не рекомендуется использовать Windows Powershell. Желательно воспользоваться Git Bash.\n\n4. Запустить сервер с моковыми данными:\n\n```\nmockoon-cli start --data ./src/mock/data.json --port 3001\n```\n\nПри необходимости, остановить сервер можно с помощью команды:\n\n```\nmockoon-cli stop 0\n```\n\n5. Запустить проект в работу:\n\n```\nnpm start\n```\n\n6. В том случае если браузер не открылся, адресной строке необходимо ввести следующий путь:\n   http://localhost:3000/\n\n---\n\n# Страница приложения.\n\n\u003cimg src=\"https://github.com/BentonFraizer/test-task-gna/blob/main/.github/workflows/main_page.png\" width=\"769\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentonfraizer%2Ftest-task-gna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbentonfraizer%2Ftest-task-gna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentonfraizer%2Ftest-task-gna/lists"}