<p align="center">
    <a href="https://laravel.com" target="_blank">
        <img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="300" alt="Laravel Logo">
    </a>
</p>

<h1 align="center">Tani Desa</h1>

<p align="center">
    <a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
    <a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
    <a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
</p>

<p align="center">
    <strong>Platform digital terintegrasi untuk menghubungkan Petani lokal dengan Konsumen secara langsung (Direct-to-Consumer).</strong>
</p>

<hr>

## 📑 Table of Contents

- [About the Project](#-about-the-project)
- [System Architecture](#-system-architecture)
- [Key Features](#-key-features)
- [Prerequisites](#-prerequisites)
- [Installation Guide](#-installation-guide)
- [Access Management (Seeders)](#-access-management-seeders)
- [Development Roadmap](#-development-roadmap)
- [License](#-license)

---

## 📖 About the Project

**Tani Desa** adalah solusi perangkat lunak berbasis web yang dirancang untuk mendigitalisasi proses jual-beli komoditas pertanian desa. Sistem ini bertujuan memotong rantai distribusi yang panjang dengan memfasilitasi transaksi langsung antara produsen (Petani) dan konsumen akhir.

Sistem ini dibangun menggunakan arsitektur **Monolithic** dengan framework **Laravel**, serta antarmuka modern yang responsif menggunakan **Bootstrap 5 CSS**.

---

## 🛠 System Architecture

Aplikasi ini dikembangkan menggunakan *Tech Stack* modern dengan spesifikasi berikut:

| Komponen | Teknologi | Versi / Detail |
| :--- | :--- | :--- |
| **Backend Framework** | Laravel | v12.x |
| **Language** | PHP | v8.2+ |
| **Database** | MySQL / MariaDB | Relational Database |
| **Frontend Styling** | Bootstrap 5 CSS | v4.x (Latest) |

---

## Key Features

Sistem dibagi menjadi tiga modul utama berdasarkan *User Roles*:

### 1. Admin Desa (Administrator)
*Bertugas memverifikasi petani dan memantau sistem.*
- [x]  **Login Admin:** Halaman login khusus admin.
- [ ]  **Dashboard Admin:** Statistik ringkas jumlah petani dan status verifikasi.
- [x]  **Verifikasi Petani:** Melihat daftar pendaftar, menyetujui (Approve), atau menolak (Reject) akun petani.
- [ ]  **Monitoring Transaksi:** Memantau seluruh aktivitas transaksi di platform (View Only).

### 2. Petani (Penjual)
*Hanya bisa berjualan setelah akun diverifikasi oleh Admin Desa.*
- [ ]  **Registrasi Petani:** Pendaftaran akun dengan status awal "Menunggu Persetujuan".
- [x]  **Dashboard Petani:** Ringkasan aktivitas toko.
- [x]  **Manajemen Produk (CRUD):** Tambah, Edit, Hapus, dan Lihat daftar produk pertanian.
- [x]  **Manajemen Pesanan:** Menerima pesanan masuk dan mengubah status menjadi "Dikirim".
- [ ]  **Kotak Masuk (Pesan):** Fitur tanya jawab dengan pembeli.

### 3. Pembeli (Publik)
*Pengguna umum yang membeli produk pertanian.*
- [ ]  **Registrasi & Login:** Membuat akun pembeli.
- [x]  **Katalog Produk:** Melihat dan mencari produk yang dijual petani.
- [x]  **Detail Produk:** Melihat rincian produk.
- [x]  **Keranjang Belanja:** Menambah produk ke cart sebelum checkout.
- [x]  **Checkout (Transaksi):** Melakukan pemesanan barang (Metode COD).
- [x]  **Riwayat Transaksi:** Melacak status pesanan (Diproses/Dikirim/Selesai).
- [ ]  **Kirim Pesan:** Menghubungi petani terkait produk.

---

## Prerequisites

Sebelum melakukan instalasi, pastikan lingkungan server lokal Anda memenuhi persyaratan berikut:

- **PHP** >= 8.1
- **Composer** (PHP Dependency Manager)
- **MySQL** Database Server
- **Git** Version Control

---

## Installation Guide

Ikuti langkah-langkah berikut untuk menjalankan proyek di lingkungan pengembangan lokal (*Local Environment*):

### Step 1: Clone Repository
Unduh kode sumber dari repositori.
```bash
git clone [https://github.com/sayasilvi/web-pertanian.git]
cd web-pertanian
```

### Step 2: Install Backend Dependencies
Install library PHP melalui Composer.

```bash
composer install
```

### Step 3: Install Frontend Dependencies
Install library JavaScript.

```bash
npm install
```

### Step 4: Environment Configuration
Salin file konfigurasi dan sesuaikan kredensial database.

```bash
cp .env.example .env
```
*Edit file `.env` lalu atur parameter `DB_DATABASE`, `DB_USERNAME`, dan `DB_PASSWORD` sesuai konfigurasi lokal Anda.*

### Step 5: Application Key 
Generate key aplikasi dan jalankan migrasi database serta seeder data dummy.

```bash
php artisan key:generate
```

### Step 6: Database Migration 
Jalankan migrasi database serta seeder data dummy.

```bash
php artisan migrate --seed
```

### Step 7: Konfigurasi Storage Link
Jalankan perintah untuk konfigurasi storage link untuk menyimpan gambar

```bash
php artisan storage:link
```

### Step 8: Start Application
**Terminal (Laravel Server):**
```bash
php artisan serve
```

Aplikasi dapat diakses melalui browser di: `http://localhost:8000` atau `http://127.0.0.1:8000`

---

## Access Management (Seeders)

Berikut adalah kredensial default yang dibuat oleh sistem *Seeder* untuk keperluan *User Acceptance Testing (UAT)*:

### Administrator
| Role | Username | Password | Access Level |
| :--- | :--- | :--- | :--- |
| **Super Admin** | `admin` | `password123` | Full Access |

### Vendors (Petani)
| Account Name | Username | Password | Status | Notes |
| :--- | :--- | :--- | :--- | :--- |
| **Siti Sayur** | `siti_sayur` | `password123` | <span style="color:green">**Active**</span> | Dapat Login & Jualan |
| **Budi Tani** | `budi_tani` | `password123` | <span style="color:orange">**Pending**</span> | Menunggu Approval Admin |
| **Joko Tani** | `joko_tani` | `password123` | <span style="color:red">**Rejected**</span> | Akses Ditolak |

### Customers (Pembeli)
| Account Name | Username | Password |
| :--- | :--- | :--- |
| **Andi Pembeli** | `andi_beli` | `password123` |
| **Rina Sayur** | `rina_sayur` | `password123` |

---

## Development Roadmap

Status pengembangan fitur saat ini:

- [x]  **Core:** Authentication & Role Management
- [x]  **Core:** Database Schema & Migration
- [x]  **Module:** Admin Verification Workflow
- [x]  **Module:** Shopping Cart & Checkout
- [x]  **Module:** Product Management (Vendor)
- [x]  **Feature:** Transaction History Tracking
- [ ]  **Feature:** In-app Messaging System

---
