Inspiration While looking for niches where public data could become useful tools, we kept running into the same gap: Germany's weather service (DWD) publishes excellent open data, but almost nobody outside meteorology can use it. Then we found the people who need it most. Small construction firms lose money every winter because rain, frost and storms stop work, and under German construction contracts (VOB/B § 6) they can only extend deadlines if they can prove the weather. Today they screenshot weather websites, pay for an expert report (the DWD charges around 140 € per hour), or simply accept the penalty.
What it does You enter a site location and a period. RainCheck fetches the official hourly DWD observations from the nearest station and counts the working days that met bad-weather criteria: heavy rain, frost, storm gusts, snow or sleet. You get a red and green calendar, a day-by-day table with reasons, a ready-to-paste sentence for the delay letter and a one-click PDF.
How we built it We followed the skill pack: scope, PRD and spec first, then a browser-only app in plain HTML, CSS and JavaScript. The data comes from DWD Open Data through the Bright Sky API. There's no backend and no account, and nothing gets stored. Unit tests cover the aggregation, the rules and the report.
Challenges we ran into Turning hourly measurements into fair daily decisions: missing hours, choosing sensible default thresholds, and making clear that contracts can define their own criteria. The thresholds are adjustable for that reason.
Accomplishments that we're proud of A report a roofer can produce in under a minute, built entirely on official, freely licensed data.
What we learned The value wasn't in the data, which was already free. It was in shaping the data into the exact document someone needs in a dispute.
What's next The official DWD bad-weather classification, the DWD reporting day (7 to 7), the station shown in the report, a German interface and a letter template.
Built With
- bright-sky-api
- css
- dwd-open-data
- html
- javascript
Log in or sign up for Devpost to join the conversation.