The Relicans

Cover image for Firewatcher - Push Notifications in Case Of Fire
Alexander Girke
Alexander Girke

Posted on • Updated on

Firewatcher - Push Notifications in Case Of Fire

What I built

This Progressive Web App (PWA) shows active fires in the area of interest and sends push notifications on subscription, whenever a fire is detected to be near your specified location. The best part of it is, that the app can be installed to any smartphone - hence, you will receive a warning wherever you are.

Category Submission:

Science and Observation

App Link

Frontend: https://alxgrk.github.io/new-relic-hackathon-firewatcher/

Backend: https://firewatcher-backend.herokuapp.com/

Screenshots

Alt Text
Alt Text
Alt Text
Alt Text
Alt Text
Alt Text

Description

The user opens the PWA and first needs to enter a phrase describing his/her location. The mapping to geographical coordinates is done by using Open Street Map's Nominatim API. Once a location is selected, a map is shown containing markers of active fires. The data has been collected from NASA's FIRMS program. While the user navigates through the map, location and zoom level changes are detected and textually visualized beneath the map. Once the user is satisfied with his/her specifications, clicking the Subscribe button will freeze the map and register on the server for updates. Once a new fire is detected, all subscriptions are iterated on server-side and matching specifications will lead to sending push notification via the Web Push API.

Link to Source Code

https://github.com/alxgrk/new-relic-hackathon-firewatcher

Permissive License

MIT License

Background

With increasing changes of extreme weather phenomena, people need to adapt to these challenges. It's yet impossible for mankind to control the weather. This is also the case for wildfires, which are more frequent and widespread year by year. Not only nature like the Amazon area and Australian outback is under pressure, but also regions where many people actually live. This app should serve both sufferers: people in risk areas could be warned earlier when fires are getting closer and nature might be protected faster by governmental officers or NGOs.

How I built it

The app consists of front- and backend (both written in Kotlin). In the frontend React is being used and a short snippet provided by New Relic is appended to index.html, which helps to view the page from a user's perspective. All files are hosted via Github Pages.
The backend is deployed through Heroku and uses Ktor for handling HTTP requests and stores information in a PostgreSQL database. Since the backend is responsible for keeping the data about active fires up to date and notifying users in case of fires, it's critical to know what happens inside the service. New Relic JVM instrumentation agent eased the basis for observing standard process metrics. Additional, more business-oriented metrics like processing times and request data are being exposed through Micrometer, which also perfectly integrates with New Relic.

Discussion (0)