# Panduan Aplikasi Desa+

## Daftar Isi

1. [Gambaran Umum Aplikasi](#gambaran-umum-aplikasi)
2. [User Roles dan Hak Akses](#user-roles-dan-hak-akses)
3. [Fitur-fitur Aplikasi](#fitur-fitur-aplikasi)
4. [Troubleshooting](#troubleshooting)

## Gambaran Umum Aplikasi

Aplikasi Desa+ adalah platform digital berbasis mobile yang dirancang untuk khusus untuk pegawai desa dalam mengelola data dan memantau progres kegiatan internal. Aplikasi ini menyediakan berbagai fitur seperti pengelolaan data per divisi, pemantauan kegiatan umum, forum diskusi, pengumuman, hingga manajemen folder dokumen, aplikasi ini membantu meningkatkan efisiensi kerja, koordinasi, serta transparansi di lingkungan desa.

### Teknologi yang Digunakan

- React Native dengan Expo
- Firebase (Authentication, Realtime Database, Cloud Messaging)
- Redux Toolkit untuk manajemen state
- TypeScript untuk type safety

## User Roles dan Hak Akses

Aplikasi Desa+ memiliki sistem hierarki peran pengguna sebagai berikut:

### 1. Super Admin

- **Hak akses:**
  - Semua fitur dan fungsi dalam aplikasi
  - Manajemen pengguna dengan role Wakil Super Admin, Admin, Wakil Admin, dan User
  - Akses ke semua data dan fungsi administratif

### 2. Wakil Super Admin

- **Hak akses:**
  - Manajemen pengguna dengan role Admin, Wakil Admin, dan User
  - Akses ke sebagian besar fitur administratif
  - Dapat mengelola banner

### 3. Admin

- **Hak akses:**
  - Manajemen pengguna dengan role Wakil Admin dan User
  - Akses ke fitur-fitur administratif dasar
  - Tidak dapat mengelola Wakil Super Admin dan Super Admin

### 4. Wakil Admin

- **Hak akses:**
  - Manajemen pengguna dengan role User
  - Akses terbatas ke fitur-fitur administratif
  - Tidak dapat mengelola Admin ke atas

### 5. User

- **Hak akses:**
  - Akses ke fitur-fitur umum
  - Tidak dapat mengelola pengguna lain
  - Tidak dapat mengakses fungsi administratif (kecuali dalam divisi dimana pengguna tersebut adalah anggota)

## Fitur-fitur Aplikasi

### 1. Otentikasi (Login & Verifikasi)

**Deskripsi:** Sistem login menggunakan nomor telepon dan verifikasi OTP (One Time Password)

- **Fungsi:** Memverifikasi identitas pengguna sebelum mengakses aplikasi
- **Siapa yang bisa mengakses:** Semua pengguna yang terdaftar

### 2. Dashboard/Home Screen

**Deskripsi:** Tampilan utama aplikasi yang menampilkan informasi dan akses cepat ke berbagai fitur

- **Fungsi:** Menyediakan ringkasan informasi desa dan akses cepat ke fitur-fitur utama
- **Siapa yang bisa mengakses:** Semua pengguna yang telah login
- **Komponen:**
  - Carousel banner untuk promosi atau informasi penting
  - Fitur untuk mengakses semua fitur aplikasi
  - Grafik progres kegiatan
  - Grafik jumlah dokumen
  - Daftar kegiatan terupdate
  - Daftar divisi aktif
  - Daftar acara mendatang
  - Diskusi terbaru

### 3. Pencarian

**Deskripsi:** Fitur untuk mencari anggota, kegiatan dan divisi

- **Fungsi:** Mencari anggota, kegiatan dan divisi
- **Siapa yang bisa mengakses:** Semua pengguna

### 4. Notifikasi

**Deskripsi:** Sistem notifikasi untuk memberitahu pengguna tentang aktivitas penting

- **Fungsi:** Memberitahu pengguna tentang pengumuman, komentar, atau aktivitas lainnya
- **Siapa yang bisa mengakses:** Semua pengguna

### 5. Profil

**Deskripsi:** Fitur untuk melihat dan mengedit informasi pribadi pengguna

- **Fungsi:** Menampilkan dan mengelola informasi akun pengguna
- **Siapa yang bisa mengakses:** Pengguna yang bersangkutan

### 6. Banner

**Deskripsi:** Fitur untuk mengelola banner promosi atau informasi penting di halaman utama

- **Fungsi:** Menampilkan informasi atau promosi penting di tampilan awal
- **Siapa yang bisa mengakses:** Super Admin, Wakil Super Admin

### 7. Lembaga Desa

**Deskripsi:** Fitur untuk mengelola berbagai lembaga dalam desa

- **Fungsi:** Mengorganisir struktur organisasi desa berdasarkan lembaga
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin
  - Melihat: Super Admin

### 8. Jabatan

**Deskripsi:** Fitur untuk mengelola posisi atau jabatan

- **Fungsi:** Mengelola data jabatan
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Wakil Admin
  - Melihat: Semua pengguna

### 9. Anggota

**Deskripsi:** Fitur untuk mengelola data pengguna

- **Fungsi:** Menyimpan dan mengelola informasi tentang pengguna
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Wakil Admin
  - Melihat: Semua pengguna

### 10. Diskusi Umum

**Deskripsi:** Forum diskusi untuk komunikasi anggota terpilih

- **Fungsi:** Tempat berdiskusi mengenai berbagai topik yang berkaitan dengan desa
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin
  - Melihat: Semua pengguna
  - Berkomentar: Pengguna terpilih

### 11. Kegiatan/Proyek

**Deskripsi:** Fitur untuk mengelola dan melacak proyek atau kegiatan desa

- **Fungsi:** Mengelola dan memonitor kemajuan proyek-proyek desa
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus/Membatalkan/Mengelola anggota: Super Admin, Wakil Super Admin, Admin
  - Mengelola detail (file, task, link, laporan) : Super Admin, Wakil Super Admin, Admin, Anggota dari kegiatan
  - Melihat: Semua pengguna
- **Status Kegiatan:**
  - Segera: Proyek yang akan segera dimulai
  - Dikerjakan: Proyek yang sedang dalam proses pengerjaan
  - Selesai: Proyek yang telah selesai
  - Batal: Proyek yang dibatalkan

### 12. Pengumuman

**Deskripsi:** Fitur untuk membuat, melihat, dan mengelola pengumuman desa

- **Fungsi:** Menyebarkan informasi penting kepada anggota divisi terpilih
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin
  - Melihat:
    - Super admin: Semua pengumuman
    - Wakil super admin & admin : Pengumuman sesuai lembaga desa
    - Lainnya: Pengumuman yang ditujukan ke divisi mereka

### 13. Divisi

**Deskripsi:** Fitur untuk mengelola data desa berdasarkan divisi

- **Fungsi:** Mengorganisir tugas-tugas berdasarkan divisi-divisi tertentu
- **Catatan:** Anggota divisi (role : Wakil Admin dan User) yg diangkat menjadi "Admin Divisi", mendapat akses khusus untuk mengelola divisi tersebut
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin
  - Edit Divisi / Non aktifkan Divisi tertentu / Mengelola Anggota divisi tertentu : Super Admin, Wakil Super Admin, Admin, Admin Divisi
  - Laporan semua divisi : Super Admin, Wakil Super Admin
  - Laporan divisi tertentu : semua pengguna
  - Melihat: Semua pengguna

### 14. Diskusi Divisi

**Deskripsi:** Forum diskusi khusus untuk masing-masing divisi

- **Fungsi:** Tempat berdiskusi secara internal dalam divisi
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Admin Divisi
  - Memberi komentar : Super Admin, Wakil Super Admin, Admin, Anggota divisi
  - Melihat: Semua pengguna

### 15. Tugas Divisi

**Deskripsi:** Fitur untuk mengelola tugas-tugas dalam masing-masing divisi

- **Fungsi:** Menetapkan dan melacak tugas-tugas yang harus diselesaikan oleh anggota divisi
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Admin Divisi
  - Mengelola detail (file, task, link, laporan) : Super Admin, Wakil Super Admin, Admin, Anggota divisi
  - Melihat: Semua pengguna

### 16. Dokumen Divisi

**Deskripsi:** Sistem manajemen dokumen untuk menyimpan dan mengelola file-file disetiap divisi

- **Fungsi:** Menyimpan dokumen penting dalam struktur folder disetiap divisi
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Anggota divisi
  - Melihat: Semua pengguna

### 17. Kalender/Acara Divisi

**Deskripsi:** Fitur untuk menjadwalkan dan mengelola acara-acara desa disetiap divisi

- **Fungsi:** Menjadwalkan kegiatan dan acara penting desa disetiap divisi
- **Siapa yang bisa mengakses:**
  - Pembuatan/Edit/Hapus: Super Admin, Wakil Super Admin, Admin, Anggota divisi
  - Melihat: Semua pengguna
  - Riwayat: Semua pengguna

## Troubleshooting

### Masalah Login

- Pastikan nomor telepon yang dimasukkan sudah benar dan terdaftar
- Pastikan koneksi internet stabil saat menerima OTP
- Jika tidak menerima OTP, coba kirim ulang setelah beberapa menit

### Tidak Bisa Mengakses Fitur Tertentu

- Pastikan peran Anda memiliki hak akses ke fitur tersebut
- Beberapa fitur hanya tersedia untuk peran tertentu (misalnya Admin ke atas)

### Lupa Password

- Aplikasi ini menggunakan sistem login OTP, jadi tidak ada password yang disimpan
- Cukup gunakan nomor telepon dan minta OTP kembali

## Dukungan dan Bantuan

Jika Anda mengalami masalah atau memiliki pertanyaan tentang penggunaan aplikasi, silakan hubungi tim pengembang aplikasi.
