Skip to content

Misrilal-Sah/SkyCast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image

Vue.js Vite Leaflet OpenWeatherMap

License: MIT Version PRs Welcome Deploy


Real-time weather intelligence wrapped in a strikingly beautiful interface — built for those who expect more than just a forecast.


🔍 Explore Features  •  🚀 Quick Start  •  🗺️ Project Structure  •  🔑 API Setup  •  📱 Screenshots



🌟 What is SkyCast?

SkyCast is a premium, full-featured weather application engineered with Vue.js 3 Composition API and powered by OpenWeatherMap. It goes beyond simple weather lookups — offering a complete forecast experience with interactive maps, dynamic ambient themes, and a glass-morphism UI that adapts to every sky condition in real time.

Whether you're planning a mountain hike or a backyard barbecue, SkyCast delivers the data you need, presented in the most beautiful way possible.


✨ Features

🌡️ Real-Time Weather

  • Current temperature with feels-like indicator
  • Animated weather condition icons
  • Humidity, wind speed, pressure & visibility at a glance
  • Sunrise & sunset times with visual progress

📅 Comprehensive Forecasts

  • Hourly Forecast — Next 24 hours with precipitation probability
  • 7-Day Forecast — Weekly outlook with high/low temps
  • Temperature trend visualization across the week

🗺️ Smart Location Search

  • City Search — Instant auto-suggestions with country flags
  • Pincode Search — 6-digit Indian pincode support via India Post API
  • Interactive Map — Leaflet-powered map for precise location pinning
  • GPS Location — One-click current location detection

🎨 Premium UI / UX

  • Dynamic Backgrounds — Theme shifts with weather conditions
  • Glass-morphism Cards — Frosted glass aesthetic
  • Dark / Light Mode — Persistent theme preference
  • °C / °F Toggle — Instant unit conversion
  • Fully Responsive — Mobile, tablet & desktop optimized

💾 Smart Persistence

  • Recent searches history with quick re-access
  • Theme and unit preferences saved across sessions
  • Smooth transitions and micro-animations throughout

⚡ Developer Experience

  • Vite — Lightning-fast HMR dev server
  • Modular Architecture — Clean component separation
  • gh-pages deploy — One-command production deploy
  • Environment Variables — Secure API key management

🌈 Dynamic Weather Themes

The entire app atmosphere shifts based on live conditions:

Condition Theme Color Palette
☀️ Clear Day Bright Sky Azure → Sky Blue
🌙 Clear Night Midnight Deep Violet → Indigo
⛅ Partly Cloudy Soft Drift Pearl → Steel Blue
☁️ Overcast Ash Cloud Slate → Cool Gray
🌧️ Rain Storm Front Navy → Steel
⛈️ Thunderstorm Electric Night Charcoal → Dark Violet
❄️ Snow Frost Ice White → Pale Blue
🌫️ Fog / Mist Phantom Muted Gray → Smoke

📸 Screenshots

Light Mode Dark Mode
Clear sky, crisp interface Night mode, deep contrast

💡 Add your own screenshots by dropping images into a /screenshots folder and referencing them here.


🚀 Getting Started

Prerequisites

Installation

# 1. Clone the repository
git clone https://github.com/Misrilal-Sah/SkyCast.git
cd SkyCast

# 2. Install dependencies
npm install

# 3. Set up environment variables
cp .env.example .env
# Edit .env and add your API key:
# VITE_WEATHER_API_KEY=your_openweathermap_key_here

# 4. Start development server
npm run dev

Open http://localhost:3000 in your browser — you're live! 🎉

Available Scripts

Command Description
npm run dev Start local development server with HMR
npm run build Build optimized production bundle → dist/
npm run preview Preview production build locally
npm run deploy Build and deploy to GitHub Pages

🔑 API Setup

SkyCast uses two external APIs:

🌤️ OpenWeatherMap API (required)
  1. Create a free account at openweathermap.org
  2. Generate an API key from your dashboard
  3. Add it to your .env file:
    VITE_WEATHER_API_KEY=your_key_here

Endpoints used: /weather, /forecast, /geo/1.0/direct, /geo/1.0/reverse

📮 India Post API (built-in, no key needed)

Used for pincode → coordinates resolution. Queries api.postalpincode.in and then geocodes the resulting city name. No setup required.


📁 Project Structure

skycast/
├── 📄 index.html
├── ⚙️  vite.config.js
├── 📦 package.json
└── src/
    ├── 🧩 App.vue                     # Root component & state management
    ├── 🚀 main.js                     # App entry point
    │
    ├── components/
    │   ├── 🔍 SearchBar.vue           # City / pincode search with suggestions
    │   ├── 🌡️  CurrentWeather.vue     # Main temperature & condition display
    │   ├── 📊 WeatherDetails.vue      # Humidity, wind, pressure, visibility
    │   ├── 🕐 HourlyForecast.vue      # Next 24-hour timeline
    │   ├── 📅 DailyForecast.vue       # 7-day forecast cards
    │   ├── 🌅 AdditionalInfo.vue      # Sunrise, sunset & UV info
    │   └── 🗺️  MapSelector.vue        # Leaflet interactive map modal
    │
    ├── services/
    │   └── 🌐 weatherApi.js           # All API calls (weather, geocoding)
    │
    ├── styles/
    │   └── 🎨 main.css                # Global styles, themes & animations
    │
    └── utils/
        └── 🛠️  helpers.js             # Temp, wind, pressure formatters

🎯 Usage Guide

Action How To
🔍 Search a city Type any city name → select from live suggestions
📮 Search by pincode Enter any 6-digit Indian pincode
🗺️ Pick on map Click the map icon → drop a pin anywhere on earth
📍 Use my location Click the GPS icon for instant local weather
🌙 Toggle dark mode Click moon/sun icon in the header
🌡️ Switch units Click °C / °F button to toggle
🕓 Recent searches Tap any saved city for instant reload

🛠️ Tech Stack

Layer Technology Role
Frontend Vue.js 3 + Composition API Reactive UI & component logic
Build Tool Vite 4 Blazing-fast dev & optimized builds
Maps Leaflet 1.9 Interactive location picker
Weather Data OpenWeatherMap API Current weather + 5-day forecast
Geocoding OWM Geo API + India Post API City & pincode resolution
Deployment GitHub Pages + gh-pages Static site hosting
Styling Vanilla CSS + CSS Variables Theming, glass-morphism, animations

🤝 Contributing

Contributions are warmly welcomed! Here's how:

# Fork & clone
git clone https://github.com/Misrilal-Sah/SkyCast.git

# Create a feature branch
git checkout -b feature/amazing-feature

# Commit your changes
git commit -m "feat: add amazing feature"

# Push and open a PR
git push origin feature/amazing-feature

📜 License

Distributed under the MIT License — free to use, modify, and distribute.


SkyCast Footer
Credits Typing SVG

If SkyCast brought weather to life for you, drop a ⭐ — it means the world!

About

SkyCast is a modern, feature-rich weather application built with Vue.js, offering real-time conditions, hourly and 7-day forecasts, and multiple location search options. It features a beautiful responsive UI with dynamic weather-based themes, maps, and smart user preferences.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors