TIF_NGANJUK_E41220737/README.md

205 lines
6.7 KiB
Markdown

<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>
Test CI/CD 123
<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: Import Data Wilayah Indonesia (Wajib)
Jalankan perintah ini untuk mengisi data wilayah resmi Indonesia ke dalam database.
```bash
php artisan laravolt:indonesia:seed
```
### Step 8: Konfigurasi Storage Link
Jalankan perintah untuk konfigurasi storage link untuk menyimpan gambar
```bash
php artisan storage:link
```
### Step 9: 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
---