{"id":31373907,"url":"https://github.com/dynstat/weather-desktop-app-rust","last_synced_at":"2025-09-27T23:17:17.411Z","repository":{"id":315317876,"uuid":"957991299","full_name":"dynstat/Weather-Desktop-App-RUST","owner":"dynstat","description":"A simple desktop application built with Tauri (Rust backend) and React frontend.","archived":false,"fork":false,"pushed_at":"2025-09-17T22:46:31.000Z","size":329,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-17T23:34:06.316Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dynstat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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":"2025-03-31T13:17:56.000Z","updated_at":"2025-09-17T22:46:54.000Z","dependencies_parsed_at":"2025-09-18T18:46:48.107Z","dependency_job_id":null,"html_url":"https://github.com/dynstat/Weather-Desktop-App-RUST","commit_stats":null,"previous_names":["dynstat/weather-desktop-app-rust"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dynstat/Weather-Desktop-App-RUST","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynstat%2FWeather-Desktop-App-RUST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynstat%2FWeather-Desktop-App-RUST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynstat%2FWeather-Desktop-App-RUST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynstat%2FWeather-Desktop-App-RUST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dynstat","download_url":"https://codeload.github.com/dynstat/Weather-Desktop-App-RUST/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynstat%2FWeather-Desktop-App-RUST/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277302116,"owners_count":25795366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-27T02:00:08.978Z","response_time":73,"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":[],"created_at":"2025-09-27T23:17:16.441Z","updated_at":"2025-09-27T23:17:17.400Z","avatar_url":"https://github.com/dynstat.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Desktop App in Tauri\n\nA modern desktop weather application built with Tauri (Rust backend) and React frontend, featuring a premium dark theme with glassmorphism design.\n\n## Screenshot\n\u003cimg width=\"1919\" height=\"1032\" alt=\"image\" src=\"https://github.com/user-attachments/assets/8a9bed9b-2494-440f-a7fe-31135dce9633\" /\u003e\n\n## Features\n\n- **Real-time Weather Data**: Current weather conditions with temperature, humidity, and wind speed\n- **3-Day Forecast**: Extended weather forecast with daily predictions\n- **Air Quality Index**: Comprehensive air quality monitoring with AQI categories\n- **Premium UI/UX**: Dark theme with glassmorphism effects and smooth animations\n- **Responsive Design**: Clean resizing for different window sizes\n- **Settings Management**: Customizable location coordinates and temperature units\n- **Modern Components**: Built with shadcn/ui and TailwindCSS\n\n## Tech Stack\n\n- **Backend**: Rust with Tauri\n- **Frontend**: React + TypeScript\n- **Styling**: TailwindCSS + shadcn/ui\n- **Icons**: Lucide React\n- **APIs**: Open-Meteo (free weather API) with mock air quality data\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16 or higher)\n- Rust (latest stable version)\n- npm or yarn\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/dynstat/Weather-Desktop-App-RUST.git\ncd Weather-Desktop-App-RUST\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Run the development server:\n```bash\nnpm run tauri dev\n```\n\n### Building for Production\n\n```bash\nnpm run tauri build\n```\n\n## Project Structure\n\n```\nweather-dashboard/\n├── src/\n│   ├── components/\n│   │   ├── ui/           # shadcn/ui components\n│   │   ├── WeatherCard.tsx\n│   │   ├── AQICard.tsx\n│   │   ├── ForecastCard.tsx\n│   │   ├── Sidebar.tsx\n│   │   ├── Header.tsx\n│   │   └── Settings.tsx\n│   ├── types/\n│   │   └── index.ts      # TypeScript type definitions\n│   ├── lib/\n│   │   └── utils.ts      # Utility functions\n│   ├── App.tsx           # Main application component\n│   └── App.css           # Global styles with glassmorphism\n├── src-tauri/\n│   ├── src/\n│   │   └── lib.rs        # Rust backend with API endpoints\n│   └── Cargo.toml        # Rust dependencies\n└── README.md\n```\n\n## API Configuration\n\nThe application uses Open-Meteo API for weather data and mock data for air quality:\n\n### Weather API Integration\n\n- **Open-Meteo API**: Free, no API key required\n- **Real-time weather data**: Temperature, humidity, wind speed, precipitation, cloud cover\n- **3-day forecast**: Generated from hourly data\n- **Automatic fallback**: Falls back to mock data if API fails\n\n### Air Quality Data\n\n- **Mock data**: Currently uses simulated air quality data\n- **AQI categories**: Good, Moderate, Unhealthy for Sensitive Groups, Unhealthy, Very Unhealthy, Hazardous\n- **Pollutant levels**: PM2.5, PM10, O3, NO2, SO2, CO\n\n### No API Keys Required\n\nThe app works out of the box with real weather data from Open-Meteo and mock air quality data, so no API keys are needed for basic functionality.\n\n## Features Overview\n\n### Dashboard\n- Current weather display with temperature, conditions, and location\n- Air quality index with color-coded categories\n- 3-day weather forecast\n- Responsive grid layout\n\n### Settings\n- Location coordinates (latitude/longitude)\n- Temperature unit toggle (Celsius/Fahrenheit)\n- Air quality data enable/disable\n- Persistent settings storage\n\n### Navigation\n- Sidebar navigation with smooth transitions\n- Header with refresh and search functionality\n- Tab-based content switching\n\n## Styling\n\nThe application uses a premium dark theme with glassmorphism effects:\n\n- **Background**: Gradient from slate-900 to purple-900\n- **Cards**: Semi-transparent with backdrop blur\n- **Borders**: Subtle white borders with opacity\n- **Shadows**: Premium shadow effects\n- **Animations**: Smooth transitions and hover effects\n\n## Customization\n\n### Adding New Weather Data Points\n\n1. Update the `WeatherData` interface in `src/types/index.ts`\n2. Modify the Rust backend in `src-tauri/src/lib.rs` to fetch new data from Open-Meteo API\n3. Update the `WeatherCard` component to display new data\n\n### Styling Modifications\n\n- Global styles: `src/App.css`\n- Component styles: Individual component files\n- Tailwind configuration: `tailwind.config.js`\n\n## Development\n\n### Available Scripts\n\n- `npm run tauri dev` - Start development server\n- `npm run tauri build` - Build for production\n- `npm run build` - Build frontend only\n- `npm run preview` - Preview built frontend\n\n### Code Structure\n\n- **Components**: Reusable UI components with TypeScript\n- **Types**: Centralized type definitions\n- **Utils**: Shared utility functions\n- **Backend**: Rust commands for API integration\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Support\n\nFor support or questions, please open an issue in the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynstat%2Fweather-desktop-app-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynstat%2Fweather-desktop-app-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynstat%2Fweather-desktop-app-rust/lists"}