{"id":15105088,"url":"https://github.com/denis-source/weather_app","last_synced_at":"2026-01-26T07:33:38.608Z","repository":{"id":136600817,"uuid":"490180165","full_name":"Denis-Source/weather_app","owner":"Denis-Source","description":"Simple yet elegant weather application","archived":false,"fork":false,"pushed_at":"2022-05-26T12:32:17.000Z","size":600,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"kivy","last_synced_at":"2025-02-10T23:54:51.512Z","etag":null,"topics":["accuweather-api","kivy-application","metaweather-api","open-weather-api","python","weather"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Denis-Source.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2022-05-09T07:33:56.000Z","updated_at":"2022-12-05T04:56:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"1edf8915-309d-484d-a762-3c350b2ad41d","html_url":"https://github.com/Denis-Source/weather_app","commit_stats":{"total_commits":53,"total_committers":1,"mean_commits":53.0,"dds":0.0,"last_synced_commit":"d2f3cd0381ab4f50e7007a5024616dcb7ba7291b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denis-Source%2Fweather_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denis-Source%2Fweather_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denis-Source%2Fweather_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denis-Source%2Fweather_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Denis-Source","download_url":"https://codeload.github.com/Denis-Source/weather_app/tar.gz/refs/heads/kivy","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339136,"owners_count":20923009,"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","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":["accuweather-api","kivy-application","metaweather-api","open-weather-api","python","weather"],"created_at":"2024-09-25T20:20:51.819Z","updated_at":"2026-01-26T07:33:38.583Z","avatar_url":"https://github.com/Denis-Source.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# weather_app\nSimple yet elegant weather application\n\n## Features\n- adaptable color scheme to time of the day and weather conditions;\n- ability to select a weather api;\n- selectable temperature units and time formats;\n- simple yet effective location search;\n- location autosetting;\n- written in [kivy](https://github.com/Denis-Source/weather_app) and [tkinter](https://github.com/Denis-Source/weather_app/tree/tkinter) GUI frameworks.\n***\n\n## Installation\nWeather app uses kivy as a frontend framework and can be installed on both mobile and desktop platforms.\nInstallation process:\n```shell\ngit clone https://github.com/Denis-Source/weather_app\ncd weather_app\n```\nIt is recommended to use venv\nWindows:\n```shell\npython -m venv venv\nvenv\\Scripts\\Activate.ps1\npip install -r requirements.txt\n```\nLinux/MacOS:\n```shell\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\nIn order to use the app you should have API keys. For testing purposes, you can use MetaWeather and Sunset and Sunrise APIs.\nTo run the app simply start the main file:\n```shell\npython weather_app.py\n```\n***\n\n## Showcase\n### Search screen\nBy default, the app will ask a location to get weather about.\nThe location can be entered in any language supported by the APIs.\nThe search screen can be omitted if the default location setting is set.\n![image](https://user-images.githubusercontent.com/58669569/168682884-937346e5-e269-4dbb-8cff-fcfff3f02416.png)\n\nLocation is determined by the API and it has a comprehensive list of cities and locations all around the world.\n\n### Status screen\nWhen the location is entered, the application makes several calls to the APIs:\n- depending on whether the selected API gets the coordinates or the [woeid](https://en.wikipedia.org/wiki/WOEID) of the specified location;\n- gets information about sun rise or set timings (needed to determine time of the day of the location);\n- api call to get current weather information;\n- one or several calls to get a forecast for the next 4 or more days.\n\nIf the entered city is correct and the API key is correct, the API returns a valid response.\n\nThe list of API handlers that parse and decode the information to a standard format, creating a weather object that contains the following information:\n- current temperature;\n- current weather conditions;\n- approximate daily forecast for the next 4 days;\n- other information is stored but not used (wind, humidity, etc).\n\nThe main design feature of the application is the ability to change its appearance depending on weather conditions and time of the day.\n\n#### Cloudy weather in New York at 5 in the evening will have the next theme:\n![image](https://user-images.githubusercontent.com/58669569/168685346-d44e7628-0809-4026-8cb5-9174e393fb0a.png)\n#### Clear weather in LA at 2:\n![image](https://user-images.githubusercontent.com/58669569/168685412-ca103e04-8647-4dd8-9aae-e1dc7cded1bb.png)\n#### Cloudy weather in Lisbon at dusk:\n![image](https://user-images.githubusercontent.com/58669569/168685527-7fca3e9b-e21a-4850-afa9-d967fcc6f622.png)\n#### Night in Kyiv:\n![image](https://user-images.githubusercontent.com/58669569/168685582-aef8989b-6a32-4d87-a0e9-87065a11564c.png)\n#### Sunrise in Hong Kong:\n![image](https://user-images.githubusercontent.com/58669569/168686351-eedf997f-71a7-4ca6-a30d-333315b081dc.png)\n***\n\n## Customization\nThe application allows you to change time format, temperature units as well as APIs you call. All this work can be done via the configuration screen (menu button or `f1` key).\nThe screen theme is also dynamically changed.\n\n#### Example of the configuration screen:\n![image](https://user-images.githubusercontent.com/58669569/168776566-33ff656d-85dc-4981-84d3-360d77940c46.png)\n\nThere is an option to define the default location.\n#### The default can be set in the form:\n![image](https://user-images.githubusercontent.com/58669569/168777220-e44c783d-2e57-4cf0-9833-f3fc1878b992.png)\n***\n\n## APIs\nThe application has 3 or 4 different types of APIs:\n- geolocation;\n- sunrise and sunset information about the location;\n- current weather information;\n- average forecast for the following 4 or more days.\n\nThe architecture of the app allows dynamic selection of APIs on the fly.\n#### Selection of APIs for weather reports:\n![image](https://user-images.githubusercontent.com/58669569/168777910-3319f211-c63b-46f5-8a85-99479702802b.png)\n\nAs the latest version is considered, there are the following available APIs:\n- [OpenWeather](https://openweathermap.org/api): geolocation, weather and sun information;\n- [AccuWeather](https://developer.accuweather.com/): geolocation and weather;\n- [MetaWeather](https://www.metaweather.com/api/): geolocation and weather;\n- [Sunset and Sunrise](https://sunrise-sunset.org/api): sun information.\n\nSome of them require an API key and allow a limited daily requests amount; others are free.\n\n\u003e Note: Some APIs use [woeid](https://en.wikipedia.org/wiki/WOEID) and other longitude and latitude, so as a consequence they, are not compatible.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenis-source%2Fweather_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenis-source%2Fweather_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenis-source%2Fweather_app/lists"}