edi-mj/lost-and-found
Aplikasi pencarian dan penemuan barang hilang menggunakan Laravel dengan integrasi microservices
Lost & Found Application
Deskripsi Proyek
Aplikasi web untuk membantu pengguna melaporkan dan mencari barang hilang atau ditemukan. Sistem ini dibangun menggunakan Laravel sebagai frontend dan terintegrasi dengan backend microservices melalui REST API. Fitur utama meliputi pelaporan barang hilang/ditemukan, pencarian barang, verifikasi kepemilikan, dan notifikasi real-time.
Note
Proyek ini dibangun untuk keperluan tugas akhir mata kuliah Sistem Teristribusi. Hingga saat ini project ini hanya memenuhi fungsionalitas dasar dan belum selesai sepenuhnya.
Fitur Utama
Untuk Pengguna
- Autentikasi & Otorisasi - Registrasi dan login dengan JWT token
- Laporan Kehilangan - Laporkan barang yang hilang dengan deskripsi dan foto
- Laporan Penemuan - Laporkan barang yang ditemukan untuk membantu orang lain
- Pencarian Cerdas - Cari barang berdasarkan kata kunci, lokasi, atau kategori
- Verifikasi Kepemilikan - Sistem verifikasi untuk klaim barang
- Notifikasi Real-time - Dapatkan notifikasi saat ada match atau update status
- Dashboard Pribadi - Kelola semua laporan Anda dalam satu tempat
Untuk Admin
- Dashboard Admin - Panel kontrol untuk monitoring sistem
- Manajemen Verifikasi - Review dan approve klaim kepemilikan
- Moderasi Konten - Kelola laporan yang masuk
Tech Stack
Backend & Framework
- Laravel 12 - PHP framework untuk routing, middleware, dan view rendering
- PHP 8.2+ - Server-side scripting language
- Laravel Sanctum - API token authentication
- Firebase JWT - JSON Web Token untuk autentikasi microservices
Frontend & UI
- Blade Templates - Laravel templating engine
- TailwindCSS 3 - Utility-first CSS framework
- Tailwind Forms - Form styling plugin
- Vite 7 - Modern frontend build tool
- Axios - HTTP client untuk API calls
Database & Cache
- MySQL/PostgreSQL - Relational database (sesuai konfigurasi)
- Redis (Predis) - In-memory data store untuk caching dan queues
Arsitektur Microservices
Aplikasi ini menggunakan arsitektur microservices dengan Laravel sebagai API Gateway dan Frontend. Backend services terpisah menangani:
- User Management Service - Autentikasi dan manajemen pengguna
- Reports Service - Pengelolaan laporan kehilangan dan penemuan
- Search Service - Pencarian dan filtering barang
- Verification Service - Verifikasi kepemilikan barang
- Notification Service - Pengiriman notifikasi
Komunikasi antar service menggunakan REST API dengan JWT authentication.
Instalasi & Setup
Prasyarat
- PHP 8.2 atau lebih tinggi
- Composer
- Node.js & NPM
- MySQL atau PostgreSQL
- Redis (optional, untuk caching)
Quick Start
- Clone repository
git clone https://github.com/edi-mj/lost-and-found.git
cd lost-and-found- Install dependencies
composer install
npm install- Setup environment
cp .env.example .env
php artisan key:generate- Konfigurasi database & services di
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lost_and_found
DB_USERNAME=root
DB_PASSWORD=
# Microservices API Endpoints
API_USERS_MANAGEMENT=http://localhost:3001/api
API_REPORTS=http://localhost:3002/api
API_SEARCH_MANAGEMENT=http://localhost:3003/api
API_VERIFICATION=http://localhost:3004/api
API_NOTIFICATION=http://localhost:3005/api
# JWT Secret (harus sama dengan Express backend)
EXPRESS_JWT_SECRET=your-secret-key- Jalankan migrasi database
php artisan migrate- Build assets
npm run build- Jalankan development server
# Otomatis menjalankan Laravel server, queue worker, logs, dan Vite
composer devAtau jalankan secara manual:
# Terminal 1
php artisan serve
# Terminal 2
npm run dev
# Terminal 3 (optional - untuk queue)
php artisan queue:listenStruktur Direktori
app/
├── Http/
│ ├── Controllers/ # Request handlers
│ └── Middleware/ # JWT verification, admin check
├── Models/ # Eloquent models
└── Services/ # Business logic (NotificationService)
database/
├── migrations/ # Database schema
└── seeders/ # Data seeding
resources/
├── views/ # Blade templates
│ ├── auth/ # Login & register
│ ├── reports/ # Report pages
│ ├── search/ # Search interface
│ └── admin/ # Admin dashboard
└── css/ & js/ # Frontend assets
routes/
├── web.php # Web routes
└── api.php # API routes
config/
└── services.php # Microservices endpoints configuration
Testing
# Jalankan semua test
composer test
# Atau
php artisan test
# Test dengan coverage
php artisan test --coverageCode Style
Proyek ini menggunakan Laravel Pint untuk menjaga konsistensi code style:
./vendor/bin/pintAPI Integration
Aplikasi ini berkomunikasi dengan microservices backend menggunakan HTTP client. Contoh endpoint yang digunakan:
POST /api/auth/login- User authenticationGET /api/reports- Fetch reportsPOST /api/reports- Create new reportGET /api/search- Search itemsPOST /api/verifications- Submit verification requestGET /api/notifications- Get user notifications
JWT token dari Express backend diverifikasi menggunakan middleware VerifyJwtFromExpress.
Kontribusi
Proyek ini dibangun untuk keperluan tugas akhir mata kuliah Sistem Terdistribusi. Kontribusi selalu terbuka! Silakan fork repository ini dan submit pull request untuk perbaikan atau fitur baru.