# SIMETIK — Sistem Informasi Etik

Sistem manajemen _ethical clearance_ penelitian berbasis web yang mengelola seluruh alur proses — mulai dari pendaftaran peneliti, pengajuan penelitian, review etik, hingga penerbitan sertifikat _Ethical Clearance_.

---

## Tech Stack

| Layer      | Teknologi                                   |
| ---------- | ------------------------------------------- |
| Framework  | Laravel 10 (PHP 8.4+)                       |
| Frontend   | Livewire, Blade, Bootstrap                  |
| Database   | MySQL (UUID primary keys)                   |
| Auth       | Laravel Sanctum + Spatie Permission (Roles) |
| Payment    | Midtrans (Snap Token)                       |
| Mail       | Laravel Mailable (SMTP)                     |
| JS Runtime | Bun                                         |

---

## Peran Pengguna (User Roles)

| Role            | Deskripsi                                                                     |
| --------------- | ----------------------------------------------------------------------------- |
| **Peneliti**    | Mendaftar, mengajukan penelitian, mengunggah dokumen, dan menerima sertifikat |
| **Admin**       | Memverifikasi akun & pengajuan penelitian, mengelola pembayaran               |
| **Sekretaris**  | Memverifikasi kelengkapan dokumen penelitian                                  |
| **Reviewer**    | Menelaah dan mereview protokol penelitian                                     |
| **Wakil Dekan** | Menandatangani sertifikat _Ethical Clearance_                                 |

---

## Alur Sistem (System Flow)

Berikut adalah alur lengkap sistem dari pendaftaran hingga penerbitan sertifikat:

### 1. 📝 Pendaftaran & Verifikasi Akun

```
Peneliti mendaftar → Email verifikasi dikirim → Admin memverifikasi akun → Akun aktif
```

- Peneliti mengisi data pendaftaran (nama, email, institusi, dll.)
- Sistem mengirim email selamat datang (`WelcomeForNewAccount`)
- Admin memverifikasi akun peneliti melalui halaman **Verifikasi Akun**

### 2. 📋 Pengajuan Penelitian (Research Submission)

```
Status: submission
```

Peneliti mengajukan penelitian dengan langkah-langkah berikut:

1. **Self Assessment** — Mengisi formulir penilaian mandiri untuk menentukan tipe review
2. **Pengisian Formulir** — Mengisi data penelitian:
    - Judul penelitian (Indonesia & Inggris)
    - Kategori penelitian
    - Tempat & waktu penelitian
    - Anggota peneliti
3. **Unggah Dokumen** — Mengunggah proposal dan _informed consent_
4. **Menjawab Pertanyaan Etik** — Mengisi formulir pertanyaan etik sesuai kategori

Tipe review ditentukan berdasarkan self assessment:

- **Exempted** — Risiko minimal, proses review ringkas
- **Expedited** — Risiko rendah–menengah, review oleh reviewer
- **Full Board** — Risiko tinggi, review dalam sidang _Full Board Meeting_

### 3. ✅ Verifikasi Admin

```
Status: submission → awaiting-admin-verification
```

- Admin memeriksa kelengkapan berkas pengajuan
- Jika lengkap → lanjut ke verifikasi sekretaris
- Jika tidak lengkap → dikembalikan ke peneliti untuk revisi

### 4. ✅ Verifikasi Sekretaris

```
Status: awaiting-admin-verification → awaiting-secretary-verification
```

- Sekretaris memverifikasi kesesuaian dokumen dan kelayakan etik awal
- Email notifikasi dikirim ke peneliti (`SecretaryVerification`, `SecretaryVerified`)

### 5. 💳 Pembayaran

```
Status pembayaran: unpaid → awaiting-confirmation → paid
```

- Sistem men-generate invoice berdasarkan kategori dan harga penelitian
- Peneliti melakukan pembayaran (transfer / Midtrans)
- Peneliti mengunggah bukti pembayaran
- Admin memverifikasi pembayaran
- Email notifikasi: `Payment`, `PaymentConfirmation`, `PaymentVerified`
- Jika pembayaran ditolak: `PaymentRejected` → peneliti mengunggah ulang

### 6. 👥 Penunjukan Reviewer

```
Status: awaiting-secretary-verification → unreviewed
```

- Admin/Sekretaris menunjuk reviewer untuk menelaah penelitian
- Email notifikasi dikirim ke reviewer (`AppointedAsAReviewer`)
- Jika reviewer perlu diganti: `ChangeReviewer`
- Reminder otomatis untuk review yang belum diselesaikan (`UnreviewedReminder`)

### 7. 🔍 Proses Review

```
Status: unreviewed → under-review
```

- Reviewer menelaah proposal, _informed consent_, dan jawaban etik
- Reviewer memberikan catatan dan keputusan:
    - ✅ **Layak** → lanjut ke penyelesaian
    - 📝 **Revisi** → dikembalikan ke peneliti
    - ❌ **Ditolak** → penelitian ditolak

#### 7a. Siklus Revisi

```
Status: under-review → revision → under-review (berulang)
```

- Jika diperlukan revisi, peneliti memperbaiki:
    - Jawaban pertanyaan etik
    - Proposal penelitian
    - _Informed consent_
