Skip to content

Misrilal-Sah/SkyCast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


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