Alerts
goal / problem solved | 🌲Distant locations, 👁️Observability of bee colony |
---|---|
Status | Groomed |
billing plan | 2-essential |
verticality | horizontal |
Blocking | ⚠️Weather alerts |
Date | |
Priority | 23 |
Tasks | add email alerts, add SMS alerts |
estimate | 3 |
impact = priority % | 70 |
Tags | backendfrontend |
We want to notify beekeeper in various cases/features. For that we need a generic way to create and list alerts. We want to store alerts in DB and display them in UI.
User story - alert settings
- User goes to settings page
- Under alerts section
- sets an alert channel from the select
Alert me via: [email]
- Mobile phone notification (in case its a mobile-app)
- SMS (Twilio?)
- sets an alert channel from the select
- Under alert types, he can choose (as checkbox) which alert types he wants to receive (the list should be quite long)
- swarming risk - 🐝Frame side queen cup detection
- hornet attacks - ⚠️Hornet attack detection
- queen is missing - 👑Queen detection
- queen is failing to lay eggs - ⚠️Frame analysis - spotty brood pattern detection
- drone cell ratio is too high - 🐝Drone brood detection
- low/high temperature in the hive
- swarming has happened
- custom anomaly - should be tied to 📊Analytics with grafana
User story - receiving a queen missing alert
- User uploads all of the hive frames
- All frames are processed
- No queen is detected
- Alert is generated
- alert is shown in the header
- On click, alert popup appears
- Depending on alert channels, it is delivered to the user
- For email, user receives an email that
hive X has a missing queen
- Good wording, links, imagery, design is needed - ask 🔲Designer (UX / UI / Industrial)
- For email, user receives an email that
- Once user has acted upon this alert, user
approves an alert
effectively hiding/deleting it
Suggested technical solution
Create new alerts
microservice
- add new DB that it will use
- add graphql API that it will expose
- add
createAlert
mutation
- add
alerts
query
- add
- service acts as a proxy. Actual alert generation should be owned by other services that contain the business logic