- Email notifikasi: `Revision`
- Reviewer memeriksa ulang revisi yang diajukan
- Siklus berulang hingga reviewer menyetujui

#### 7b. Full Board Meeting (khusus tipe Full Board)

- Admin menjadwalkan sidang _Full Board Meeting_
- Email undangan dikirim (`FullBoardMeeting`)
- Hasil sidang menentukan kelayakan etik penelitian

### 8. ✅ Penyelesaian & Penerbitan Sertifikat

```
Status: under-review → done
```

- Penelitian dinyatakan selesai review
- Email notifikasi: `ResearchComplete`
- Sertifikat _Ethical Clearance_ disiapkan dengan:
    - Nomor sertifikat (unik)
    - Nama peneliti & data penelitian
    - Tanda tangan Ketua Komisi Etik
- Admin/Sekretaris memverifikasi sertifikat (`VerifyCertificate`)
- Sertifikat ditebitkan dan siap diunduh (`VerifiedCertificate`)

### 9. 📜 Cetak Dokumen

Sistem menyediakan fitur cetak untuk:

- **Sertifikat Ethical Clearance** — `/cetak/ethical-clearance`
- **Invoice** — `/cetak/invoice`
- **Kuitansi** — `/cetak/kuitansi`
- **Rekapitulasi** — `/cetak/rekapitulasi`
- **Surat Amandemen** — `/cetak/amandemen`

### 10. 📝 Amandemen (Opsional)

Setelah sertifikat terbit, peneliti dapat mengajukan amandemen jika terdapat perubahan pada protokol penelitian:

- Peneliti mengisi alasan perubahan
- Mengunggah dokumen amandemen
- Admin memproses amandemen
- Penelitian masuk kembali ke siklus review (jika diperlukan)

---

## Diagram Alur Status Penelitian

```
┌─────────────┐
│  submission  │  Peneliti mengajukan penelitian
└──────┬───────┘
       ▼
┌──────────────────────────────┐
│ awaiting-admin-verification  │  Admin memverifikasi berkas
└──────────────┬───────────────┘
               ▼
┌───────────────────────────────────┐
│ awaiting-secretary-verification   │  Sekretaris memverifikasi dokumen
└───────────────┬───────────────────┘
                ▼
         ┌─────────────┐
         │  unreviewed  │  Menunggu reviewer menelaah
         └──────┬───────┘
                ▼
        ┌───────────────┐
        │  under-review  │◄─────────┐
        └───────┬───────┘          │
                │                   │
         ┌──────┼──────┐            │
         ▼      ▼      ▼            │
      ┌─────┐ ┌────┐ ┌──────────┐  │
      │done │ │ ❌ │ │ revision │──┘
      └──┬──┘ └────┘ └──────────┘
         │   rejected
         ▼
   ┌────────────────┐
   │  Sertifikat EC  │
   └────────────────┘
```

---

## Struktur Modul Utama

```
app/
├── Http/
│   ├── Controllers/         # Controller utama
│   └── Middleware/           # Auth & role middleware
├── Livewire/
│   ├── Admin/               # Komponen admin (dashboard, research, payment, dll.)
│   ├── Auth/                # Login, register, reset password
│   └── Print/               # Cetak EC, invoice, kuitansi, amandemen
├── Mail/                    # Email notification templates
├── Models/
│   ├── Auth/                # User (Spatie Roles)
│   ├── Research/            # Research, Certificate, Reviewer, SelfAssessment, dll.
│   ├── Payment/             # Payment
│   ├── Amandment/           # Amandemen penelitian
│   └── ...
└── Providers/               # Service providers
```

---

## Fitur Tambahan

| Fitur                    | Deskripsi                                                 |
| ------------------------ | --------------------------------------------------------- |
| **Dashboard**            | Ringkasan statistik penelitian dan status terkini         |
| **Notifikasi**           | Notifikasi in-app dan email untuk setiap perubahan status |
| **Rekapitulasi**         | Laporan dan rekap data penelitian (cetak/export)          |
| **Manajemen Akun**       | Kelola akun admin, sekretaris, reviewer                   |
| **Kategori & Harga**     | Pengaturan kategori penelitian dan tarif review           |
| **Tutorial Peneliti**    | Panduan penggunaan sistem untuk peneliti                  |
| **Laporan Bug**          | Fitur pelaporan bug dari pengguna                         |
| **Pengaturan TTD Ketua** | Konfigurasi periode tanda tangan ketua komisi etik        |
| **Kontak Admin**         | Halaman kontak untuk komunikasi dengan admin              |

---

## Environment Setup

Salin file `.env.example` ke `.env` dan sesuaikan konfigurasi berikut:

```env
APP_NAME=SIMETIK
APP_URL=https://fkunair.simetik.id

DB_CONNECTION=mysql
DB_DATABASE=simetik

MAIL_MAILER=smtp
# ... konfigurasi SMTP

MIDTRANS_SERVER_KEY=
MIDTRANS_CLIENT_KEY=
```

---

> **SIMETIK** — Mempermudah proses _ethical clearance_ penelitian di berbagai Fakultas. 🏥
