Problem
The app lacks a notification system to remind users about classes, prompt engagement, and provide timely updates.
Issues Identified
1. No Class Reminders
- Users miss classes without reminders
- No notification before class starts
- No daily schedule summary
- No location-based reminders
- Cannot customize reminder timing
2. Missing Engagement Notifications
- No prompts to log meals
- No reminders to upload timetable
- No Myspace cleanup suggestions
- No friend activity notifications
- No room invitations
3. No Smart Notifications
- Not context-aware
- No intelligent timing
- Cannot learn user preferences
- No notification grouping
- No priority levels
4. Limited Notification Management
- Cannot customize per feature
- No quiet hours
- No notification history
- Cannot snooze notifications
- No notification actions
Proposed Solutions
1. Class Reminder System
Timetable Notifications
- 15 minutes before class
- 5 minutes before class
- Daily schedule at 7 AM
- Weekly schedule on Sunday evening
- Class cancellation alerts
Customizable Timing
Allow users to set:
- Reminder lead time (5, 10, 15, 30 min)
- Daily summary time
- Weekend reminders on/off
- Specific class reminders
Rich Notifications
Include in notification:
- Class name and code
- Room number
- Teacher name
- Time and duration
- Quick actions (View, Snooze, Dismiss)
2. Engagement Notifications
Calorie Tracking Reminders
- Breakfast reminder (8 AM)
- Lunch reminder (1 PM)
- Dinner reminder (7 PM)
- Weekly progress summary
- Goal achievement celebration
Myspace Prompts
- Weekly: Review and organize items
- After class: Capture board photos
- Monthly: Clean up old items
- When storage high: Cleanup suggestion
Hangout Notifications
- Friend creates room
- Friend invites you
- Room about to start
- Friend comes online
- Missed call notification
Timetable Maintenance
- Weekly: Upload new timetable
- When timetable expires
- When schedule changes detected
- Semester start reminder
3. Smart Notification Features
Intelligent Timing
- Learn user active hours
- Avoid quiet hours
- Batch non-urgent notifications
- Priority for urgent items
- Respect Do Not Disturb
Context-Aware
- Location-based (near campus)
- Time-based (morning vs evening)
- Activity-based (in class vs free)
- Pattern-based (usual behavior)
Notification Grouping
Group related notifications:
- Today schedule (3 classes)
- Myspace updates (5 new items)
- Hangout activity (2 invites)
- Calorie reminders (3 meals)
4. Notification Management
Settings Screen
Granular control:
- Enable/disable per feature
- Customize timing
- Set quiet hours
- Choose notification sound
- Vibration patterns
Notification History
View past notifications:
- Last 7 days
- Filter by type
- Mark as read
- Clear all
Quick Actions
Notification actions:
- View details
- Snooze (15 min, 1 hour, tomorrow)
- Mark as done
- Dismiss
- Open in app
Implementation Details
Setup Notifications
Use expo-notifications:
- Request permissions
- Configure notification channels
- Set up background tasks
- Handle notification responses
Scheduling System
Create notification scheduler:
- Parse timetable for class times
- Calculate reminder times
- Schedule local notifications
- Update when timetable changes
- Cancel old notifications
Notification Types
Define notification categories:
- Class reminders (high priority)
- Meal reminders (medium priority)
- Engagement prompts (low priority)
- Social notifications (medium priority)
- System updates (low priority)
Background Tasks
Use expo-task-manager:
- Check for upcoming classes
- Send daily summaries
- Process engagement triggers
- Sync notification state
User Experience
Permission Request
Explain value before requesting:
- Never miss a class
- Stay on track with meals
- Get timely updates
- Can customize later
First Notification
Make it delightful:
- Friendly tone
- Clear action
- Easy to dismiss
- Explain how to customize
Notification Content
Keep it concise:
- Title: Class name or action
- Body: Key details (time, room)
- Icon: Feature icon
- Actions: 1-2 quick actions
Notification Sounds
Appropriate sounds:
- Class reminder: Gentle chime
- Meal reminder: Soft bell
- Room invite: Friendly ping
- Achievement: Celebration sound
Technical Implementation
Notification Channels (Android)
Create channels for:
- Class reminders
- Meal tracking
- Social updates
- System notifications
Notification Categories (iOS)
Define categories with actions:
- Class reminder: View, Snooze
- Meal reminder: Log, Skip
- Room invite: Join, Decline
- Timetable update: Upload, Later
Local Notifications
Schedule in advance:
- Parse timetable on upload
- Calculate all reminder times
- Schedule batch notifications
- Update on timetable change
Push Notifications (Future)
For real-time updates:
- Room invitations
- Friend activity
- Schedule changes
- System announcements
Settings UI
Notification Settings Screen
Organized sections:
- Timetable reminders
- Calorie tracking
- Myspace prompts
- Hangout notifications
- Quiet hours
- Notification history
Toggle Controls
For each notification type:
- Enable/disable switch
- Timing picker
- Sound selector
- Vibration toggle
- Preview button
Quiet Hours
Set do-not-disturb:
- Start time picker
- End time picker
- Days of week
- Emergency override
- Exceptions (class reminders)
Acceptance Criteria
Class Reminders
Engagement Notifications
Smart Features
Management
Priority
High - Notifications drive engagement and retention
Dependencies
- expo-notifications
- expo-task-manager
- expo-background-fetch
Related Issues
- Issue 120 (Background sync for notifications)
- Issue 121 (Onboarding for notification permissions)
Problem
The app lacks a notification system to remind users about classes, prompt engagement, and provide timely updates.
Issues Identified
1. No Class Reminders
2. Missing Engagement Notifications
3. No Smart Notifications
4. Limited Notification Management
Proposed Solutions
1. Class Reminder System
Timetable Notifications
Customizable Timing
Allow users to set:
Rich Notifications
Include in notification:
2. Engagement Notifications
Calorie Tracking Reminders
Myspace Prompts
Hangout Notifications
Timetable Maintenance
3. Smart Notification Features
Intelligent Timing
Context-Aware
Notification Grouping
Group related notifications:
4. Notification Management
Settings Screen
Granular control:
Notification History
View past notifications:
Quick Actions
Notification actions:
Implementation Details
Setup Notifications
Use expo-notifications:
Scheduling System
Create notification scheduler:
Notification Types
Define notification categories:
Background Tasks
Use expo-task-manager:
User Experience
Permission Request
Explain value before requesting:
First Notification
Make it delightful:
Notification Content
Keep it concise:
Notification Sounds
Appropriate sounds:
Technical Implementation
Notification Channels (Android)
Create channels for:
Notification Categories (iOS)
Define categories with actions:
Local Notifications
Schedule in advance:
Push Notifications (Future)
For real-time updates:
Settings UI
Notification Settings Screen
Organized sections:
Toggle Controls
For each notification type:
Quiet Hours
Set do-not-disturb:
Acceptance Criteria
Class Reminders
Engagement Notifications
Smart Features
Management
Priority
High - Notifications drive engagement and retention
Dependencies
Related Issues