Campus Facility API & Dashboard Plan (Refined)
Dokumentasi rencana pembangunan sistem pelaporan kerusakan fasilitas kampus berbasis koordinat GPS.
Phase 1: Inisialisasi & Authentication (The Foundation)
Fokus pada keamanan dan identitas pengguna.
- [x] Environment Check: Pastikan menggunakan Laravel 13 & PHP 8.5.
- [x] Sanctum Integration: Jalankan
php artisan install:apiuntuk autentikasi token. - [x] User Role System:
- Migrasi tabel
usersdengan kolomrole(Enum:student,staff,admin). - Default role adalah
student.
- Migrasi tabel
- [x] Auth Controller:
POST /api/register: Validasi email kampus & role.POST /api/login: Return Bearer Token & User Profile.POST /api/logout: Revoke token saat ini.
- [x] CORS & Security: Konfigurasi
config/cors.phpuntuk mengizinkan frontend React. - [x] Super Admin Bootstrap:
- Gunakan
php artisan app:create-super-adminuntuk membuat akun admin pertama dari.env.
- Gunakan
Phase 2: Geo-Spatial Database Schema
- [x] Migration
categories - [x] Migration
facilities - [x] Migration
reports(Updated:facility_idnullable for pinpoint accuracy) - [x] Eloquent Relationships
Phase 3: Core Logic & Security (The Engine)
- [x] API Resources (Report, Facility, Category, Building)
- [x] Authorization (Policies for all entities)
- [x] Image Processing
- [x] Phase 3.5: Category Management (Admin CRUD)
- [x] Phase 3.6: Secure Registration (Strict student default)
- [x] Phase 3.7: Facility Management & Pinpoint Accuracy
- [x] Phase 3.8: Database Normalization & API Optimization
- Introduced
buildingstable for location grouping. - Implemented nested JSON structure (Building -> Amenities).
- Enforced consistent pagination across all GET endpoints.
- Introduced
Phase 4: Frontend React & Maps Integration
- Visualisasi data dan pengalaman pengguna.
- [ ] State Management: Zustand untuk global store (Auth & Filters).
- [ ] Google Maps SDK: Custom Markers & Pinpoint Picker.
- [ ] Form Handling: React Hook Form + Zod.
Phase 5: Monitoring, Notifications & Analytics
- [ ] Real-time Notifications
- [ ] Advanced Filtering
- [ ] Admin Dashboard Statistics
Daftar Endpoint Utama (API v1)
| Method | Endpoint | Fungsi | Akses |
|---|---|---|---|
| AUTH | |||
POST |
/api/login |
Login | Public |
| BUILDINGS | |||
GET |
/api/buildings |
List Gedung & Fasilitas | Auth |
POST |
/api/buildings |
Create Gedung | Admin |
| CATEGORIES | |||
GET |
/api/categories |
List Kategori | Auth |
| FACILITIES | |||
GET |
/api/facilities |
List Semua Aset | Auth |
POST |
/api/facilities |
Create Fasilitas | Admin |
| REPORTS | |||
POST |
/api/reports |
Create (Pinpoint GPS) | User |
PATCH |
/api/reports/{id} |
Update Status | Staff/Admin |