Skip to content

Add notification system and smart reminders #122

@SahilKumar75

Description

@SahilKumar75

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

  • Notifications before classes
  • Daily schedule summary
  • Customizable timing
  • Rich notification content
  • Quick actions work

Engagement Notifications

  • Meal reminders
  • Timetable upload prompts
  • Myspace cleanup suggestions
  • Room invitations

Smart Features

  • Intelligent timing
  • Notification grouping
  • Priority levels
  • Context awareness

Management

  • Granular settings
  • Quiet hours
  • Notification history
  • Snooze functionality

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:appExpo React Native apparea:backendBackend API and persistenceenhancementNew feature or requestpriority:p1High priority or release blockingtype:featureNew capability or product improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions