۱۶

پروژه دوم: اپ هواشناسی 🌦️

یه اپلیکیشن هواشناسی واقعی با استفاده از API می‌سازیم!

پیش‌نمایش پروژه نهایی

در این پروژه، یک اپلیکیشن ساده می‌سازیم که کاربر اسم یک شهر را وارد می‌کند و ما با استفاده از یک API رایگان هواشناسی، دمای فعلی و وضعیت هوا را به او نشان می‌دهیم.

کد کامل پروژه

برای این پروژه به یک کلید API از سایت OpenWeatherMap نیاز داریم. ثبت‌نامش رایگانه!

app.js
// کلید API خود را اینجا قرار دهید
const apiKey = 'YOUR_OPENWEATHERMAP_API_KEY';

const cityInput = document.getElementById('city-input');
const searchBtn = document.getElementById('search-btn');
const weatherInfo = document.getElementById('weather-info');

async function getWeather(city) {
  if (!city) {
    alert('لطفا اسم شهر را وارد کنید.');
    return;
  }
  
  weatherInfo.innerHTML = '<p>در حال دریافت اطلاعات...</p>';
  weatherInfo.classList.remove('hidden');
  
  const apiUrl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=fa`;

  try {
    const response = await fetch(apiUrl);
    if (!response.ok) {
      throw new Error('شهر مورد نظر پیدا نشد!');
    }
    const data = await response.json();
    displayWeather(data);
  } catch (error) {
    weatherInfo.innerHTML = `<p class="text-red-500">${error.message}</p>`;
  }
}

function displayWeather(data) {
  const { name, main, weather } = data;
  weatherInfo.innerHTML = `
    <h3 class="text-2xl font-bold">${name}</h3>
    <p class="text-4xl font-bold my-2">${Math.round(main.temp)}°C</p>
    <p class="text-lg text-muted-foreground">${weather[0].description}</p>
  `;
}

searchBtn.addEventListener('click', () => {
  getWeather(cityInput.value);
});

cityInput.addEventListener('keypress', (e) => {
  if (e.key === 'Enter') {
    getWeather(cityInput.value);
  }
});

آفرین! دوره تموم شد! 🥳

شما با موفقیت این دوره کامل رو به پایان رسوندین و دو تا پروژه واقعی ساختین! حالا یه درک خیلی خوب از جاوااسکریپت دارین و آماده‌این که وارد دنیای هیجان‌انگیز فریم‌ورک‌ها (مثل React و Vue) بشین یا پروژه‌های شخصی خودتون رو شروع کنین. موفق باشی!