{"id":28445378,"url":"https://github.com/wizardoftrap/weathertrack","last_synced_at":"2025-08-02T02:12:15.968Z","repository":{"id":297060673,"uuid":"995516772","full_name":"wizardoftrap/WeatherTrack","owner":"wizardoftrap","description":"A modern Android weather tracking application that provides real-time weather updates and historical weather data analysis for any location worldwide.","archived":false,"fork":false,"pushed_at":"2025-06-03T16:55:57.000Z","size":709,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-29T20:39:05.757Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/wizardoftrap.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}},"created_at":"2025-06-03T15:44:45.000Z","updated_at":"2025-06-03T16:55:58.000Z","dependencies_parsed_at":"2025-06-04T02:14:19.377Z","dependency_job_id":"de7c602d-b202-43d9-a299-24cfcb45681b","html_url":"https://github.com/wizardoftrap/WeatherTrack","commit_stats":null,"previous_names":["wizardoftrap/weathertrack"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wizardoftrap/WeatherTrack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wizardoftrap%2FWeatherTrack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wizardoftrap%2FWeatherTrack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wizardoftrap%2FWeatherTrack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wizardoftrap%2FWeatherTrack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wizardoftrap","download_url":"https://codeload.github.com/wizardoftrap/WeatherTrack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wizardoftrap%2FWeatherTrack/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268326739,"owners_count":24232496,"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-08-02T02:00:12.353Z","response_time":74,"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-06-06T10:12:46.660Z","updated_at":"2025-08-02T02:12:15.943Z","avatar_url":"https://github.com/wizardoftrap.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WeatherTrack\n\nA modern Android weather tracking application that provides real-time weather updates and historical weather data analysis for any location worldwide.\n\n![WeatherTrack Banner](https://img.shields.io/badge/Android-Weather%20App-3DDC84?style=for-the-badge\u0026logo=android\u0026logoColor=white)\n![API](https://img.shields.io/badge/API-21+-brightgreen?style=for-the-badge)\n![Architecture](https://img.shields.io/badge/Architecture-MVVM-blue?style=for-the-badge)\n\n##  Features\n\n### Core Features\n- **Real-time Weather Data**: Get current weather conditions including temperature, humidity, wind speed, and weather conditions\n- **Location Search**: Search and save weather data for any city worldwide\n- **Historical Data**: Automatically fetches and stores the last 7 days of weather history\n- **Weekly Summary**: View temperature trends and weather patterns over the past week\n- **Background Sync**: Automatic weather updates every 6 hours using WorkManager\n- **Offline Support**: View previously fetched data even without internet connection\n\n### Technical Features\n- **MVVM Architecture**: Clean separation of concerns with ViewModel and LiveData\n- **Room Database**: Local data persistence for offline access\n- **Retrofit**: Type-safe HTTP client for API calls\n- **WorkManager**: Reliable background task scheduling\n- **Material Design**: Modern UI following Material Design guidelines\n\n##  Screenshots\n\n| Main Screen | Weekly Summary | Day wise Summary | Error Handling |\n|------------|----------------|-----------------|-----------------|\n| ![Home](home.png) | ![Week Summary](weekly_summary.png) | ![Day wise detailed summary](daywise_detailed_summary.png) | ![Error Handling](error_handling.png) |\n\n##  Tech Stack\n\n- **Language**: Java\n- **Architecture**: MVVM (Model-View-ViewModel)\n- **Database**: Room Persistence Library\n- **Networking**: Retrofit 2.9.0\n- **Background Tasks**: WorkManager 2.9.0\n- **UI Components**: Material Design Components\n- **Weather API**: [Open-Meteo API](https://open-meteo.com/)\n- **Geocoding API**: [Open-Meteo Geocoding](https://open-meteo.com/en/docs/geocoding-api)\n\n##  Project Structure\n\n```\nWeatherTrack/\n├── app/\n│   ├── src/main/java/com/example/weathertrack/\n│   │   ├── data/\n│   │   │   ├── local/          # Room database\n│   │   │   │   ├── WeatherDao.java\n│   │   │   │   └── WeatherDatabase.java\n│   │   │   ├── model/          # Data models\n│   │   │   │   ├── Weather.java\n│   │   │   │   ├── OpenMeteoResponse.java\n│   │   │   │   └── GeocodingResponse.java\n│   │   │   ├── remote/         # API services\n│   │   │   │   ├── WeatherApiService.java\n│   │   │   │   └── RetrofitClient.java\n│   │   │   └── repository/     # Repository pattern\n│   │   │       └── WeatherRepository.java\n│   │   ├── ui/\n│   │   │   ├── main/           # Main activity\n│   │   │   └── summary/        # Summary activity\n│   │   │       ├── SummaryActivity.java\n│   │   │       └── WeatherDayAdapter.java\n│   │   ├── utils/              # Utility classes\n│   │   │   ├── Constants.java\n│   │   │   ├── DateConverter.java\n│   │   │   └── WeatherCodeMapper.java\n│   │   ├── viewmodel/          # ViewModels\n│   │   │   └── WeatherViewModel.java\n│   │   └── worker/             # Background workers\n│   │       └── WeatherSyncWorker.java\n│   └── res/\n│       ├── layout/             # XML layouts\n│       ├── values/             # Resources\n│       └── drawable/           # Icons and drawables\n```\n\n##  Configuration\n\n\n##  Key Components\n\n\n### Repository Pattern\nThe app uses the Repository pattern to abstract data sources:\n- Fetches data from Open-Meteo API\n- Caches data in Room database\n- Provides a single source of truth\n\n### Background Sync\nWorkManager ensures weather data is updated every 6 hours:\n- Respects device battery optimization\n- Works even if the app is closed\n- Requires network connectivity\n\n##  API Endpoints Used\n\n### Weather API\n- **Current Weather**: `https://api.open-meteo.com/v1/forecast`\n- **Historical Weather**: `https://historical-forecast-api.open-meteo.com/v1/forecast`\n\n### Geocoding API\n- **City Search**: `https://geocoding-api.open-meteo.com/v1/search`\n\n\n\n## Acknowledgments\n\n- [Open-Meteo](https://open-meteo.com/) for providing free weather API\n- [Material Design](https://material.io/) for design guidelines\n- [Android Developers](https://developer.android.com/) for excellent documentation\n\n---\n\n\u003cp align=\"center\"\u003eMade with ❤️ by [Shiv Prakash Verma]\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwizardoftrap%2Fweathertrack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwizardoftrap%2Fweathertrack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwizardoftrap%2Fweathertrack/lists"}