How kulla-kukkai/skybuddy works
Skybuddy is a single-page weather dashboard: users start with browser geolocation or search for a city, then view current conditions and can save or switch between favorite cities. The detail routes show sunrise, sunset, UV, rain chance, and a seven-day forecast. The graph includes the shared fetch hook, API service, and favorites persistence layer. Detail-page and forecast-component wiring is based on README descriptions and paths; those source files were not sampled.
Main entry points: HomePage.jsx Home dashboard · CityDetailPage.jsx City detail page · useWeatherData.js Weather data hook · App.jsx App router
Components 18
Weather experience
- App router
src/App.jsx - Home dashboard
src/pages/HomePage.jsx - City detail page
src/pages/CityDetailPage.jsx - City search form
src/components/CitySearchForm/CitySearchForm.jsx - Saved city chips
src/components/CityChipList/CityChipList.jsx
Weather data
- Weather data hook
src/hooks/useWeatherData.js - Weather API service
src/services/weatherApi.js - Weather code labels
src/utils/weatherCodes.js
Favorites state
- Favorites context
src/context/FavoritesContext.jsx
Weather presentation
- Current conditions
src/components/WeatherDetail/WeatherDetail.jsx - City stats
src/components/CityStats/CityStats.jsx - Forecast list
src/components/ForecastList/ForecastList.jsx - Forecast item
src/components/ForecastItem/ForecastItem.jsx
Other components
- Visitor
- Open-Meteo geocoding
- Open-Meteo forecast
- Browser geolocation
- Browser localStorage
Connections 24
- Visitor → App router: opens
- App router → Home dashboard: routes to
- App router → City detail page: routes to
- Home dashboard → City search form: renders
- City search form → Weather data hook: submits city
- Home dashboard → Weather data hook: loads weather
- City detail page → Weather data hook: loads weather
- Weather data hook → Browser geolocation: requests location
- Weather data hook → Weather API service: requests weather
- Weather data hook → Home dashboard: returns weather
- Weather data hook → City detail page: returns weather
- Weather API service → Open-Meteo geocoding: searches city
- Weather API service → Open-Meteo forecast: fetches forecast
- Home dashboard → Saved city chips: renders
- Home dashboard → Favorites context: reads and updates
- City detail page → Favorites context: reads and updates
- Favorites context → Browser localStorage: reads and writes
- Home dashboard → Current conditions: renders conditions
- City detail page → Current conditions: renders conditions
- City detail page → City stats: renders stats
- City detail page → Forecast list: renders forecast
- Forecast list → Forecast item: renders items
- Current conditions → Weather code labels: maps conditions
- Forecast item → Weather code labels: maps conditions