Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyCast - Interactive Weather Dashboard

Click anywhere on the world map and get instant weather data. A Windy-style experience with a clean, premium interface.

Features

  • Interactive world map (Leaflet.js + CartoDB)
  • Rain radar layer (RainViewer, no API key needed)
  • Animated wind flow (leaflet-velocity)
  • Glassmorphism dashboard (desktop slide-over, mobile bottom sheet)
  • Real-time + 7-day forecast via Open-Meteo
  • Air quality index (AQI, PM2.5, PM10, NO2, O3)
  • Dark / Light theme toggle
  • TR / EN / RU language support
  • Zero build step: runs with a single command

Setup (Frontend)

git clone https://github.com/username/skycast.git
cd skycast
python -m http.server 8000

Open in browser:

No Node.js, npm, or bundler required.

Optional Backend (OWM Tile Proxy)

cd backend
pip install -r requirements.txt
copy .env.example .env
uvicorn main:app --reload --port 8001

Proxy endpoint:

  • /owm/{layer}/{z}/{x}/{y}.png

Architecture

  • Frontend: Vanilla HTML + CSS + ES Modules
  • State: Observer Singleton (state.js)
  • API: Open-Meteo + Nominatim + RainViewer
  • Map: Leaflet + velocity plugin
  • Charts: Chart.js
  • AQI: Custom SVG gauge

Notes

  • Nominatim is called directly from the client side.
  • Since browsers don't allow setting custom User-Agent headers, the reverse geocode request uses an email parameter instead.
  • OWM temperature layer tiles are proxied through the backend to keep the API key hidden.

License

MIT. See CC BY 4.0 attribution requirements for Open-Meteo data.

About

Interactive weather dashboard with live rain radar, AQI, and forecasts — vanilla JS frontend + FastAPI proxy backend, TR/EN/RU, dark/light themes.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages