diff --git a/README.es.md b/README.es.md deleted file mode 100755 index 03f4ab6..0000000 --- a/README.es.md +++ /dev/null @@ -1,100 +0,0 @@ -# Parcel template - -Este proyecto fue creado con Parcel. [Consulte la documentación](https://parceljs.org/). -para conocer y personalizar las funciones adicionales. - -## Preparación de un nuevo proyecto - -1. Asegúrate de que la versión LTS de Node.js está instalada en tu equipo. - [Descárgala e instálala](https://nodejs.org/en/) si es necesario. -2. Clona este repositorio. -3. Cambie el nombre de la carpeta con `parcel-project-template` por el nombre de tu proyecto. -4. Crea un nuevo repositorio vacío en GitHub. -5. Abre el proyecto en VSCode, ejecuta el terminal y enlaza el proyecto con el repositorio de GitHub - [según las instrucciones](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories#changing-a-remote-repositorys-url). -6. Instala las dependencias del proyecto en el terminal con el comando `npm install`. -7. Inicia el modo de desarrollo, ejecutando el comando `npm start`. -8. Ve a la dirección [http://localhost:1234](http://localhost:1234) en tu navegador. - Esta página se recargará automáticamente después de guardar los cambios en los - archivos del proyecto. - -## Archivos y carpetas - -- Todos los partials de los archivos de estilo deben estar en la carpeta `src/sass` - y ser importados en los archivos de estilos de la página. Por ejemplo, para - `index.html` el archivo de estilos se llama `index.scss`. -- Añade las imágenes a la carpeta `src/images`. El ensamblador las optimizará, - pero sólo cuando se cargue la versión de producción del proyecto. Todo esto - se hace en la nube, para no sobrecargar tu ordenador, ya que puede tardar - mucho en máquinas poco potentes. - -## Deploy - -Para configurar un proyecto para ser implementado, hay algunos pasos adicionales -para configurar tu repositorio. Ve a la pestaña `Settings` y en la subsección -`Actions`, selecciona la opción `General`. - -![GitHub actions settings](./assets/actions-config-step-1.png) - -Baja hasta la última sección, asegurándote de que las opciones esten seleccionadas -como en la siguiente imagen, y haz clic en `Save`. Sin estas opciones, la compilación -no tendrá suficientes permisos para automatizar el proceso de implementación. - -![GitHub actions settings](./assets/actions-config-step-2.png) - -La versión de producción del proyecto se compilará e implementará automáticamente -en GitHub Pages, en la rama `gh-pages`, cada vez que se actualice la rama `main`. -Por ejemplo, después de un push directo o de un pool request aceptado. Para -ello, edita el campo `homepage` y el script `build` en el archivo `package.json`, -sustituyendo `your_username` y `your_repo_name` por los tuyos propios, y envía -los cambios a GitHub. - -```json -"homepage": "https://your_username.github.io/your_repo_name/", -"scripts": { - "build": "parcel build src/*.html --public-url /your_repo_name/" -}, -``` - -A continuación, hay que ir a la configuración del repositorio de GitHub -(`Settings` > `Pages`) y seleccionar que la versión de producción de los archivos -se distribuya desde la carpeta `/root` de la rama `gh-pages`, si no se hizo automáticamente. - -![GitHub Pages settings](./assets/repo-settings.png) - -### Estado del deploy - -El estado del deploy del último commit se indica con un icono junto a su identificador. - -- **Color amarillo** - el proyecto se está compilando y desplegando. -- **Color verde** - el deploy se completó con éxito. -- **Color rojo** - Se ha producido un error durante el linting, la compilación o el deploy. - -Se puede ver información de estado más detallada haciendo clic en el icono y -en el enlace `Details` de la ventana desplegable. - -![Deployment status](./assets/status.png) - -### Página activa - -Después de un tiempo, normalmente un par de minutos, la página activa se puede -ver en la dirección especificada en la propiedad `homepage`. Por ejemplo, aquí -está el enlace a la versión activa de este repositorio. -[https://goitacademy.github.io/parcel-project-template](https://goitacademy.github.io/parcel-project-template). - -Si se abre una página en blanco, asegúrese de que no haya errores en la pestaña -`Console` relacionados con rutas incorrectas a los archivos CSS y JS del proyecto (**404**). -Lo más probable es que tenga un valor incorrecto para la propiedad `homepage` o el -script `build` en el archivo `package.json`. - -## ¿Cómo funciona? - -![How it works](./assets/how-it-works.png) - -1. Después de cada push a la rama `main` del repositorio GitHub, se ejecuta un - script especial (GitHub Action) del archivo `.github/workflows/deploy.yml`. -2. Todos los archivos del repositorio se copian en el servidor, donde el - proyecto se inicializa y se compila antes de ser desplegado. -3. Si todos los pasos tienen éxito, la versión de producción compilada de los - archivos del proyecto se envía a la rama `gh-pages`. De lo contrario, el - registro de ejecución del script indicará cuál es el problema. diff --git a/README.md b/README.md index ce390a3..3fe8586 100755 --- a/README.md +++ b/README.md @@ -1,99 +1,117 @@ -# Parcel template - -Этот проект был создан при помощи Parcel. Для знакомства и настройки -дополнительных возможностей [обратись к документации](https://parceljs.org/). - -## Подготовка нового проекта - -1. Убедись что на компьютере установлена LTS-версия Node.js. - [Скачай и установи](https://nodejs.org/en/) её если необходимо. -2. Склонируй этот репозиторий. -3. Измени имя папки с `parcel-project-template` на имя своего проекта. -4. Создай новый пустой репозиторий на GitHub. -5. Открой проект в VSCode, запусти терминал и свяжи проект с GitHub-репозиторием - [по инструкции](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories#changing-a-remote-repositorys-url). -6. Установи зависимости проекта в терминале командой `npm install` . -7. Запусти режим разработки, выполнив команду `npm start`. -8. Перейди в браузере по адресу [http://localhost:1234](http://localhost:1234). - Эта страница будет автоматически перезагружаться после сохранения изменений в - файлах проекта. - -## Файлы и папки - -- Все паршалы файлов стилей должны лежать в папке `src/sass` и импортироваться в - файлы стилей страниц. Например, для `index.html` файл стилей называется - `index.scss`. -- Изображения добавляй в папку `src/images`. Сборщик оптимизирует их, но только - при деплое продакшн версии проекта. Все это происходит в облаке, чтобы не - нагружать твой компьютер, так как на слабых машинах это может занять много - времени. - -## Деплой - -Для настройки деплоя проекта необходимо выполнить несколько дополнительных шагов -по настройке твоего репозитория. Зайди во вкладку `Settings` и в подсекции -`Actions` выбери выбери пункт `General`. - -![GitHub actions settings](./assets/actions-config-step-1.png) - -Пролистай страницу до последней секции, в которой убедись что выбраны опции как -на следующем изображении и нажми `Save`. Без этих настроек у сборки будет -недостаточно прав для автоматизации процесса деплоя. - -![GitHub actions settings](./assets/actions-config-step-2.png) - -Продакшн версия проекта будет автоматически собираться и деплоиться на GitHub -Pages, в ветку `gh-pages`, каждый раз когда обновляется ветка `main`. Например, -после прямого пуша или принятого пул-реквеста. Для этого необходимо в файле -`package.json` отредактировать поле `homepage` и скрипт `build`, заменив -`your_username` и `your_repo_name` на свои, и отправить изменения на GitHub. - -```json -"homepage": "https://your_username.github.io/your_repo_name/", -"scripts": { - "build": "parcel build src/*.html --public-url /your_repo_name/" -}, +# Критерії приймання +* Створено репозиторій goit-js-hw-11. +* Домашня робота містить два посилання: на вихідні файли і робочу сторінку на GitHub Pages. +* В консолі відсутні помилки і попередження під час відкриття живої сторінки завдання. +* Проект зібраний за допомогою parcel-project-template. +* Для HTTP-запитів використана бібліотека axios. +* Використовується синтаксис async/await. +* Для повідомлень використана бібліотека notiflix. +* Код відформатований за допомогою Prettier. +## Завдання - пошук зображень +Створи фронтенд частину застосунку пошуку і перегляду зображень за ключовим словом. Додай оформлення елементів інтерфейсу. Подивись демо-відео роботи застосунку. +https://user-images.githubusercontent.com/17479434/125040406-49a6f600-e0a0-11eb-975d-e7d8eaf2af6b.mp4 + +## Форма пошуку +Форма спочатку міститья в HTML документі. Користувач буде вводити рядок для пошуку у текстове поле, а по сабміту форми необхідно виконувати HTTP-запит. ``` +
+ + +
+``` +## HTTP-запити +Для бекенду використовуй публічний API сервісу Pixabay. Зареєструйся, отримай свій унікальний ключ доступу і ознайомся з документацією. + +Список параметрів рядка запиту, які тобі обов'язково необхідно вказати: + +* key - твій унікальний ключ доступу до API. +* q - термін для пошуку. Те, що буде вводити користувач. +* image_type - тип зображення. На потрібні тільки фотографії, тому постав значення photo. +* orientation - орієнтація фотографії. Постав значення horizontal. +* safesearch - фільтр за віком. Постав значення true. + +У відповіді буде масив зображень, що задовольнили критерії параметрів запиту. Кожне зображення описується об'єктом, з якого тобі цікаві тільки наступні властивості: + +* webformatURL - посилання на маленьке зображення для списку карток. +* largeImageURL - посилання на велике зображення. +* tags - рядок з описом зображення. Підійде для атрибуту alt. +* likes - кількість лайків. +* views - кількість переглядів. +* comments - кількість коментарів. +* downloads - кількість завантажень. + +Якщо бекенд повертає порожній масив, значить нічого підходящого не було знайдено. У такому разі показуй повідомлення з текстом "Sorry, there are no images matching your search query. Please try again.". Для повідомлень використовуй бібліотеку notiflix. + +## Галерея і картка зображення +Елемент div.gallery спочатку міститься в HTML документі, і в нього необхідно рендерити розмітку карток зображень. Під час пошуку за новим ключовим словом необхідно повністю очищати вміст галереї, щоб не змішувати результати. +``` + +``` +Шаблон розмітки картки одного зображення для галереї. +``` +
+ +
+

