# Sistem Desa Mandiri

Sistem Desa Mandiri adalah aplikasi web yang dirancang untuk membantu pengelolaan administrasi dan informasi di tingkat desa. Dibangun dengan Next.js, aplikasi ini menyediakan berbagai fitur untuk mendukung kegiatan desa, mulai dari pengumuman, diskusi, manajemen proyek, hingga administrasi kependudukan.

## Fitur Utama

*   **Manajemen Pengguna:** Mengelola data anggota dan hak akses.
*   **Pengumuman:** Menyebarkan informasi penting kepada seluruh warga desa.
*   **Diskusi:** Forum untuk berdiskusi antar warga atau perangkat desa.
*   **Manajemen Proyek & Tugas:** Melacak kemajuan proyek dan tugas yang sedang berjalan di desa.
*   **Dokumentasi:** Tempat terpusat untuk menyimpan dan mengelola dokumen-dokumen penting.
*   **Notifikasi Push:** Mengirimkan notifikasi real-time ke perangkat pengguna.

## Teknologi yang Digunakan

*   **Framework:** [Next.js](https://nextjs.org/)
*   **UI Framework:** [Mantine](https://mantine.dev/)
*   **Database ORM:** [Prisma](https://www.prisma.io/)
*   **Styling:** [Tailwind CSS](https://tailwindcss.com/)
*   **State Management:** [Hookstate](https://hookstate.js.org/)
*   **Push Notifications:** [Web Push](https://www.npmjs.com/package/web-push)

## Memulai

### Persyaratan

*   [Node.js](https://nodejs.org/) (versi 20.x atau lebih tinggi)
*   [Bun](https://bun.sh/) (direkomendasikan) atau package manager lain seperti npm/yarn/pnpm.
*   Database (misalnya PostgreSQL, MySQL, atau SQLite).

### Instalasi

1.  **Clone repositori ini:**
    ```bash
    git clone https://github.com/username/sistem-desa-mandiri.git
    cd sistem-desa-mandiri
    ```

2.  **Install dependensi:**
    ```bash
    bun install
    ```

3.  **Setup Variabel Lingkungan:**
    Salin file `.env.test` menjadi `.env` dan sesuaikan nilainya, terutama untuk koneksi database.
    ```bash
    cp .env.test .env
    ```
    Buka file `.env` dan isi variabel yang diperlukan, seperti `DATABASE_URL`.

4.  **Migrasi Database:**
    Jalankan migrasi Prisma untuk membuat skema database.
    ```bash
    npx prisma migrate dev
    ```

5.  **Seed Database (Opsional):**
    Jika Anda ingin mengisi database dengan data awal, jalankan perintah seed.
    ```bash
    npx prisma db seed
    ```

6.  **Jalankan Server Development:**
    ```bash
    bun run dev
    ```
    Aplikasi akan berjalan di [https://localhost:3000](https://localhost:3000).

## Skrip yang Tersedia

*   `dev`: Menjalankan server development dengan HTTPS.
*   `build`: Membuat build produksi dari aplikasi.
*   `start`: Menjalankan server produksi.
*   `lint`: Menjalankan linter untuk memeriksa kualitas kode.
*   `prisma:seed`: Menjalankan skrip seed database.

## Kontribusi

Kontribusi dalam bentuk apapun sangat kami hargai. Jika Anda menemukan bug atau memiliki ide untuk fitur baru, silakan buat *issue* baru. Jika Anda ingin berkontribusi dalam kode, silakan buat *pull request*.

## Lisensi

Proyek ini dilisensikan di bawah [Lisensi ISC](LICENSE).