2.3 KiB
2.3 KiB
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
# 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 controllersapp/Models
- Model data aplikasidatabase/migrations
- Migrasi databaseroutes/api.php
- Definisi route APIstorage/app/public
- Storage untuk file yang diuploadresources/views/api-docs.blade.php
- Halaman dokumentasi API
Role Pengguna
Aplikasi memiliki 3 role dengan hak akses berbeda:
- Admin - Mengelola seluruh data
- Penjahit - Mengelola profil toko, layanan, dan booking
- Pelanggan - Mencari penjahit, membuat booking, dan memberikan rating
Pengujian
# 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