Commit Graph

54 Commits

Author SHA1 Message Date
micko samawa be4a576669 fix: replace deprecated PageRouteBuilder with MaterialPageRoute in splash screen 2026-06-29 14:01:30 +07:00
micko samawa 4a5a2d0501 fix: clean up splash screen - remove debug subnet text, fix font, add version label, reorder loading UI 2026-06-29 13:58:49 +07:00
micko samawa b0046d7dff feat: enhance profile screen with camera avatar, notification settings, help/FAQ, privacy policy, and red logout button 2026-06-29 13:52:04 +07:00
micko samawa e8d5818b51 feat: show processing duration in Kiloan and Express pricing cards 2026-06-29 13:26:37 +07:00
micko samawa 9e802c38ad fix: change Laundry Express label from (Jam/Satuan) to (Jam) 2026-06-29 13:21:49 +07:00
micko samawa 782e002914 fix: pass selectedJenisLayanan to LaundryDetailScreen in LaundryCard 2026-06-29 13:12:10 +07:00
micko samawa 102abd6a8f fix(mobile): format waktu proses di halaman pencarian, beranda, dan favorit 2026-06-29 09:54:12 +07:00
micko samawa be58c556c0 fix(mobile): format waktu proses laundry - 72 jam menjadi 3 hari, 10 jam tetap 10 jam 2026-06-29 09:40:18 +07:00
micko samawa d9f70573f6 fix(api): only sync kontrakan status based on sewa bookings, not survei 2026-06-29 09:31:43 +07:00
micko samawa 6557d4aa5f style: format jam_survei to HH.ii format without seconds in admin views 2026-06-29 09:21:25 +07:00
micko samawa ca476cb8e6 feat: tampilkan jam_survei di admin list dan detail booking, tambah fillable jam_survei di model 2026-06-29 08:59:06 +07:00
micko samawa 0c29575843 feat(admin): allow owner admins to delete their own kontrakan data 2026-06-29 08:18:34 +07:00
micko samawa 22b9694588 feat(admin): add payment verification flow for bookings 2026-06-29 08:07:03 +07:00
micko samawa f85c7e1809 fix(api): add missing PAYMENT_VERIFICATION constant and label to Booking model 2026-06-29 07:59:02 +07:00
micko samawa 1aaa15a38e fix(api): add missing isSurvey() and isSewa() methods to Booking model 2026-06-29 07:56:36 +07:00
micko samawa 743a75baff fix(admin): add admin.bookings.ktp-photo route and controller action 2026-06-29 07:50:07 +07:00
micko samawa 1d681b483e feat(mobile): implement real email verification screen and flows 2026-06-28 14:54:49 +07:00
micko samawa ff3f43703e fix(mobile): ubah label Cost/Benefit menjadi Biaya/Keuntungan (bahasa Indonesia) 2026-06-28 14:43:27 +07:00
micko samawa d2b60c8062 fix(mobile): kecepatan_layanan tipe Cost bukan Benefit di UI, tambah case Fasilitas layanan 2026-06-28 14:41:24 +07:00
micko samawa 3c0227a557 fix(saw): kecepatan_layanan harus Cost bukan Benefit, fix custom bobot key mapping untuk Fasilitas layanan 2026-06-28 14:36:40 +07:00
micko samawa 6ccd792d78 fix(mobile): resolve laundry processing time (waktuProses) dynamically based on selectedJenisLayanan in recommendation cards and details 2026-06-28 14:26:01 +07:00
micko samawa c04f98eadf fix(mobile): resolve laundry service price dynamically based on selectedJenisLayanan in recommendation cards and details 2026-06-28 14:14:02 +07:00
micko samawa 00dc5b4a96 fix(mobile): resolve fake gallery item urls with their main photo path (uploads/kontrakan and uploads/Laundry) instead of forcing uploads/galeri path 2026-06-28 13:59:27 +07:00
micko samawa ebddf558d3 fix: prevent division by zero by safeguarding zero float conversion in SAW calculations 2026-06-28 13:44:16 +07:00
micko samawa 675c05537e fix: cast SAW operands to float to prevent TypeError on production PHP 2026-06-28 13:40:48 +07:00
micko samawa 5f54fe7db9 fix(mobile): use full absolute foto_url from API for Kontrakan and Laundry 2026-06-28 13:29:31 +07:00
micko samawa f197bfaccb fix: inject foto_url (full absolute URL) di API response Kontrakan & Laundry
- Tambah accessor getFotoUrlAttribute() di model Kontrakan & Laundry
  yang mengecek keberadaan file di disk (menangani casing folder berbeda)
