The attodo.app, uhh... app.
at main 416 lines 11 kB view raw view rendered
1# Notification Setup Guide 2 3Complete guide to setting up and managing push notifications in AT Todo. 4 5## Table of Contents 6 7- [Getting Started](#getting-started) 8- [Multi-Device Setup](#multi-device-setup) 9- [Notification Settings](#notification-settings) 10- [Troubleshooting](#troubleshooting) 11 12--- 13 14## Getting Started 15 16### Enabling Push Notifications 17 18Push notifications allow you to receive alerts about due tasks even when AT Todo isn't open. 19 20**Step 1: Access Settings** 21 221. Click the "Settings" link in the navigation bar 232. A settings dialog (modal) will open 24 25**Step 2: Enable Notifications** 26 271. In the Settings dialog, scroll down to "Notification Settings" 282. You'll see your current notification status (e.g., "Not enabled") 293. Click the "Enable Push Notifications" button 304. Your browser will prompt for permission - click "Allow" 31 32**Step 3: Configure Preferences** 33 34Once enabled, you'll see notification preferences: 35 36- **Timing**: Choose which types of tasks trigger notifications 37 - Overdue tasks (default: on) 38 - Tasks due today (default: on) 39 - Tasks due within 3 days (default: off) 40 41- **Check Frequency**: How often to check for new notifications 42 - Every 15 minutes 43 - Every 30 minutes (default) 44 - Every hour 45 - Every 2 hours 46 47- **Quiet Hours**: Set Do Not Disturb times 48 - Enable/disable quiet hours 49 - Start time (default: 10 PM) 50 - End time (default: 8 AM) 51 52**Step 4: Test Your Setup** 53 541. Click "Send Test Notification" button 552. You should see a test notification appear 563. If successful, you'll see a confirmation toast 57 58--- 59 60## Multi-Device Setup 61 62AT Todo supports notifications on multiple devices - your phone, tablet, desktop, etc. 63 64### How Multi-Device Works 65 66- Each browser/device needs to register separately 67- Notifications are sent to **all registered devices** simultaneously 68- Each device maintains its own subscription 69- All devices receive the same notifications 70 71### Registering Additional Devices 72 73**For each device you want to receive notifications:** 74 751. **Open AT Todo** on the new device 762. **Login** with your account 773. **Open Settings** (click the "Settings" link in the top navigation) 784. **Enable Notifications**: 79 - If this is your first device: Click "Enable Push Notifications" 80 - If you already have notifications enabled on another device: Click "Register This Device" 815. **Grant Permission** when your browser prompts 826. **Verify** the device appears in "Registered Devices" list 83 84### Viewing Registered Devices 85 86In the Settings → Notification Settings section, you'll see a "Registered Devices" list showing: 87 88- Device count 89- Browser/OS information for each device 90- Registration date 91 92Example: 93``` 94Registered Devices: 95• Device 1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)... (added 11/22/2024) 96• Device 2: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)... (added 11/22/2024) 97• Device 3: Mozilla/5.0 (Windows NT 10.0; Win64; x64)... (added 11/23/2024) 98``` 99 100### Re-registering a Device 101 102If notifications stop working on a device: 103 1041. Open Settings on that device 1052. Click "Register This Device" button 1063. The device will refresh its subscription 1074. Test with "Send Test Notification" 108 109### Removing Devices 110 111To remove a device from receiving notifications: 112 1131. **Open Settings** on any device 1142. **Find the device** in the "Registered Devices" list 1153. **Click the X button** next to the device you want to remove 1164. **Confirm removal** when prompted 1175. The device will no longer receive notifications 118 119**Notes:** 120- You can remove devices from any logged-in device (not just the device itself) 121- Devices can be re-registered at any time 122- Removing the last device will reset the notification UI 123- If you remove the current device, you'll need to re-enable notifications 124 125### Managing Old Devices 126 127- Inactive device subscriptions expire automatically over time 128- Failed notifications to old devices won't affect active ones 129- Manual removal via the X button is the recommended cleanup method 130 131--- 132 133## Notification Settings 134 135### Timing Preferences 136 137Control which tasks trigger notifications: 138 139**Overdue Tasks** (Recommended: ON) 140- Notifies when tasks are past their due date 141- Highest priority - shown first 142- Example: "Submit report" was due yesterday 143 144**Tasks Due Today** (Recommended: ON) 145- Notifies about tasks due within 24 hours 146- Shows time until due 147- Example: "Team meeting" due at 2:00 PM today 148 149**Tasks Due Soon** (Optional) 150- Notifies about tasks due within 3 days 151- Helpful for planning ahead 152- Example: "Project deadline" due in 2 days 153 154**Hours Before Due** (Advanced) 155- Get advance notice before tasks are due 156- Range: 0-72 hours 157- Example: Set to 2 hours to get notified 2 hours before due time 158 159### Check Frequency 160 161How often AT Todo checks for new due tasks: 162 163- **Every 15 minutes**: Most responsive, more battery usage 164- **Every 30 minutes**: Balanced (default) 165- **Every hour**: Less frequent, better battery life 166- **Every 2 hours**: Minimal battery impact 167 168**Note**: Server-side checks also run every 5 minutes regardless of client settings. 169 170### Quiet Hours (Do Not Disturb) 171 172Prevent notifications during sleep or focus time: 173 174**Enable Quiet Hours:** 1751. Check "Enable Do Not Disturb mode" 1762. Set start time (hour, 0-23) 177 - Default: 22 (10 PM) 1783. Set end time (hour, 0-23) 179 - Default: 8 (8 AM) 180 181**How It Works:** 182- No notifications during quiet hours 183- Notifications queued will appear after quiet hours end 184- Works independently on each device 185 186### Saving Changes 187 188After configuring preferences: 1891. Click "Save Preferences" button 1902. You'll see a success toast 1913. Settings are synced to your AT Protocol repository 192 193--- 194 195## Troubleshooting 196 197### Notifications Not Appearing 198 199**Check Browser Permissions:** 200 2011. **Chrome/Edge**: 202 - Click lock icon in address bar 203 - Check "Notifications" is set to "Allow" 204 2052. **Firefox**: 206 - Click lock icon → Permissions → Notifications 207 - Should be "Allowed" 208 2093. **Safari**: 210 - Safari → Settings → Websites → Notifications 211 - Find your domain, should be "Allow" 212 213**Check System Settings:** 214 215- **macOS**: System Settings → Notifications → [Your Browser] 216- **Windows**: Settings → System → Notifications → [Your Browser] 217- **iOS**: Settings → [Your Browser] → Notifications 218- **Android**: Settings → Apps → [Your Browser] → Notifications 219 220**Verify AT Todo Settings:** 221 2221. Open Settings 2232. Check notification status shows "Enabled ✓" 2243. Verify device appears in "Registered Devices" 2254. Try clicking "Register This Device" to refresh 226 227**Test Connection:** 228 2291. Click "Send Test Notification" 2302. Check the response: 231 - Success: "Test notification sent to X device(s)" 232 - Failure: Error message with details 2333. Check browser console for errors (F12 → Console) 234 235### Device Not Listed 236 237If a device doesn't appear in "Registered Devices": 238 2391. Click "Enable Push Notifications" or "Register This Device" 2402. Grant permission when prompted 2413. Wait 2-3 seconds for registration 2424. Refresh the Settings page 2435. Device should now appear 244 245### Notifications on Some Devices Only 246 247If notifications work on one device but not others: 248 2491. On the non-working device, open Settings 2502. Check notification permission status 2513. Click "Register This Device" 2524. Send test notification 2535. All devices should receive it 254 255**Common causes:** 256- Device wasn't registered (no subscription created) 257- Browser permission denied 258- Browser doesn't support push notifications 259- System notifications disabled for browser 260 261### Wrong Notification Times 262 263If notifications appear at wrong times: 264 265**Check Timezone:** 2661. Verify system timezone is correct 2672. Edit a task and check the time shown 2683. Times should match your local timezone 269 270**Check Task Due Times:** 2711. Tasks without times trigger at midnight 2722. Add specific times for better scheduling 2733. Example: "tomorrow at 3pm" vs just "tomorrow" 274 275### Too Many/Few Notifications 276 277**Adjust Settings:** 278 2791. **Too many**: 280 - Disable "Tasks due soon" notifications 281 - Increase check frequency to 2 hours 282 - Enable quiet hours 283 2842. **Too few**: 285 - Enable all notification types 286 - Decrease check frequency to 15 minutes 287 - Check quiet hours aren't blocking 288 289**Notification Cooldown:** 290- Each task only notifies once per 12 hours 291- Prevents spam for the same task 292- Resets after task is completed 293 294### Browser Compatibility Issues 295 296**Best Support:** 297- Chrome (desktop & Android) 298- Edge (desktop) 299- Safari (iOS 16.4+, macOS) 300 301**Limited Support:** 302- Firefox (no background sync) 303- Older Safari versions 304- Mobile browsers (varies) 305 306**If using unsupported browser:** 3071. Switch to Chrome or Edge for best experience 3082. Or keep AT Todo open for notifications 3093. Check server logs for notification sends 310 311### Service Worker Issues 312 313If notifications completely stop working: 314 315**Reset Service Worker:** 316 3171. Open browser DevTools (F12) 3182. Go to Application tab → Service Workers 3193. Click "Unregister" next to AT Todo worker 3204. Refresh the page 3215. Service worker will reinstall 3226. Re-enable notifications in Settings 323 324**Check Service Worker Status:** 325 3261. Navigate to `/app/settings` 3272. Open Console (F12) 3283. Look for `[Push]` prefixed logs 3294. Should see "Service worker ready" 3305. Should see "Subscription registered successfully" 331 332--- 333 334## Advanced Topics 335 336### How Notifications Work 337 338**Architecture:** 339 3401. **Client-Side Check** (Browser): 341 - Service worker runs periodic checks 342 - Compares current time to task due dates 343 - Shows notifications for matching tasks 344 3452. **Server-Side Check** (Background Job): 346 - Runs every 5 minutes 347 - Checks all enabled users 348 - Sends push notifications to registered devices 349 3503. **Push Service** (Browser Vendor): 351 - Chrome uses FCM (Firebase Cloud Messaging) 352 - Safari uses APNs (Apple Push Notification service) 353 - Delivers notifications to devices 354 355**Data Flow:** 356 357``` 358Task Due → Server Check → Push Service → Your Device → Notification 359``` 360 361### Privacy & Security 362 363**What's Stored:** 364 365- **In Database**: 366 - Your DID (user identifier) 367 - Device push subscriptions (endpoints, keys) 368 - Notification history (prevents spam) 369 370- **In AT Protocol**: 371 - Notification preferences 372 - Task data (titles, due dates) 373 374- **Never Stored**: 375 - Notification content (generated on-demand) 376 - Which notifications you viewed 377 - Device location or tracking data 378 379**Encryption:** 380 381- Push subscriptions use public/private key encryption 382- VAPID (Voluntary Application Server Identification) 383- End-to-end encrypted between server and device 384 385### Notification History 386 387Prevent notification spam with built-in cooldown: 388 389- Each task can only notify once per 12 hours 390- Tracked in `notification_history` table 391- Resets when task is completed 392- Separate tracking per notification type (overdue, today, soon) 393 394--- 395 396## Getting Help 397 398If you're still having issues: 399 4001. Check the [Features Guide](/docs/features) for more details 4012. Review browser console for error messages 4023. Check server logs for notification sending 4034. Report issues on GitHub 4045. Contact via Bluesky 405 406--- 407 408## Tips for Best Experience 409 4101. **Enable on all devices** you regularly use 4112. **Set appropriate check frequency** based on urgency 4123. **Use quiet hours** to avoid sleep disruption 4134. **Test notifications** after first setup 4145. **Keep browser updated** for best compatibility 4156. **Grant persistent permissions** (don't use Incognito mode) 4167. **Check "Registered Devices"** periodically to verify active devices