# Project Jahit API

REST API untuk platform Project Jahit yang menghubungkan pelanggan dengan penjahit profesional.

## Tentang Proyek

Project Jahit adalah aplikasi yang memungkinkan pelanggan mencari penjahit terdekat, melakukan pemesanan jasa, dan melacak status pesanan. Penjahit dapat mengelola toko, layanan, galeri, dan booking.

## Teknologi

-   Laravel 10
-   MySQL
-   Laravel Sanctum (Autentikasi)

## Fitur Utama

-   Registrasi dan login untuk pelanggan, penjahit, dan admin
-   Pencarian penjahit berdasarkan spesialisasi
-   Pemesanan jasa jahit
-   Manajemen booking
-   Pembayaran (mock)
-   Rating dan ulasan
-   Galeri hasil jahitan
-   Manajemen layanan
-   Dashboard untuk semua role

## Instalasi

```bash
# Clone repository
git clone https://github.com/username/project-jahit-api.git
cd project-jahit-api

# Install dependencies
composer install

# Salin file .env.example ke .env
cp .env.example .env

# Generate application key
php artisan key:generate

# Setup database di file .env
# DB_DATABASE=project_jahit
# DB_USERNAME=root
# DB_PASSWORD=

# Migrasi dan seed database
php artisan migrate --seed

# Buat symlink untuk storage
php artisan storage:link

# Jalankan server development
php artisan serve
```

## Endpoints API

API menyediakan berbagai endpoint untuk semua fitur. Dokumentasi lengkap dapat diakses melalui:

```
http://localhost:8000/docs
```

atau dengan membuka file `documentation.md` untuk format Markdown.

## Struktur Folder

-   `app/Http/Controllers/Api` - API controllers
-   `app/Models` - Model data aplikasi
-   `database/migrations` - Migrasi database
-   `routes/api.php` - Definisi route API
-   `storage/app/public` - Storage untuk file yang diupload
-   `resources/views/api-docs.blade.php` - Halaman dokumentasi API

## Role Pengguna

Aplikasi memiliki 3 role dengan hak akses berbeda:

1. **Admin** - Mengelola seluruh data
2. **Penjahit** - Mengelola profil toko, layanan, dan booking
3. **Pelanggan** - Mencari penjahit, membuat booking, dan memberikan rating

## Pengujian

```bash
# Menjalankan unit test
php artisan test
```

## Akses File Media

File yang diupload dapat diakses melalui URL:

```
http://localhost:8000/storage/{path}
```

Contoh:

```
http://localhost:8000/storage/design_photos/file.jpg
http://localhost:8000/storage/gallery_photos/photo.jpg
http://localhost:8000/storage/profile_photos/avatar.jpg
```
