> ## 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.

# Event

## A. Definisi

**Event** di BAWANA adalah fitur untuk mengelola pembelajaran yang memiliki waktu, peserta, dan konteks pelaksanaan yang jelas. Event dapat digunakan untuk kebutuhan seperti:

* pelatihan kelas (online atau offline)
* workshop atau webinar
* sesi onboarding atau evaluasi atau briefing
* sesi lainnya, seperti townhall, aktivitas olah raga, dan lain-lain

Event di BAWANA bukan sekadar agenda, tetapi bagian dari ekosistem pembelajaran yang dapat dikaitkan dengan Course, Journey, dan survey.

## B. Jenis Event

### 1. Berdasarkan Pola Pembuatan

Saat membuat Event, Admin **wajib memilih jenis Event**:

#### a. Single Event

Digunakan untuk satu sesi pelatihan dengan satu waktu pelaksanaan.

Contoh:

* Workshop Service Excellence tanggal 30 September 2026
* Webinar Risk Awareness yang terdiri dari hanya satu kali sesi

#### b. Multiple Event

Digunakan untuk membuat **beberapa Event sekaligus** dalam satu rangkaian, dengan konfigurasi yang konsisten.

Contoh:

* Pelatihan onboarding new hire batch mingguan
* Kelas pelatihan yang diulang di beberapa tanggal selama 3 bulan
* Event paralel untuk beberapa lokasi atau kelompok

Multiple Event memudahkan Admin mengelola Event berulang tanpa membuat satu per satu.

### 2. Berdasarkan Metode Pelaksanaan

#### a. Online Event

Event yang diselenggarakan secara daring (online). Ciri utama:

* Menggunakan video conference link (Zoom, Google Meet, dan sejenisnya)
* Dapat dilengkapi dengan attachment pendukung
* Kehadiran dilakukan melalui tombol Attend

#### b. Offline Event

Event yang diselenggarakan secara tatap muka (offline). Ciri utama:

* Diselenggrakan di lokasi fisik
* Sistem menghasilkan barcode untuk kehadiran
* Learner melakukan Check-in melalui scan barcode

## C. Partisipasi Event

Event di BAWANA mendukung beberapa skema untuk Learner dapat berpartisipasi, yaitu:

* **Public Event**. Event dapat terlihat oleh audience tertentu.
* **By Invitation**. Hanya audience yang diundang yang dapat mengikuti Event.
* **By Registration**. Peserta harus melakukan registrasi terlebih dahulu sebelum mengikuti Event.

Admin dapat mengombinasikan skema ini sesuai kebutuhan organisasi.

## D. Keterkaitan Event

Event dapat berdiri sendiri atau dikaitkan dengan komponen lain.

### 1. Course

Event dapat dihubungkan dengan satu Course. Contoh penggunaan:

* Course sebagai materi sebelum Event
* Course sebagai tindak lanjut setelah Event

Dengan ini, Event menjadi bagian dari alur pembelajaran (biasanya di dalam Journey), bukan aktivitas terpisah.

### 2. Pre-Test dan Post-Test

Admin dapat mengatur:

* Pre-Test untuk mengukur pemahaman awal
* Post-Test untuk mengukur hasil setelah Event

### 3. Survey

Event dapat dilengkapi dengan Survey untuk mengumpulkan feedback peserta.

Survey digunakan untuk:

* evaluasi kualitas Event
* efektivitas trainer
* relevansi materi

## E. Pengaturan Event

Saat membuat atau mengubah Event, Admin mengatur beberapa kelompok informasi berikut:

### 1. Informasi Umum

* Judul Event
* Banner Event
* Deskripsi Event
* Doc Name dan Doc Name Checkout
* State (Draft atau Published)

### 2. Waktu dan Kapasitas

* Start Date dan End Date
* Kuota peserta
* Allow early attend (waktu check-in lebih awal)
* Allow early publish (berapa hari sebelum Event ditampilkan)

### 3. Distribusi dan Audience

* Invite Audience
* Publish Audience
* Allow Register

### 4. Konfigurasi Pembelajaran

* Course terkait
* Pre-Test dan Post-Test
* Point
* Certificate
* Reminder Post Test
* Feedback
* Trainer Name

