# Peta Migrasi CodeIgniter -> Laravel 13

| Area legacy | Implementasi Laravel rebuild | Status |
|---|---|---|
| Login admin/dosen/mahasiswa | `AuthController`, `LegacyUserService`, tabel `users` | Implemented |
| Role super admin/admin/keuangan/dosen/mahasiswa | `RoleMiddleware` | Implemented |
| Pengguna admin / keuangan | `Admin/AdminUserController` | Implemented |
| Tahun akademik | `Admin/AcademicYearController` | Implemented |
| Program studi | `Admin/StudyProgramController` | Implemented |
| Ruang kuliah | `Admin/RoomController` | Implemented |
| Mahasiswa | `Admin/StudentController` | Implemented |
| Dosen | `Admin/LecturerController` | Implemented |
| Mata kuliah | `Admin/CourseController` | Implemented |
| Jadwal | `Admin/ScheduleController` | Implemented |
| Materi kuliah | `Admin/CourseMaterialController` | Implemented |
| KRS mahasiswa | `Student/KrsController`, `KrsService` | Implemented |
| KHS / IPS / IPK | `Student/KhsController`, `AcademicService` | Implemented |
| Jadwal mahasiswa | `Student/ScheduleController` | Implemented |
| Input nilai dosen | `Lecturer/GradeController` | Implemented |
| Import/export nilai | CSV aman, bukan library XLS legacy | Implemented |
| Jenis tagihan | `Admin/InvoiceTypeController` | Implemented |
| Generate tagihan | `Admin/BillController` | Implemented |
| Pembayaran | `Admin/PaymentController` | Implemented |
| Dispensasi KRS | `Admin/DispensationController` | Implemented |
| Keuangan mahasiswa | `Student/FinanceController` | Implemented |
| Mutasi mahasiswa | `Admin/MutationController` | Implemented |
| Wisuda | `Admin/GraduationController` | Implemented |
| Validasi wisuda | `Admin/GraduationValidationController` | Implemented |
| Info kampus | `Admin/NewsController` | Implemented |
| Dashboard statistik | admin/dosen/mahasiswa | Implemented |
| Laporan | laporan ringkas + ekspor CSV | Implemented (consolidated) |
| Polling / kuesioner | Model legacy sudah dipetakan | Phase 2 |
| Hasil kuesioner dosen | Model legacy sudah dipetakan | Phase 2 |
| Pesan internal | Model legacy sudah dipetakan | Phase 2 |
| Import massal mahasiswa/dosen/matkul | belum dibuat ulang sebagai wizard | Phase 2 |
| Laporan khusus lama (absen/piutang/polling dll.) | sebagian digabung ke report modern | Phase 2 |
| Grafik khusus legacy | dashboard statistik menggantikan sebagian fungsi | Phase 2 |

## Prinsip desain

1. Tidak melakukan rewrite buta. Struktur dan aturan bisnis diambil dari controller/model legacy dan skema SQL.
2. Tidak menyalin password MD5 menjadi password baru. Hash MD5 hanya dipakai sebagai jembatan login pertama dan kemudian dihapus dari `users.legacy_password_hash`.
3. Query untuk data milik mahasiswa/dosen selalu dibatasi dengan identity/reference pengguna untuk mengurangi IDOR.
4. Operasi penting seperti KRS, generate tagihan, dan mutasi memakai service/transaction agar aturan bisnis tidak tersebar di view.
5. UI Blade dibuat responsif tanpa ketergantungan tema admin legacy.
