{"id":30110518,"url":"https://github.com/xarlizard/weather-dashboard","last_synced_at":"2026-04-18T07:32:49.523Z","repository":{"id":295230163,"uuid":"885252852","full_name":"xarlizard/weather-dashboard","owner":"xarlizard","description":"React dashboard with weather API fetching showcasing a Coordinates selector, a 2D Map selector and a \"Current lcoation\" button, with 4 custom color themes implemented","archived":false,"fork":false,"pushed_at":"2026-03-20T15:06:10.000Z","size":234,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-21T06:31:13.313Z","etag":null,"topics":["react","react-router-v7","vitejs"],"latest_commit_sha":null,"homepage":"https://weather-dashboard-a7u.pages.dev/36.8186,-92.4499","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xarlizard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-08T08:49:26.000Z","updated_at":"2026-03-20T15:06:43.000Z","dependencies_parsed_at":"2025-05-24T11:15:14.789Z","dependency_job_id":"ba157649-2842-4fe6-88eb-2f2e226e2364","html_url":"https://github.com/xarlizard/weather-dashboard","commit_stats":null,"previous_names":["xarlizard/weather-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xarlizard/weather-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarlizard%2Fweather-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarlizard%2Fweather-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarlizard%2Fweather-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarlizard%2Fweather-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xarlizard","download_url":"https://codeload.github.com/xarlizard/weather-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xarlizard%2Fweather-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31961216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["react","react-router-v7","vitejs"],"created_at":"2025-08-10T04:47:19.476Z","updated_at":"2026-04-18T07:32:49.518Z","avatar_url":"https://github.com/xarlizard.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Dashboard\n\nA modern, responsive weather dashboard built with React and Vite, featuring real-time weather data, geolocation, interactive maps, and theme customization.\n\n## Features\n\n- **Home overview** – Weather for 5 major cities (Milan, Barcelona, Bristol, Amsterdam, Tokyo)\n- **Favorites** – Save locations with one click; view on home and the dedicated Favorites page\n- **Interactive map** – Click anywhere to get weather for that location\n- **Search** – Find weather by coordinates or city name\n- **Current location** – Use device geolocation for instant weather\n- **Real-time data** – Weather from OpenWeatherMap API\n- **Themes** – Light, Dark, Winter, and Summer\n- **Responsive** – Works on desktop, tablet, and mobile\n\n## Prerequisites\n\n- Node.js \u003e= 20 (required for Vite 8)\n- [Bun](https://bun.sh) or npm\n\n## Setup\n\n1. **Clone the repository:**\n\n   ```sh\n   git clone https://github.com/xarlizard/weather-dashboard.git\n   cd weather-dashboard\n   ```\n\n2. **Install dependencies:**\n\n   ```sh\n   bun install\n   # or: npm install\n   ```\n\n3. **Configure environment variables:**\n\n   - Copy `.env.example` to `.env`\n   - Add your OpenWeatherMap API key:\n\n   ```sh\n   cp .env.example .env\n   # Edit .env and set VITE_APP_Key=your_api_key\n   ```\n\n4. **Run the development server:**\n\n   ```sh\n   bun dev\n   # or: npm run dev\n   ```\n\n## Available Scripts\n\n| Command | Description |\n|---------|-------------|\n| `bun dev` / `npm run dev` | Start development server |\n| `bun run build` / `npm run build` | Build for production |\n| `bun run preview` / `npm run preview` | Preview production build |\n| `bun run lint` / `npm run lint` | Lint the codebase |\n| `bun run lint:fix` / `npm run lint:fix` | Lint and fix issues |\n\n## Tech Stack\n\n- **React 19** – UI framework\n- **Vite 8** – Build tool\n- **React Router v7** – Routing\n- **Tailwind CSS v4** – Styling\n- **shadcn/ui** – Component library\n- **Lucide React** – Icons\n- **React Leaflet** – Interactive maps\n- **Axios** – HTTP client\n\n## Project Structure\n\n```\nsrc/\n├── components/\n│   ├── common/          # Shared components\n│   ├── features/       # Feature-specific components\n│   │   ├── map/        # Map selector\n│   │   ├── search/     # Coordinate \u0026 city search\n│   │   └── weather/    # Weather cards, favorites\n│   ├── layout/         # Dashboard layout, sidebar\n│   └── ui/             # shadcn components\n├── config/             # Theme configuration\n├── contexts/           # React context (Weather)\n├── hooks/              # useWeather, useFavorites, useTheme\n├── lib/                # Utilities (cn)\n└── mocks/              # Mock data\n```\n\n## Deployment (Cloudflare Pages)\n\nThe project is configured for Cloudflare Pages:\n\n- **wrangler.toml** – Pages configuration and build output\n- **.nvmrc** – Node.js 22 for Vite 8 compatibility\n\n1. Connect your GitHub repo to Cloudflare Pages\n2. Build command: `bun run build` (or `npm run build`)\n3. Build output directory: `dist`\n4. Add `VITE_APP_Key` as an environment variable in Cloudflare\n\n## Environment Variables\n\n| Variable     | Description            |\n|-------------|------------------------|\n| VITE_APP_Key | OpenWeatherMap API key |\n\nGet a free API key at [OpenWeatherMap](https://openweathermap.org/api).\n\n## License\n\nMIT License\n\n## Author\n\nCharlie ([@xarlizard](https://github.com/xarlizard))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxarlizard%2Fweather-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxarlizard%2Fweather-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxarlizard%2Fweather-dashboard/lists"}