# Modul 12: Research Community

## 1. User Flow
1. **Discover & Join**: User mengakses halaman "Communities" untuk melihat daftar komunitas yang ada berdasarkan bidang riset. User bisa join ke komunitas tersebut.
2. **Create Community**: User (misalnya Admin atau pengguna dengan hak tertentu) dapat membuat komunitas baru.
3. **Discussion Board**: Di dalam halaman spesifik komunitas, user dapat melihat feed (forum style) yang berisi postingan.
4. **Create Post**: Member komunitas dapat membuat postingan baru dengan tipe:
   - General Discussion
   - Article Share (membagikan publikasi)
   - Call for Paper (pengumuman call for paper)
   - Call for Collaboration (mencari partner)
   - Reading Group (diskusi tentang paper tertentu)
5. **Commenting**: Member dapat memberikan komentar pada post.
6. **Moderation**: Admin dan Community Creator (moderator) dapat menghapus post atau komentar yang tidak pantas (Moderation System).
7. **Trends**: Sistem menampilkan trending komunitas atau tipe post (aktivitas terbanyak) di bagian sidebar.

## 9. Moderation System
Moderasi dilakukan menggunakan role `moderator` di dalam `community_members` (Pembuat komunitas otomatis menjadi moderator). Moderator memiliki kemampuan untuk:
- Mengubah status postingan menjadi `hidden` (sehingga tidak bisa dilihat member biasa).
- Menghapus komentar.

## 10. Testing Scenario
- **Test 1 - Create & Join**: Login sebagai User A, buat komunitas baru "AI in Medicine". Pastikan User A otomatis menjadi moderator. Login sebagai User B, buka komunitas tersebut, lalu klik "Join".
- **Test 2 - Posting**: User B membuat post bertipe "Call for Collaboration" mencari orang AI. Post muncul di feed.
- **Test 3 - Comment**: User C join, lalu membuka post User B, dan memberikan komentar "Saya berminat!". Komentar muncul di bawah post.
- **Test 4 - Moderation**: User A (sebagai moderator) melihat komentar yang dianggap spam, lalu klik "Delete Comment" atau "Hide Post". Post/Komentar tersebut hilang dari pandangan User B dan C.
- **Test 5 - Leave**: User B meninggalkan komunitas dengan tombol "Leave Community". User B tidak bisa lagi membuat post di komunitas tersebut sampai join kembali.
