This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
HTML, CSS, SASS, Webpack, JavaScript
Библиотеки: Swiper
Node.js + Express
- Доступен прогноз погоды на 7 дней, а также архивные данные за предыдущие 2 дня. Данные берутся с Open Meteo Weather Forecast API.
- Предусмотрено "кэширование": данные о погоде записываются в JSON с добавлением timestamp. На каждый новый запрос для выбранного города проверяется не истек ли прогноз на 1 час и принимается решение запрашивать ли новые данные.
- Прогноз для каждого дня включает в себя средние значения за день (исключая ночные часы): температуру, скорость ветра, относительную влажность, облачность и давление.
- У сегодняшнего дня вместо средних данных отображаются актуальные на текущий час (с учетом локального времени по соответствующим городу координатам и таймзонам).
- Доступна температура за каждый час, которую можно пролистывать с помощью свайпера.
- Время рассвета и заката отображены в свайпере среди почасовых температур.
- Отображено на сколько минут световой день длиннее или короче предыдущего - с учетом удлинения дня в зимне-весеннее и укорочения в летне-осеннее периоды.
- Реализован поиск координат и таймзоны для введенного пользователем названия города. Данные берутся с Open Meteo Geocoding API.
- Предусмотрено "кэширование": данные о геолокации записываются в JSON. Впоследствии при повторных запросах отдаются клиенту.
- Реализован "динамический" поиск координат: при наборе названия города свыше 6 символов сразу же отправляются запросы на геолокацию и клиенту отображается таблица с предварительными результатами. (число 6 выбрано для минимизации запросов к API Open meteo).
- Локальное время, дата и день недели отображаются с учетом таймзоны - для любого города.
- Реализованы мобильный / десктопный режимы.