- Inject foto_url di SAWController.sanitizeItemForMobile()
- Semua API response sekarang menyertakan foto_url siap pakai untuk mobile
2026-06-28 13:26:50 +07:00
micko samawa d26c52a5c9 Improve recommendation and laundry UI 2026-06-28 11:06:18 +07:00
micko samawa 2a03df835f Final TA - Booking flow improvements 2026-06-28 01:03:47 +07:00
micko samawa 3e6188bfaa refine dashboard and admin access 2026-06-14 21:15:56 +07:00
micko samawa 721c5dd9d4 improve admin dashboard 2026-06-13 12:59:33 +07:00
micko samawa cf4435580d final update web and mobile 2026-06-12 22:46:44 +07:00
micko samawa bcd994b19d fix(recommendation): show input view by default; improve location detection fallback 2026-05-28 15:43:42 +07:00
micko samawa 6bad1aa7b2 feat: Implement admin-scoped data visibility and comprehensive authorization
- Add admin_id FK to kontrakans table
- Add authorization checks to KontrakanController (edit, update, destroy, bulkDestroy)
- Add authorization checks to BookingController (store, bulkDestroy)
- Fix EnsureRole middleware to use auth:admin guard
- Fix booking index stats to filter by admin ownership
- Add model relationships: Admin.kontrakans(), Admin.isSuperAdmin(), Admin.isAdmin()
- Ensure admin biasa sees only their data, super_admin sees all data
- Secure bulk delete operations with per-item admin validation
2026-05-25 14:00:20 +07:00
micko samawa e29c87645b feat: laundry UI — chips, presets, antar/jemput; remove rating; placeholder fixes; keep criteria visible 2026-05-19 16:52:14 +07:00
micko samawa 605e92bbd9 Fix: Reset super admin, fix User model role attribute, remove rate limiting for development
- Added new super admin account (mikoadmin@gmail.com)
- Fixed User model getRoleLabelAttribute() to handle null role
- Fixed AuthController to refresh user after creation
- Removed rate limiting from register/login endpoints for development
- Added migration to ensure role and phone columns exist
- Updated app config with correct IP (10.192.233.99:8000)
- Fixed API response to include all required fields for Flutter
2026-05-19 08:01:07 +07:00
micko samawa 2a14a0cfb9 chore: Update mobile API server IP to 10.31.174.99 for WiFi network 2026-05-18 20:51:40 +07:00
micko samawa 585d36fe09 feat: Separate admin and user tables for independent authentication
- Create new 'admins' table with role column (admin/super_admin)
- Create Admin model for admin authentication
- Add AdminSeeder with test data (super_admin, admin)
- Update config/auth.php with dual guards (web for users, admin for admins)
- Update AdminAuthController to use Admin model and 'admin' guard
- Remove role column from users table (users have no role)
- Update register validation messages in Indonesian
- Now same email can be used by user and admin (separate tables)
2026-05-18 20:50:22 +07:00
micko samawa cf41a8b582 Perbaiki pengisian alamat laundry dari peta 2026-05-17 14:16:55 +07:00
micko samawa c0fe039e91 Update mobile config, add admin reminder notifications, and apply migrations 2026-05-10 23:29:18 +07:00
micko samawa 8359e2db4a Fix CSRF 419 by excluding _token/_method from laundry draft autosave 2026-04-26 21:14:59 +07:00
micko samawa 82227f5851 Harden admin access and clean unused web controllers 2026-04-18 00:32:43 +07:00
micko samawa 864be692e8 feat: modernize mobile UI and normalize laundry service handling 2026-04-16 01:00:10 +07:00
micko samawa a8e72f1203 Fix laundry distance display with user location and cleanup mobile laundry model 2026-04-04 13:16:51 +07:00
micko samawa b192557bb8 Update user management, booking model, and mobile screens 2026-03-14 11:11:28 +07:00
micko samawa 1a277067f4 Fix favorites system: improve error handling, type safety, and UI feedback
- Rewrite favorite_service.dart with proper error handling, auth checks, and timeouts
- Add error state UI to favorites_screen.dart with retry button
- Add SnackBar feedback on toggle failures in home/search/detail screens
- Type-safe parsing with per-item error handling to prevent crashes
- Clean orphan favorite records from database
- Add debugPrint logging for troubleshooting
- All changes maintain backward compatibility
2026-03-07 00:45:30 +07:00
micko samawa 73e8f197f2 Add laundry open/close times and status fields
Features:
- Laundry: Add jam_buka, jam_tutup, status (buka/tutup) fields to database
- Web forms: Add opening/closing times and status dropdown to create/edit views
- Controller: Validate and save new fields in store() and update()
- Mobile: Parse time strings to remove seconds, display status and hours
- Mobile: Add cache clearing to auto-refresh image data from server
- Mobile: Fix photo priority (prefer 'foto' field over galeri entries)

Changes:
- spk_kontrakan/app/Models/Laundry.php: Update fillable
- spk_kontrakan/app/Http/Controllers/LaundryController.php: Add validation and storage
- spk_kontrakan/resources/views/Laundry/create.blade.php: Add form fields
- spk_kontrakan/resources/views/Laundry/edit.blade.php: Add form fields
- spk_mobile/lib/models/laundry.dart: Time parsing, photo priority fix
- spk_mobile/lib/models/kontrakan.dart: Photo priority fix
- spk_mobile/pubspec.yaml: Add flutter_cache_manager
- Mobile screens: Add cache clearing on data refresh
2026-02-27 03:56:39 +07:00
micko samawa 786743231c fix: Laravel Backend Security & Stability Improvements
- Add rate limiting (api:60/min, login:5/min, register:3/hour, saw:30/min)
- Implement centralized JSON error handler for all API exceptions
- Create 6 Form Request classes for input validation
- Fix N+1 query problems with withCount and eager loading
- Add caching for kriteria queries (1 hour cache)
- Create /api/health and /api/docs documentation endpoints
- Fix export system: CSV export instead of Excel (package not installed)
- Restrict CORS to specific origins, set Sanctum token expiration (30 days)
- Add error_code fields to all API responses
- Update pagination views to remove large arrow icons, replace with text buttons
- Fix field name consistency: use correct database columns
- Add SQL injection prevention via sort column whitelist
- Optimize pagination UI for Activity Logs and other pages
2026-02-26 00:19:15 +07:00
micko samawa 79305d29c4 Web API Security Improvements: Rate limiting, centralized error handling, N+1 query fixes, CORS/Sanctum config, caching, export system fix, and pagination UI improvements 2026-02-26 00:18:36 +07:00
micko samawa 7453d3b322 Fix price display format and improve UI/UX across all screens - Replace confusing K notation with proper Rp format with thousand separators - Add /bln and /kg suffix for clarity - Improve card shadows, icons, and sections for professional appearance - Create currency formatter utility 2026-02-24 19:42:59 +07:00