# Desa+

Desa+ (Desa Plus) adalah aplikasi mobile berbasis React Native yang dikembangkan dengan Expo untuk membantu pengelolaan dan komunikasi di lingkungan desa/kelurahan. Aplikasi ini menyediakan berbagai fitur untuk memudahkan administrasi desa, komunikasi antar warga, dan pengelolaan informasi penting.

## Fitur Utama

- 📢 Pengumuman dan informasi desa
- 💬 Forum diskusi komunitas
- 📅 Kalender kegiatan desa
- 📄 Dokumentasi dan arsip desa
- 📊 Pengelolaan proyek dan tugas desa
- 👥 Manajemen anggota dan struktur organisasi
- 📱 Notifikasi push untuk informasi penting
- 🎯 Fitur verifikasi dan otentikasi

## Teknologi yang Digunakan

- [React Native](https://reactnative.dev/) - Framework mobile cross-platform
- [Expo](https://expo.dev/) - Platform pengembangan aplikasi React Native
- [Firebase](https://firebase.google.com/) - Backend services (Authentication, Realtime Database, Cloud Messaging)
- [Redux Toolkit](https://redux-toolkit.js.org/) - State management
- [React Navigation](https://reactnavigation.org/) - Navigasi aplikasi
- [TypeScript](https://www.typescriptlang.org/) - Type safety

## Instalasi

1. Clone repository ini
   ```bash
   git clone <repository-url>
   cd mobile-darmasaba
   ```

2. Install dependencies
   ```bash
   npm install
   ```

3. Konfigurasi environment variables
   Buat file `.env` di root direktori dan tambahkan variabel berikut:
   ```
   URL_API=<api-endpoint>
   URL_OTP=<otp-service-endpoint>
   URL_STORAGE=<storage-endpoint>
   URL_FIREBASE_DB=<firebase-database-url>
   PASS_ENC=<encryption-password>
   WA_SERVER_TOKEN=<whatsapp-server-token>
   IOS_GOOGLE_SERVICES_FILE=<path-to-ios-google-services>
   ```

4. Jalankan aplikasi
   ```bash
   npx expo start
   ```

## Struktur Proyek

```
├── app/                    # File-file halaman utama
├── components/            # Komponen reusable
│   ├── announcement/      # Komponen pengumuman
│   ├── auth/             # Komponen otentikasi
│   ├── discussion/       # Komponen forum diskusi
│   ├── document/         # Komponen dokumentasi
│   ├── project/          # Komponen pengelolaan proyek
│   └── ...
├── assets/               # Gambar dan aset statis
├── constants/            # Konstanta global
├── lib/                  # Library dan utilitas
└── ...
```

## Platform Support

Aplikasi ini didukung untuk:
- ✅ Android
- ✅ iOS
- ❌ Web (belum dioptimalkan)

## Development

Untuk menjalankan aplikasi di masing-masing platform:

### Android
```bash
npm run android
```

### iOS
```bash
npm run ios
```

### Build Production

Untuk membuat build production Android:
```bash
npm run build:android
```

## Kontribusi

1. Fork repository ini
2. Buat branch fitur baru (`git checkout -b fitur/NamaFitur`)
3. Commit perubahan Anda (`git commit -m 'Tambahkan fitur NamaFitur'`)
4. Push ke branch (`git push origin fitur/NamaFitur`)
5. Buat pull request

## Lisensi

Proyek ini dilisensikan di bawah lisensi MIT - lihat file [LICENSE](LICENSE) untuk detail selengkapnya.

## Dukungan

Jika Anda menemukan masalah atau memiliki pertanyaan, silakan buka issue di repository ini.
