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
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.
|
|
|
|
|
|
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 |
| Light Mode | Dark Mode |
|---|---|
| Clear sky, crisp interface | Night mode, deep contrast |
๐ก Add your own screenshots by dropping images into a
/screenshotsfolder and referencing them here.
- Node.js
>= 16.x - npm
>= 7.x - An OpenWeatherMap API key (free tier works)
# 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 devOpen http://localhost:3000 in your browser โ you're live! ๐
| 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 |
SkyCast uses two external APIs:
๐ค๏ธ OpenWeatherMap API (required)
- Create a free account at openweathermap.org
- Generate an API key from your dashboard
- Add it to your
.envfile: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.
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
| 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 |
| 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 |
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-featureDistributed under the MIT License โ free to use, modify, and distribute.