From a5395082f6a86bf855d845421d47b77c831be97b Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Wed, 22 Apr 2026 16:22:50 -0600 Subject: [PATCH] update main README --- README.md | 65 +++++++++++++++++++++---------------------------------- 1 file changed, 25 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 0ac7e7d..3c5f2a0 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,24 @@ # Daily Notification Plugin -**Author**: Matthew Raymer -**Version**: 1.2.0 (see `package.json` for source of truth) -**Created**: 2025-09-22 09:22:32 UTC -**Last Updated**: 2025-12-23 UTC - ## Overview -The Daily Notification Plugin is a comprehensive Capacitor plugin that provides enterprise-grade daily notification functionality across Android, iOS, and Electron platforms. It features dual scheduling, callback support, TTL-at-fire logic, and comprehensive observability. +The Daily Notification Plugin is a Capacitor plugin that provides daily notification functionality following local-first principles across Android, iOS, and Electron platforms. + +This is to support apps that allow users to own their data. This approach is in contrast to standard server-managed notifications; they have the advantage of trustworthy delivery, but they have the following downsides: + +* Users must store their search terms and notification preferences on the server. + +* Users are not able to move their notifications elsewhere, and cannot take control of their notifications with their own apps. + +* Peer-to-peer network scenarios are not supported. + +There are two types of notifications supported: + +* Periodic static reminder messages + +* Periodic API requests, then notifying the user if there is new content + + ## Quick Start @@ -27,7 +38,7 @@ The plugin has been optimized for **native-first deployment** with the following **Platform Support:** - ✅ **Android**: WorkManager + AlarmManager + SQLite - ✅ **iOS**: BGTaskScheduler + UNUserNotificationCenter + Core Data -- ✅ **Electron**: Desktop notifications + SQLite/LocalStorage +- ⏳ **Electron**: Desktop notifications + SQLite/LocalStorage (someday) - ❌ **Web (PWA)**: Removed for native-first focus **Key Benefits:** @@ -40,12 +51,8 @@ The plugin has been optimized for **native-first deployment** with the following ### **Overview** -Dec 17 -- test-apps - - android has been seen to work - - ios is being developed (Jose) - - after ios, will work on daily-notification-test (that includes Vue) -- need to test with real data in the API +Stand-alone tests are found in the test-apps directory. + - The daily-notification-test (that includes Vue) has worked but is not tested extensively. ### ✅ **Phase 2 Complete - Production Ready** @@ -66,7 +73,6 @@ Dec 17 The plugin guarantees the following behaviors: -- **Monotonic Watermark**: Watermark values are strictly monotonic (never decrease) - **Idempotency**: Operations with the same idempotency key are safe to retry - **TTL Semantics**: Content with expired TTL is not delivered - **Schedule Persistence**: Schedules persist across app restarts @@ -80,7 +86,7 @@ The following behaviors are best-effort and may vary by platform: - **Background Fetch Timing**: Exact timing depends on OS scheduling - **Battery Optimization**: May be affected by device battery optimization settings -### 🧪 **Testing & Quality** +### **Testing & Quality** - **Test Coverage**: 58 tests across 4 test suites ✅ - **Build Status**: TypeScript compilation and Rollup bundling ✅ @@ -89,7 +95,7 @@ The following behaviors are best-effort and may vary by platform: ## Features -### 🚀 **Core Features** +### **Core Features** - **Dual Scheduling**: Separate content fetch and user notification scheduling - **TTL-at-Fire Logic**: Content validity checking at notification time @@ -98,13 +104,7 @@ The following behaviors are best-effort and may vary by platform: - **Static Daily Reminders**: Simple daily notifications without network content - **Cross-Platform**: Android, iOS, and Electron implementations -### 📱 **Platform Support** - -- **Android**: WorkManager + AlarmManager + SQLite (Room) -- **iOS**: BGTaskScheduler + UNUserNotificationCenter + Core Data -- **Web**: ❌ Removed (native-first architecture) - -### 🔧 **Enterprise Features** +### **Enterprise Features** - **Observability**: Structured logging with event codes - **Health Monitoring**: Comprehensive status and performance metrics @@ -116,7 +116,7 @@ The following behaviors are best-effort and may vary by platform: - Plugin owns its SQLite database - access via Capacitor interfaces - Supports schedules, content cache, callbacks, history, and configuration -### ⏰ **Static Daily Reminders** +### **Static Daily Reminders** - **No Network Required**: Completely offline reminder notifications - **Simple Scheduling**: Easy daily reminder setup with HH:mm time format @@ -139,10 +139,6 @@ npm install git+https://gitea.anomalistdesign.com/trent_larson/daily-notificatio The plugin follows the standard Capacitor Android structure - no additional path configuration needed! -## Documentation - -**📚 Complete Documentation Index**: See [doc/00-INDEX.md](./doc/00-INDEX.md) for organized access to all documentation. - ## Quick Integration **New to the plugin?** Start with the [Quick Integration Guide](./doc/integration/QUICK_START.md) for step-by-step setup instructions. @@ -823,15 +819,11 @@ npm test 5. Ensure all tests pass 6. Submit a pull request -## License - -MIT License - see [LICENSE](LICENSE) file for details. - ## Support ### Documentation -**📚 [Complete Documentation Index](./doc/00-INDEX.md)** - Central hub for all project documentation +**[Complete Documentation Index](./doc/00-INDEX.md)** - Central hub for all project documentation **Key Documentation:** - **Integration**: [Integration Guide](./doc/integration/INTEGRATION_GUIDE.md) - Complete integration instructions @@ -858,10 +850,3 @@ MIT License - see [LICENSE](LICENSE) file for details. - **Custom Implementations**: Tailored solutions for enterprise needs - **Integration Support**: Help with complex integrations - **Performance Optimization**: Custom performance tuning - ---- - -**Version**: 2.0.0 -**Last Updated**: 2025-09-22 09:22:32 UTC -**Status**: Phase 2 Complete - Production Ready -**Author**: Matthew Raymer