### 5. Tampilan dan Akses

* Show in Calendar
* Attachment
* Video Conference Link
* Venue (untuk Offline Event)

### 6. Perubahan Event

Admin dapat melakukan perubahan terhadap event yang sudah dibuat melalui halaman **Edit Event**. Perubahan yang dapat dilakukan meliputi:

* Nama event
* Deskripsi
* Jadwal (Start Date & End Date)
* Lokasi
* Status event

### 7. Reschedule Event

Admin dapat memperbarui jadwal event dengan mengubah **Start Date dan End Date**. Saat admin menekan tombol **Update**:

1. Sistem akan menampilkan **confirmation pop-up**
2. Jika admin memilih **Yes**:
   * Sistem mengirim email update kepada peserta
   * Sistem melampirkan file **ICS terbaru**
   * Event pada kalender peserta akan **diperbarui (tidak duplicate)**
3. Jika admin memilih **No**:
   * Tidak ada email yang dikirim
   * Perubahan tidak diproses

**Behavior pada Calendar peserta Event:**

* Event akan otomatis berpindah ke jadwal terbaru
* Tidak terjadi duplikasi event

### 8. Cancel Event

Admin dapat membatalkan event dengan mengubah status menjadi **Cancelled**.

Saat admin menyimpan perubahan:

1. Sistem akan menampilkan **confirmation pop-up**
2. Jika admin memilih **Yes**:
   * Sistem mengirim email pembatalan kepada peserta
   * Sistem melampirkan file ICS dengan status **CANCELLED**
   * Event akan:
     * Dihapus dari kalender peserta, atau
     * Ditandai sebagai cancelled (tergantung aplikasi kalender)
3. Jika admin memilih **No**:
   * Tidak ada email yang dikirim
   * Event tidak berubah

**Catatan:**

* Event dengan status *Cancelled* tidak dapat diubah kembali

## F. Alur Pengguna (Learner)

1. Learner menerima notifikasi Event
2. Learner melihat detail Event di Homepage atau di menu Event
3. Jika diaktifkan, learner dapat melakukan registrasi
4. Saat waktu Event:
   * Online: klik Attend dan masuk ke link (Zoom, Google Meet, dan sejenisnya)
   * Offline: scan barcode
5. Learner menyelesaikan Event
6. Learner mengerjakan Post-Test atau Survey jika tersedia

## G. Notification & Calendar Integration

Sistem secara otomatis mengirimkan notifikasi email kepada peserta ketika terjadi perubahan pada event, dengan jenis notifikasi sebagai berikut:

#### 1. Reschedule Event

* Subject: `Update Invitation: {event name}`
* Email berisi:
  * Informasi jadwal lama dan jadwal baru
* Attachment:
  * File ICS terbaru

#### 2. Cancelled Event

* Subject: `Cancelled Event: {event name}`
* Email berisi:
  * Informasi pembatalan event
  * Jadwal event sebelumnya
* Attachment:
  * File ICS dengan status **CANCELLED**

## H. Calendar Sync Behavior

Untuk memastikan sinkronisasi kalender berjalan dengan akurat:

* Sistem menggunakan **event\_id sebagai UID**
* Setiap perubahan event akan:
  * Memperbarui event yang sudah ada di kalender pengguna
  * Tidak membuat event baru (no duplicate)
* Setiap update akan meningkatkan versi event (**sequence**)

**Hasilnya:**

* Kalender peserta selalu mengikuti jadwal terbaru
* Tidak ada event ganda
* Event yang dibatalkan akan otomatis hilang atau ditandai

**Important Notes:**

* Email hanya dikirim jika admin memilih **Yes** pada confirmation pop-up
* Tidak tersedia tombol manual untuk mengirim email
* Perubahan event tidak memengaruhi event lain
* Event yang sudah dibatalkan tidak dapat diaktifkan kembali

## I. Monitoring dan Report

Admin dapat memantau:

* Daftar peserta
* Status kehadiran
* Penyelesaian Event
* Feedback peserta

Data Event digunakan sebagai bagian dari pelaporan pembelajaran organisasi.
