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.
Proyek ini dibangun untuk keperluan tugas akhir mata kuliah Sistem Teristribusi. Hingga saat ini project ini hanya memenuhi fungsionalitas dasar dan belum selesai sepenuhnya.
- 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
- Dashboard Admin - Panel kontrol untuk monitoring sistem
- Manajemen Verifikasi - Review dan approve klaim kepemilikan
- Moderasi Konten - Kelola laporan yang masuk
- 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
- 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
- MySQL/PostgreSQL - Relational database (sesuai konfigurasi)
- Redis (Predis) - In-memory data store untuk caching dan queues
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.
- PHP 8.2 atau lebih tinggi
- Composer
- Node.js & NPM
- MySQL atau PostgreSQL
- Redis (optional, untuk caching)
- 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:listenapp/
├── 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
# Jalankan semua test
composer test
# Atau
php artisan test
# Test dengan coverage
php artisan test --coverageProyek ini menggunakan Laravel Pint untuk menjaga konsistensi code style:
./vendor/bin/pintAplikasi 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.
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.