+ Likes +

+

+ Views +

+

+ Comments +

+

+ Downloads +

+
+
+``` +## Пагінація +Pixabay API підтримує пагінацію і надає параметри page і per_page. Зроби так, щоб в кожній відповіді приходило 40 об'єктів (за замовчуванням 20). + +* Початкове значення параметра page повинно бути 1. +* З кожним наступним запитом, його необхідно збільшити на 1. +* У разі пошуку за новим ключовим словом, значення page потрібно повернути до початкового, оскільки буде пагінація по новій колекції зображень. + +HTML документ вже містить розмітку кнопки, по кліку на яку, необхідно виконувати запит за наступною групою зображень і додавати розмітку до вже існуючих елементів галереї. +``` + +``` +* В початковому стані кнопка повинна бути прихована. +* Після першого запиту кнопка з'являється в інтерфейсі під галереєю. +* При повторному сабміті форми кнопка спочатку ховається, а після запиту знову відображається. + +У відповіді бекенд повертає властивість totalHits - загальна кількість зображень, які відповідають критерію пошуку (для безкоштовного акаунту). Якщо користувач дійшов до кінця колекції, ховай кнопку і виводь повідомлення з текстом "We're sorry, but you've reached the end of search results.". -Далее необходимо зайти в настройки GitHub-репозитория (`Settings` > `Pages`) и -выставить раздачу продакшн версии файлов из папки `/root` ветки `gh-pages`, если -это небыло сделано автоматически. - -![GitHub Pages settings](./assets/repo-settings.png) - -### Статус деплоя - -Статус деплоя крайнего коммита отображается иконкой возле его идентификатора. - -- **Желтый цвет** - выполняется сборка и деплой проекта. -- **Зеленый цвет** - деплой завершился успешно. -- **Красный цвет** - во время линтинга, сборки или деплоя произошла ошибка. - -Более детальную информацию о статусе можно посмотреть кликнув по иконке, и в -выпадающем окне перейти по ссылке `Details`. - -![Deployment status](./assets/status.png) +## Додатково -### Живая страница +## УВАГА +Наступний функціонал не обов'язковий для здавання завдання, але буде хорошою додатковою практикою. -Через какое-то время, обычно пару минут, живую страницу можно будет посмотреть -по адресу указанному в отредактированном свойстве `homepage`. Например, вот -ссылка на живую версию для этого репозитория -[https://goitacademy.github.io/parcel-project-template](https://goitacademy.github.io/parcel-project-template). +## Повідомлення +Після першого запиту з кожним новим пошуком отримувати повідомлення, в якому буде написано, скільки всього знайшли зображень (властивість totalHits). Текст повідомлення - "Hooray! We found totalHits images." -Если открывается пустая страница, убедись что во вкладке `Console` нет ошибок -связанных с неправильными путями к CSS и JS файлам проекта (**404**). Скорее -всего у тебя неправильное значение свойства `homepage` или скрипта `build` в -файле `package.json`. +## Бібліотека SimpleLightbox +Додати відображення великої версії зображення з бібліотекою SimpleLightbox для повноцінної галереї. -## Как это работает +* У розмітці необхідно буде обгорнути кожну картку зображення у посилання, як зазначено в документації. +* Бібліотека містить метод refresh(), який обов'язково потрібно викликати щоразу після додавання нової групи карток зображень. +Для того щоб підключити CSS код бібліотеки в проект, необхідно додати ще один імпорт, крім того, що описаний в документації. +``` +// Описаний в документації +import SimpleLightbox from "simplelightbox"; +// Додатковий імпорт стилів +import "simplelightbox/dist/simple-lightbox.min.css"; +``` -![How it works](./assets/how-it-works.png) +## Нескінченний скрол +Замість кнопки «Load more», можна зробити нескінченне завантаження зображень під час прокручування сторінки. Ми надаємо тобі повну свободу дій в реалізації, можеш використовувати будь-які бібліотеки. -1. После каждого пуша в ветку `main` GitHub-репозитория, запускается специальный - скрипт (GitHub Action) из файла `.github/workflows/deploy.yml`. -2. Все файлы репозитория копируются на сервер, где проект инициализируется и - проходит сборку перед деплоем. -3. Если все шаги прошли успешно, собранная продакшн версия файлов проекта - отправляется в ветку `gh-pages`. В противном случае, в логе выполнения - скрипта будет указано в чем проблема. diff --git a/README.pl.md b/README.pl.md deleted file mode 100755 index c26cb1a..0000000 --- a/README.pl.md +++ /dev/null @@ -1,103 +0,0 @@ -# Parcel template - -Ten projekt został stworzony przy pomocy Parcel. W celu zapoznania się i -skonfigurowania dodatkowych opcji [zobacz dokumentację](https://parceljs.org/) - -## Przygotowanie nowego projektu - -1. Upewnij się, że na komputerze zainstalowana jest wersja LTS Node.js. - [Ściągnij i zainstaluj](https://nodejs.org/en/), jeśli jest taka potrzeba. -2. Sklonuj to repozytorium. -3. Zmień nazwę folderu z `parcel-project-template` na nazwę swojego projektu. -4. Utwórz nowe, puste repozytorium na GitHub. -5. Otwórz projekt w VSCode, uruchom terminal i zwiąż projekt z repozytorium - GitHub - [zgodnie z instrukcją](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories#changing-a-remote-repositorys-url). -6. Utwórz zależność projektu w terminalu przez polecenie `npm install` . -7. Włącz tryb edycji, wykonując polecenie `npm start`. -8. Przejdź w przeglądarce pod adres - [http://localhost:1234](http://localhost:1234). Ta strona będzie się - automatycznie odświeżać po dokonaniu zmian w plikach projektu. - -## Pliki i foldery - -- Wszystkie partiale plików stylów powinny znajdować się w folderze `src/sass` i - importować się w pliki stylów stron. Na przykład dla `index.html` plik stylów - nazywa się `index.scss`. -- Obrazy dodawaj do pliku `src/images`. Moduł zbierający optymalizuje je, ale - tylko przy deploymencie wersji produkcyjnej projektu. Wszystko to zachodzi w - chmurze, aby nie obciążać twojego komputera, ponieważ na słabszym sprzęcie - może to zająć sporo czasu. - -## Deployment - -Aby skonfigurować deployment projektu należy wykonać kilka dodatkowych kroków -konfigurowania twojego repozytorium. Wejdź w zakładkę `Settings` i w podsekcji -`Actions` wybierz punkt `General`. - -![GitHub actions settings](./assets/actions-config-step-1.png) - -Przejdź do ostatniej sekcji, w której upewnij się, że wybrane opcje są takie -same jak na następnym obrazku i kliknij `Save`. Bez tych ustawień w module -zbierającym będzie zbyt mało pozwoleń dla automatyzacji procesu deploymentu. - -![GitHub actions settings](./assets/actions-config-step-2.png) - -Wersja produkcyjna projektu będzie automatycznie gromadzić się i deployować na -GitHub Pages w gałęzi `gh-pages` za każdym razem, gdy aktualizuje się gałąź -`main`. Na przykład po bezpośrednim pushu lub przyjętym pull requeście. W tym -celu niezbędne jest, aby w pliku `package.json` wyedytować pole `homepage` i -skrypt `build`, zamieniając `your_username` i `your_repo_name` na swoje nazwy i -wysłać zmiany na GitHub. - -```json -"homepage": "https://your_username.github.io/your_repo_name/", -"scripts": { - "build": "parcel build src/*.html --public-url /your_repo_name/" -}, -``` - -Dalej należy wejść w ustawienia repozytorium GitHub (`Settings` > `Pages`) i -wystawić dystrybucję wersji produkcyjnej z folderu `/root` gałęzi `gh-pages`, -jeśli nie zrobiło się to automatycznie. - -![GitHub Pages settings](./assets/repo-settings.png) - -### Status deploymentu - -Status deploymentu ostatniego commitu wyświetla się na ikonie obok jego -identyfikatora. - -- ** Żółty kolor** - wykonuje się zbudowanie i deployment projektu. -- ** Zielony kolor** - deployment zakończył się sukcesem. -- ** Czerwony kolor** - w czasie lintingu, budowania lub deplymentu pojawił się - błąd. - -Więcej informacji o statusie można zobaczyć klikając na ikonkę i w wyskakującym -oknie przejść do odnośnika `Details`. - -![Deployment status](./assets/status.png) - -### Działająca strona - -Po jakimś czasie, zazwyczaj kilku minut, działającą stronę będzie można zobaczyć -pod adresem wskazanym w wyedytowanej właściwości `homepage`. Na przykład tu -znajduje się odnośnik do działającej strony dla tego repozytorium -[https://goitacademy.github.io/parcel-project-template](https://goitacademy.github.io/parcel-project-template). - -Jeżeli otwiera się pusta strona, upewnij się, że w zakładce `Console` nie ma -błędów związanych z nieprawidłowymi ścieżkami do plików projektu CSS i JS -(**404**). Najprawdopodobniej wprowadzona została nieprawidłowa wartość -właściwości `homepage` lub skryptu `build` w pliku `package.json`. - -## Jak to działa - -![How it works](./assets/how-it-works.png) - -1. Po każdym pushu w gałęzi `main` repozytorium GitHub, włącza się specjalny - skrypt (GitHub Action) z pliku `.github/workflows/deploy.yml`. -2. Wszystkie pliki repozytorium kopiują się na serwer, gdzie projekt - inicjalizuje się i buduje przed deploymentem. -3. Jeżeli wszystkie kroki zakończyły się sukcesem, zbudowana wersja produkcyjna - plików projektu wysyła się w gałąź `gh-pages`. W przeciwnym razie, w logu - wykonania skryptu wskazane zostanie, w czym jest problem. diff --git a/README.uk.md b/README.uk.md deleted file mode 100755 index ce390a3..0000000 --- a/README.uk.md +++ /dev/null @@ -1,99 +0,0 @@ -# Parcel template - -Этот проект был создан при помощи Parcel. Для знакомства и настройки -дополнительных возможностей [обратись к документации](https://parceljs.org/). - -## Подготовка нового проекта - -1. Убедись что на компьютере установлена LTS-версия Node.js. - [Скачай и установи](https://nodejs.org/en/) её если необходимо. -2. Склонируй этот репозиторий. -3. Измени имя папки с `parcel-project-template` на имя своего проекта. -4. Создай новый пустой репозиторий на GitHub. -5. Открой проект в VSCode, запусти терминал и свяжи проект с GitHub-репозиторием - [по инструкции](https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories#changing-a-remote-repositorys-url). -6. Установи зависимости проекта в терминале командой `npm install` . -7. Запусти режим разработки, выполнив команду `npm start`. -8. Перейди в браузере по адресу [http://localhost:1234](http://localhost:1234). - Эта страница будет автоматически перезагружаться после сохранения изменений в - файлах проекта. - -## Файлы и папки - -- Все паршалы файлов стилей должны лежать в папке `src/sass` и импортироваться в - файлы стилей страниц. Например, для `index.html` файл стилей называется - `index.scss`. -- Изображения добавляй в папку `src/images`. Сборщик оптимизирует их, но только - при деплое продакшн версии проекта. Все это происходит в облаке, чтобы не - нагружать твой компьютер, так как на слабых машинах это может занять много - времени. - -## Деплой - -Для настройки деплоя проекта необходимо выполнить несколько дополнительных шагов -по настройке твоего репозитория. Зайди во вкладку `Settings` и в подсекции -`Actions` выбери выбери пункт `General`. - -![GitHub actions settings](./assets/actions-config-step-1.png) - -Пролистай страницу до последней секции, в которой убедись что выбраны опции как -на следующем изображении и нажми `Save`. Без этих настроек у сборки будет -недостаточно прав для автоматизации процесса деплоя. - -![GitHub actions settings](./assets/actions-config-step-2.png) - -Продакшн версия проекта будет автоматически собираться и деплоиться на GitHub -Pages, в ветку `gh-pages`, каждый раз когда обновляется ветка `main`. Например, -после прямого пуша или принятого пул-реквеста. Для этого необходимо в файле -`package.json` отредактировать поле `homepage` и скрипт `build`, заменив -`your_username` и `your_repo_name` на свои, и отправить изменения на GitHub. - -```json -"homepage": "https://your_username.github.io/your_repo_name/", -"scripts": { - "build": "parcel build src/*.html --public-url /your_repo_name/" -}, -``` - -Далее необходимо зайти в настройки GitHub-репозитория (`Settings` > `Pages`) и -выставить раздачу продакшн версии файлов из папки `/root` ветки `gh-pages`, если -это небыло сделано автоматически. - -![GitHub Pages settings](./assets/repo-settings.png) - -### Статус деплоя - -Статус деплоя крайнего коммита отображается иконкой возле его идентификатора. - -- **Желтый цвет** - выполняется сборка и деплой проекта. -- **Зеленый цвет** - деплой завершился успешно. -- **Красный цвет** - во время линтинга, сборки или деплоя произошла ошибка. - -Более детальную информацию о статусе можно посмотреть кликнув по иконке, и в -выпадающем окне перейти по ссылке `Details`. - -![Deployment status](./assets/status.png) - -### Живая страница - -Через какое-то время, обычно пару минут, живую страницу можно будет посмотреть -по адресу указанному в отредактированном свойстве `homepage`. Например, вот -ссылка на живую версию для этого репозитория -[https://goitacademy.github.io/parcel-project-template](https://goitacademy.github.io/parcel-project-template). - -Если открывается пустая страница, убедись что во вкладке `Console` нет ошибок -связанных с неправильными путями к CSS и JS файлам проекта (**404**). Скорее -всего у тебя неправильное значение свойства `homepage` или скрипта `build` в -файле `package.json`. - -## Как это работает - -![How it works](./assets/how-it-works.png) - -1. После каждого пуша в ветку `main` GitHub-репозитория, запускается специальный - скрипт (GitHub Action) из файла `.github/workflows/deploy.yml`. -2. Все файлы репозитория копируются на сервер, где проект инициализируется и - проходит сборку перед деплоем. -3. Если все шаги прошли успешно, собранная продакшн версия файлов проекта - отправляется в ветку `gh-pages`. В противном случае, в логе выполнения - скрипта будет указано в чем проблема.