Skip to main content
Version: 1.2.9

Notifications Module Technical Reference

This page describes local database notification structures, the Ubuntu Touch Notification Server integration, background notification helper scripts, and scheduling logic.

Codebase Mapโ€‹

LayerPathPurpose
Push Helperpush-helper.pyStandalone script triggered by OS push service
Notification UIqml-notify-module/QML notify alerts and dropdown banner components
Local Storemodels/notifications.jsJS bindings to query and update local notification states
Daemon Logicsrc/daemon.pyLocal alarm scheduler and smart working-hours filters

SQLite Table: notificationโ€‹

Notifications are managed locally using the following SQLite schema:

  • id (INTEGER, Primary Key): Unique database identifier.
  • title (TEXT): Headline label of the notification.
  • message (TEXT): Full body message.
  • notif_type (TEXT): Category (ACTIVITY, TASK_ASSIGN, SYNC_CONFLICT).
  • timestamp (TEXT): Received timestamp (ISO 8601).
  • read_status (INTEGER): Status indicator (0 = Unread, 1 = Read).
  • payload (TEXT): JSON dump of additional action fields.

Push Notification Mechanismโ€‹

The TimeManagement application integrates with the Ubuntu Touch push notifications system using the push-helper.py script.

Incoming Push Architectureโ€‹

Working Hours Filterโ€‹

To prevent user fatigue, the push-helper.py evaluates system configurations before alerting:

  • Checks the current system local time against start_hour and end_hour values in app_settings.
  • If a push is received outside these hours, the alert is logged silently in the SQLite database (notification table) with read_status = 0, but the system desktop banner is bypassed.