Нужно создать приложение для просмотра текущей погоды и прогноза на несколько дней вперед, используя OpenWeatherMap API. Приложение должно позволять пользователям искать погоду в разных городах и сохранять избранные города.(Нужно обяснить как был разработано приложение). Технические требования:</b></p><ol><li><p><b>Next.js и TypeScript:</b></p><ul><li><p><b>Приложение должно быть написано с использованием Next.js и TypeScript.</b></p></li></ul></li><li><p><b>Структура страниц:</b></p><ul><li><p><b>Главная страница: Поле поиска для ввода города и отображение текущей погоды в выбранном городе.</b></p></li><li><p><b>Страница прогноза погоды: Детальный прогноз погоды на несколько дней вперед.</b></p></li><li><p><b>Страница избранного: Отображает сохраненные пользователем города с краткой информацией о погоде.</b></p></li></ul></li><li><p><b>SCSS Modules и Bootstrap:</b></p><ul><li><p><b>Используйте SCSS Modules для кастомных стилей и Bootstrap для верстки.</b></p></li></ul></li><li><p><b>Работа с API:</b></p><ul><li><p><b>Используйте OpenWeatherMap API для получения текущей погоды и прогноза.</b></p></li><li><p><b>Взаимодействие с API должно быть реализовано через Axios.</b></p></li></ul></li><li><p><b>Состояние приложения:</b></p><ul><li><p><b>Управляйте состоянием (избранные города, результаты поиска) с помощью Zustand.</b></p></li><li><p><b>Избранные города должны сохраняться в глобальном состоянии и оставаться после перезагрузки страницы.</b></p></li></ul></li><li><p><b>UI/UX:</b></p><ul><li><p><b>Обеспечьте понятный интерфейс, включая индикацию загрузки данных и обработку ошибок.</b></p></li></ul></li><li><p><b>Качество кода:</b></p><ul><li><p><b>Используйте ESLint для проверки кода на соответствие стандартам качества.</b></p></li><li><p><b>Настройте линтер для стилей (например, Stylelint) для поддержания единообразия и качества CSS/SCSS кода.</b></p></li></ul></li></ol><p><b>Важно:</b></p><ul><li><p><b>Умение работать с внешним API и отображать данные пользователям.</b></p></li><li><p><b>Организация состояния приложения и работа с Zustand.</b></p></li><li><p><b>Обработка различных состояний интерфейса (загрузка, ошибки).</b></p></li><li><p><b>Структура проекта и поддержание чистоты кода.</b></p></li></ul>