Kilamate is a modern, high-performance weather forecasting application developed by Zuhaib Rashid. It goes beyond basic temperature readings by providing Real-time Air Quality Index (AQI) data, detailed pollutant breakdowns, and interactive trend charts.
Designed with a focus on user experience, it features a beautiful, responsive interface that works seamlessly across all devices, leveraging the power of Vite for lightning-fast performance.
- 🌍 Live Weather: Accurate current weather data for any city worldwide
- 🌫️ Air Quality Index (AQI): Real-time US AQI scores with color-coded scale
- 📉 AQI Trends: Interactive graphs visualizing air quality forecast
- 🧪 Pollutant Details: Detailed breakdown of PM2.5, PM10, NO2, and SO2 levels
⚠️ Weather Alerts: Smart alerts for extreme weather conditions- 🌡️ Unit Preferences: Toggle between Celsius/Fahrenheit and wind speed units
- 🔍 Smart Search: Search functionality with history and favorite cities
- 📊 Interactive Charts: Temperature, humidity, and wind trends using Recharts
- ⚡ High Performance: Optimized API caching with TanStack Query
- ✨ Modern UI: Clean, dark-mode-first design using Shadcn UI + Tailwind CSS
- 🛡️ Error Handling: Robust error boundaries for stability
- Framework: React 18 + Vite
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Shadcn UI
- State Management: TanStack Query + Zustand
- Charts: Recharts
- Icons: Lucide React
- API: OpenWeather API
- Node.js 18+ and npm
- OpenWeather API key (Get one free here)
-
Clone the repository
git clone https://github.com/Zuhaib-dev/Kilamate.git cd Kilamate -
Fix PowerShell Execution Policy (Windows only)
If you encounter "running scripts is disabled" error, run PowerShell as Administrator:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
-
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:cp .env.example .env
Edit
.envand add your OpenWeather API key:VITE_OPENWEATHER_API_KEY=your_api_key_here -
Start the development server
npm run dev
-
Open your browser
Navigate to
http://localhost:5173
npm run build
npm run previewIntelligent alerts for:
- High wind conditions
- Extreme temperatures (heat/cold)
- Low visibility (fog/mist)
- High humidity
- Temperature perception differences
Customize your experience:
- Temperature units (Celsius/Fahrenheit)
- Wind speed units (km/h, mph, m/s)
- Persistent settings across sessions
- Real-time AQI with color-coded severity
- 24-hour forecast trends
- Detailed pollutant breakdown
- Health recommendations
Kilamate/
├── public/ # Static assets
├── src/
│ ├── api/ # API configuration and types
│ ├── components/ # React components
│ │ ├── ui/ # Shadcn UI components
│ │ └── ... # Feature components
│ ├── context/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ ├── pages/ # Page components
│ └── App.tsx # Main app component
├── .env.example # Environment variables template
└── package.json # Dependencies
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- PowerShell execution policy may block npm on Windows (see installation steps)
- Zustand dependency needs manual installation after fixing PowerShell policy
Zuhaib Rashid
Frontend Web Developer | Class 12 (Medical Stream)
📍 Srinagar, Jammu and Kashmir, India
- 📧 Email: zuhaibrashid01@gmail.com
- 💼 LinkedIn: Xuhaib Rashid
- 🐙 GitHub: Zuhaib-dev
- 🐦 Twitter / X: @xuhaib_x9
- 🌐 Portfolio: zuhaibrashid.com
Sheryians Coding School
This project is licensed under the MIT License.
- PWA support with offline mode
- Extended 7-14 day forecasts
- Weather comparison between cities
- Social sharing features
- Voice search integration
- Mobile app (React Native)
