> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bawana.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notification

## A. Definisi

Notification di BAWANA adalah mekanisme komunikasi sistem untuk memberi tahu learner tentang aktivitas, status, dan perubahan penting dalam proses pembelajaran. Notification bertujuan untuk:

* Menjaga learner tetap aware
* Mengurangi ketergantungan pada komunikasi manual
* Memastikan tidak ada tahapan pembelajaran yang terlewat

Dalam arsitektur BAWANA:

* Notification bersifat *activity-driven* (di-trigger berdasarkan aktivitas tertentu)
* Notification mengikuti alur sistem, bukan dikirim manual
* Notification mendukung fitur utama:
  * Course
  * Assignment
  * Event
  * Journey
  * Sertifikasi

## B. Kategori Notification di BAWANA

### 1. **System Notification**

Notifikasi yang **dipicu oleh sistem** karena ada aksi atau perubahan status. Contoh:

* Assignment baru di-assign
* Event dipublish
* Point baru didapatkan
* Sertifikat tersedia
* Lulus / tidak lulus post-test

### 2. **Reminder Notification**

Notifikasi yang **dipicu oleh waktu** atau jadwal. Contoh:

* H-1 event
* Reminder assignment mendekati due date

## C. Tipe Notification di BAWANA

Di BAWANA terdapat 4 tipe notification.

| **Tipe Notification**          | Kategori **Notification** | Media        | Karakteristik                                                                                                                                                                                               |
| :----------------------------- | ------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **1. In-App Notification**     | System, Reminder          | Web & Mobile | Dapat diakses pada icon lonceng (tidak interruptive terhadap aktifitas learner), tersimpan sebagai histori, cocok untuk update status pembelajaran dan informasi berkelanjutan lainnya.                     |
| **2. Email Notification**      | System, Reminder          | Email        | Dikirim ke learner dengan email terdaftar, berisi ringkasan dari aktivitas, merupakan pelengkap dari In-app Notification, digunakan untuk hal yang membutuhkan tindak lanjut seperti klik link.             |
| **3. Push Notification**       | System, Reminder          | Mobile       | Muncul di *lockscreen* atau *notification center* pada mobile, *real-time*, muncul walaupun user tidak membuka aplikasi (bersifat interruptive), efektif menarik user kembali ke aplikasi saat tidak aktif. |
| **4. Pop-up / Modal / Banner** | System, Reminder          | Web & Mobile | Muncul di Homepage saat login, digunakan untuk menuntut aksi segera, digunakan untuk informasi yang menuntut perhatian pengguna.                                                                            |

### 1. In-App Notification

In-App Notification dapat diakses memalui icon lonceng. Learner dapat:

* Melihat daftar notifikasi
* Membuka detail aktivitas dari notifikasi
* Menandai notifikasi sebagai telah dibaca

*(insert image in-app notification)*

### 2. Email Notification

Email Notification dikirim ke alamat email terdaftar. Email Notification bersifat pelengkap dari In-App Notification.

*(insert image email notification)*

### 3. Push Notification

Push Notification dikirim langsung ke perangkat mobile learner melalui sistem notifikasi perangkat (\_lockscreen *atau\_notification center* ). Push Notification berfungsi sebagai penguat dari In-App Notification, terutama untuk memastikan informasi penting tidak terlewat.

*(insert image push notification / lockscreen)*

### 3. Pop-up / Modal / Banner

Pop-up, Modal, atau Banner merupakan notifikasi yang ditampilkan langsung di dalam aplikasi BAWANA saat login atau saat mengakses homepage. Jenis notifikasi ini berperan sebagai *attention trigger* di dalam aplikasi, berbeda dengan In-App Notification yang lebih bersifat informatif dan pasif.

*(insert image pop-up / banner notification)*

## 4. Trigger Notification

Notification di BAWANA dikirim berdasarkan **trigger tertentu**, bukan secara manual.

| No | Trigger Event                  | In-App Notification | Email Notification | Push Notification | Pop-up / Banner |
| :- | :----------------------------- | :------------------ | :----------------- | :---------------- | :-------------- |
| 1  | User Confirmation              | ❌                   | ✅                  | ❌                 | ❌               |
| 2  | Forgot Password                | ❌                   | ✅                  | ❌                 | ❌               |
| 3  | MFA / OTP                      | ❌                   | ✅                  | ❌                 | ❌               |
| 4  | New Assignment dibuat Admin    | ✅                   | ✅                  | ⚠️                | ⚠️              |
| 5  | Assignment mendekati due date  | ✅                   | ⚠️                 | ⚠️                | ⚠️              |
| 6  | Assignment overdue             | ✅                   | ✅                  | ✅                 | ✅               |
| 7  | User enroll course             | ✅                   | ✅                  | ❌                 | ❌               |
| 8  | User cancel course             | ✅                   | ✅                  | ❌                 | ❌               |
| 9  | User menyelesaikan course      | ✅                   | ✅                  | ❌                 | ❌               |
| 10 | Sertifikat terbit              | ✅                   | ✅                  | ⚠️                | ❌               |
| 11 | Point bertambah                | ✅                   | ⚠️                 | ❌                 | ❌               |
| 12 | Event invitation               | ✅                   | ✅                  | ❌                 | ❌               |
| 13 | Event reminder (H-1 / H-0)     | ✅                   | ⚠️                 | ✅                 | ⚠️              |
| 14 | Event registration approved    | ✅                   | ✅                  | ❌                 | ❌               |
| 15 | Perubahan jadwal event         | ✅                   | ✅                  | ✅                 | ⚠️              |
| 16 | Mandatory program tersedia     | ✅                   | ✅                  | ⚠️                | ✅               |
| 17 | Sertifikasi mendekati expired  | ✅                   | ✅                  | ✅                 | ⚠️              |
| 18 | Sertifikasi expired            | ✅                   | ✅                  | ❌                 | ⚠️              |
| 19 | Akses user ditutup oleh sistem | ✅                   | ✅                  | ❌                 | ❌               |

Keterangan simbol:

* ✅ = Digunakan secara default
* ⚠️ = Opsional (digunakan tergantung kebijakan & urgensi)
* ❌ = Tidak digunakan
