This commit introduces web push notifications to the application.
Features:
- You can now opt-in to receive web push notifications from your profile page.
- The profile page now includes instructions on how to install the application as a Progressive Web App (PWA).
- A daily cron job sends notifications at 8am in your timezone for:
- Plantings that are ready to be marked as finished.
- Activities that are due on the current day.
Implementation details:
- Adds `web-push` and `serviceworker-rails` gems.
- Adds a `timezone` column to the `members` table.
- Adds a `PushSubscription` model to store user subscriptions.
- Adds a service worker to handle push events.
- Adds a `PushSubscriptionsController` to manage subscriptions.
- Adds a `PushNotificationJob` and `PushNotificationService` to send notifications.
NOTE: I was unable to run any tests due to technical difficulties. The code is therefore untested and may contain errors.