base on A Weather app for android π¦πβ <div align="center">
<img src="https://github.com/PranshulGG/WeatherMaster/blob/master/preview/readme_app_icon.svg" alt="" width="150px">
</div>
<h1 align="center">
WeatherMaster
</h1>
<div align="center">
<img src="https://img.shields.io/github/license/PranshulGG/WeatherMaster?style=for-the-badge&color=cba6f7&labelColor=302D41">
<img src="https://img.shields.io/github/last-commit/PranshulGG/WeatherMaster?style=for-the-badge&color=b1d18a&labelColor=1f3701">
<img src="https://img.shields.io/github/release/PranshulGG/WeatherMaster?style=for-the-badge&color=dbc66e&labelColor=3a3000">
<br>
<img src="https://img.shields.io/github/stars/PranshulGG/WeatherMaster?style=for-the-badge&color=ffb5a0&labelColor=561f0f">
<img src="https://img.shields.io/github/downloads/PranshulGG/WeatherMaster/total?label=Downloads&style=for-the-badge&color=aac7ff&labelColor=0a305f">
<a href="https://discord.gg/sSW2E4nqmn">
<img src="https://img.shields.io/discord/1302477023410782229?label=Discord&style=for-the-badge&color=ffb0c8&labelColor=541d32">
</a>
</div>
<div align="center">
<h3>WeatherMaster: inspired by the Google Pixel weather app.</h3>
</div>
<div align="center">
[Features](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-features) β’ [Contact](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#contact) β’ [License](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#license) β’ [Translate](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-translate-the-app-on-crowdin)
</div>
<div align="center">
<a href="https://github.com/PranshulGG/WeatherMaster/releases"><img alt="GitHub" src="https://censorship.no/img/github-badge.png" height="80"/></a>
<a href="https://apt.izzysoft.de/fdroid/index/apk/com.example.weathermaster"><img alt="GitHub" src="preview/download_Btn.png" height="80"/></a></div>
<br>
![app_thumbnail](preview/thumbnail_mat.png)
# ποΈ Screenshots
<div align="center">
<img src="preview/1.png" width="320">
<img src="preview/2.png" width="320">
<img src="preview/3.png" width="320">
<img src="preview/4.png" width="320">
<img src="preview/5.png" width="320">
<img src="preview/6.png" width="320">
<img src="preview/7.png" width="320">
<img src="preview/8.png" width="320">
<img src="preview/9.png" width="320">
</div>
<br>
# π Translate the app on [Crowdin](https://crowdin.com/project/weathermaster/invite?h=448278a9b1370f3c10d4336a091dae792286917)
<a href="https://crowdin.com/project/weathermaster/invite?h=448278a9b1370f3c10d4336a091dae792286917"><img src="https://badges.crowdin.net/weathermaster/localized.svg" width="200"> </a>
# β¨ Features:
- π **Offline Mode:** Access previously loaded weather data even without an internet connection.
- π€οΈ **Current Weather:** Get real-time updates on weather conditions in your area.
- π’ **Government Weather Alerts:** Receive official alerts and warnings to stay safe.
- β³ **24-Hour Forecast:** Plan your short-term activities with accurate forecasts for the next two days.
- π
**14-Day Forecast:** View detailed weather predictions for the upcoming week.
- π **Moon Phases:** Track the phases of the moon and plan accordingly.
- π **Moonrise & Moonset:** Know the exact times for moonrise and moonset each day.
- π
**Sunrise & Sunset:** Stay informed about sunrise and sunset times to optimize your day.
- π **Day Length:** Check how long the daylight lasts each day.
- π **Day Description:** Get a brief summary of the dayβs weather conditions.
- π§οΈ **Rain Bar:** See a visual representation of expected rainfall.
- ποΈ **Visibility:** Monitor how far you can see clearly based on weather conditions.
- π§ **Humidity:** Check the current humidity levels to stay comfortable.
- π§ **Pressure:** Track atmospheric pressure to understand weather changes.
- π¬οΈ **Wind Direction & Speed:** Stay aware of wind patterns and strength.
- βοΈ **Snow Amount:** Know the expected snowfall for winter planning.
- βοΈ **Cloudiness:** See how much of the sky is covered by clouds.
- π‘οΈ **Min-Max Temperature:** View the range of temperatures for the day.
- π¬οΈ **Feels Like Temperature:** Understand how the temperature feels based on wind and humidity.
- π§οΈ **Precipitation Type & Area Coverage:** Get details on what kind of precipitation is expected and its coverage area.
- π **UV Index:** Stay protected from harmful UV rays with UV index updates.
- πΏ **Air Quality:** Monitor air quality to stay informed about pollution levels.
- πΊοΈ **Live Map:** Access a real-time map to track weather conditions in different areas.
- π **Location Picker:** Easily select and view weather information for different locations.
- β **Save Favorite Locations:** Save your preferred locations for quick access to their weather updates.
- π **Clothing Recommendations:** Get suggestions on what to wear based on the current weather conditions.
- πΎ **Pollen Data (Europe Only):** View pollen levels for grass, trees, and weeds in your area.
# π Weather providers:
- [**open-meteo**](https://open-meteo.com)
- [**Met norway**](https://www.met.no/en)
- [**WeatherApi**](https://www.weatherapi.com/)
- [**accuweather**](https://www.accuweather.com/)
- [**MΓ©tΓ©o-France**](https://www.meteofrance.com)
- [**DWD**](https://www.dwd.de/EN/Home/home_node.html)
- [**NOAA**](https://www.noaa.gov)
- [**ECMWF**](https://www.ecmwf.int)
- [**UK Met Office**](https://www.metoffice.gov.uk)
- [**JMA**](https://www.jma.go.jp/jma/indexe.html)
- [**GEM**](https://www.ec.gc.ca/meteo-weather/default.asp?lang=En&n=FB1BB3E4-1)
- [**BOM**](http://www.bom.gov.au)
- [**CMA**](http://www.cma.gov.cn/en/)
- [**KNMI**](https://www.knmi.nl)
- [**DMI**](https://www.dmi.dk/en/)
# βοΈ Other:
- π±<strong>Native Android Experience: </stronge>Enjoy a user interface and interaction that closely resemble a native Android Weather app.
- π¨<strong>Material Design: </stronge>The app is built using Material Web Components, ensuring a clean, consistent, and visually appealing design.
- βοΈ<strong>Customization Options: </stronge>Enjoy a ton of customization options. Adjust themes, Units.
- π<strong>Responsive Design: </stronge>WeatherMaster is fully responsive for all mobile devices.
- π§©<strong>User-Friendly Interface: </stronge>The app's interface is designed to be straightforward and user-friendly.
# π οΈ Built With:
- <strong>HTML & CSS: </stronge> For the basic structure and styling of the app.
- <strong>JavaScript: </stronge>To handle the app's logic and interactivity.
- <strong>Java: </stronge>Mainly used for JavaScript interface and permissions, allowing the app to run on Android devices.
- <strong>Material Web Components: </stronge>Utilized to create a consistent and attractive Material Design look and feel.
- <strong>Weather icons</strong>: <a href="https://gitlab.com/bignutty/google-weather-icons">Google weather icons
# π Todos:
- β
Adding cache to reduce api requests
- β
Translations
- β
Widgets
- β
Make it lightweight
- β
Allows you to add multiple locations
- β
Customization
- β
More detailed weather
- β
Live weather map
- β
Pick locations using map
- β
Change app colors according to the weather
- Any user suggestions :)
<br>
<br>
> [!NOTE]
> The app is designed to run on Android devices and does not support web browsers. Attempting to open the app in a browser will not work.
<br>
# Contact
For any questions or feedback, feel free to open an issue on GitHub or contact
[email protected]
<br>
# License
This project is licensed under the GPL-3.0 license. See the `LICENSE` file for details.
", Assign "at most 3 tags" to the expected json: {"id":"12007","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"