SoK/2021/StatusReport/Nikunj Goyal
Plasma Mobile: CAP Weather Alerts Support in KWeatherCore and D-Bus daemon for notifications in KWeather
Background
KWeatherCore was released with a well defined API such as requesting weather data just by a location name or co-ordinates.One part of this project is to add an API in this library to support weather alerts. This API adds support to read CAP(Common Alerting Protocol) documents from meteorological departments of governments around the world.
The other part is to build in this API a daemon in KWeather that sends weather alerts notifications. Plasma Mobile platform experience will greatly improve once this is complete. I and Anjani were supposed to work on this project together
Mentors
Links
Repositories
Phase 1
Project planning
CAP specification turned out to be vast and all the CAP sources of different countries use different features of the specification making it difficult to write a same CAP parser for all the countries. First of all we looked at the CAP specification document. Using this, Han wrote a skeleton class for us to store the fields described in this document. But there were limitations to this specification. Some common challenges are:-
- Not all countries support filtering weather alerts by location. Even though some do, they mark them as experimental and can be dropped anytime without notice.
- Some put restrictions on how often we can query for CAP alerts.
Devin gave us a list of all CAP sources of different countries. This was great as we learned that most countries provide a common ATOM/RSS feed of all weather alerts and they link to the actual CAP XML document. For example, this is the CAP feed of France [1]. Entries in this field contain a link to the original CAP data that we need to parse according to CAP specification.
So it was decided that we use this feed as a source for weather alerts of a country.I had worked on writing a feed parser. While Anjani worked on the CAP parser.
Work Done
This is some of the work that I've done so far. The complete work history can be tracked in this branch.
- 8e261017 - Added Date in Feed parser
- cca47ab2 - Fixed some changes.
- 64489658 - Added Alert manager class.
My experience
This was a really cool experience for me. I got work under guidance of awesome mentors like Devin and Han Young. They constantly guided me on where i faced problems and it never seemed we were alone but that we did the project together. Lastly I will keep contributing to this awesome community and I'm thankful to be a part of SOK.
Contact
If you want to make suggestions in this project do contact me.
Email :- [email protected]
Telegram :- @nikunjgoyal31