{"id":25469716,"url":"https://github.com/teplostanski/test-task-fewcha-github-searcher","last_synced_at":"2025-11-04T17:30:21.367Z","repository":{"id":276871825,"uuid":"929714067","full_name":"teplostanski/test-task-fewcha-github-searcher","owner":"teplostanski","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-10T22:22:35.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T22:32:51.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://teplostanski.github.io/test-task-fewcha-github-searcher/","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/teplostanski.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":"2025-02-09T07:53:50.000Z","updated_at":"2025-02-10T22:22:05.000Z","dependencies_parsed_at":"2025-02-10T22:32:55.256Z","dependency_job_id":"1cff316e-fb7d-4048-bd04-edeb66c5fe64","html_url":"https://github.com/teplostanski/test-task-fewcha-github-searcher","commit_stats":null,"previous_names":["teplostanski/test-task-fewcha-github-searcher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teplostanski%2Ftest-task-fewcha-github-searcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teplostanski%2Ftest-task-fewcha-github-searcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teplostanski%2Ftest-task-fewcha-github-searcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teplostanski%2Ftest-task-fewcha-github-searcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teplostanski","download_url":"https://codeload.github.com/teplostanski/test-task-fewcha-github-searcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239436768,"owners_count":19638367,"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":[],"created_at":"2025-02-18T08:30:28.677Z","updated_at":"2025-11-04T17:30:21.314Z","avatar_url":"https://github.com/teplostanski.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Searcher\n\nИнтерактивное React-приложение для просмотра GitHub репозиториев пользователей.\n\n![Демо](./demo.png)\n\n[teplostanski.github.io/test-task-fewcha-github-searcher](https://teplostanski.github.io/test-task-fewcha-github-searcher)\n\n## Тестовое задание на позицию frontend разработчика\n\nНеобходимо создать простое веб-приложение, которое позволяет пользователям искать репозитории на GitHub по имени пользователя и отображать информацию о найденных репозиториях. Используйте GitHub API для получения данных: [GitHub Repositories API](https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#list-repositories-for-a-user).\n\nДополнительным плюсом будет: Финальный билд приложения должен быть запускаться из **Docker контейнера** (хотябы с минимальной конфигурацией)\n\n**Функционал**\n\n- Должно быть текстовое поле куда можно ввести имя пользователя. Триггером к поиску является ввод пользовательского текста. Запросы к api github не должны быть избыточными\n\n- После получения данных, должны появляться карточки с информацией о репозиториях пользователя, информация включает:\n\n  - Название репозитория\n  - Описание (если доступно)\n  - Ссылку на репозиторий\n  - Количество звёзд (stars)\n  - Дату последнего обновления\n\n- В момент ожидания ответа от github api должен быть индикатор загрузки\n\n- Необходимо реализовать пагинацию с шагом 20, триггером к выполнению запроса за следующей страницей должна стать прокрутка экрана вниз, то есть необходимо реализовать механизм бесконечной прокрутки\n\n- Если пользователь вводит некорректное имя пользователя или если возникают ошибки при запросе к API, приложение должно отображать соответствующее сообщение об ошибке понятное человеку.\n\n**Замечания**\n\n- **Обязательно** использование React, Redux/MobX.\n\n- **Желательно** Typescript, Redux-toolkit\n\n- Использование сторонних библиотек будет плюсом только в случае если это оправданно и вы сможете объяснить причину выбора. Показав свои знания в грамотном применении сторонних готовых решений, вы имеете шанс повысить свою профессиональную привлекательность для нас.\n\n- Пишите код так, как бы вы его писали в работе \u0026mdash; внутренности задания будут оцениваться даже тщательней, чем внешнее соответствие заданию. Код должен быть организован так, чтобы его можно было заново использовать.\n\n- Помните про обработку ошибок!\n\n- Верстка может быть самая простая, однако она не должна ломаться при разрешениях от 320px до 1920px. Визуализацию и украшение делайте на ваш вкус. Мы не против использования [tailwind css](https://tailwindcss.com/) или похожего UI фреймворк, но только для UI представления (нельзя использовать JS код для решения задачи, но можно использовать для оформительских эффектов (анимации и тому подобное))!\n\n---\n\n### ✨ Особенности\n\n- 🚀 **Оптимизированная производительность**: Бесконечная прокрутка, дебаунс поиска\n- 🎨 **Современный UI**: Адаптивный дизайн, анимации, тёмная тема\n- 🔍 **Эффективный поиск**: Минимум запросов к API с максимальной производительностью\n- 📱 **Отзывчивый интерфейс**: Адаптирован под все устройства\n- ♿ **Доступность**: Полная поддержка ARIA для скринридеров\n\n### 🛠️ Технологии\n\n- **Frontend**: React, TypeScript, Redux Toolkit, RTK Query\n- **Стилизация**: Tailwind CSS, Hero UI\n- **Сборка**: Vite, SWC\n- **Тестирование**: Vitest, Testing Library\n- **CI/CD**: GitHub Actions\n- **Контейнеризация**: Docker\n\n### 🚀 Быстрый старт\n\n```bash\n# Установка зависимостей\nnpm install\n\n# Запуск в режиме разработки\nnpm run dev\n\n# Сборка для продакшена\nnpm run build\n\n# Запуск тестов\nnpm run test\n```\n\n#### 🐳 Docker\n\n```bash\n# Сборка образа\ndocker build -t github-repos-app .\n\n# Запуск контейнера\ndocker run -p 8080:80 github-repos-app\n```\n\n### 🎯 Ключевые фичи\n\n- Поиск репозиториев по имени пользователя\n- Бесконечная прокрутка результатов\n- Отображение детальной информации о репозиториях\n- Адаптивный и доступный интерфейс\n\n### 📦 Архитектура\n\nПроект следует принципам `Feature-Sliced Design (FSD)` используя подход `Pages first`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteplostanski%2Ftest-task-fewcha-github-searcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteplostanski%2Ftest-task-fewcha-github-searcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteplostanski%2Ftest-task-fewcha-github-searcher/lists"}