# Roadmap Pengembangan 12 Modul (PHP Native)

Berikut adalah roadmap pengembangan bertahap untuk 12 modul utama platform NexusScholar.

## 1. Authentication & Role Management
1. **Tujuan**: Mengamankan akses aplikasi dan mendistribusikan wewenang pengguna.
2. **Role**: Semua User (Guest, Author, Reviewer, Editor, Superadmin).
3. **Fitur Utama**: Login, Register multi-role, Password Hash/Verify, Cek Session Aktif, Logout.
4. **Tabel Database**: `users` (id, name, email, password_hash, role_id).
5. **URL Route**: `/login`, `/register`, `/logout`.
6. **Controller Utama**: `AuthController`.
7. **Model Utama**: `UserModel`.
8. **View Utama**: `auth/login.php`, `auth/register.php`.
9. **Dependensi**: Modul Core (Session & Database).
10. **Prioritas**: MVP 1.0.

## 2. Journal Management
1. **Tujuan**: Setup identitas jurnal, petunjuk penulis, dan scope publikasi.
2. **Role**: Journal Manager, Superadmin.
3. **Fitur Utama**: Edit ISSN, Deskripsi, Aims & Scope, Guideline, Template Naskah.
4. **Tabel Database**: `journals` (id, title, description, issn, current_issue_id, guidelines).
5. **URL Route**: `/admin/journal/settings`.
6. **Controller Utama**: `JournalCtrl`.
7. **Model Utama**: `JournalModel`.
8. **View Utama**: `admin/journal_settings.php`.
9. **Dependensi**: Modul 1 (Auth - RBAC).
10. **Prioritas**: MVP 1.0.

## 3. Submission System
1. **Tujuan**: Penulis dapat mengirimkan draf artikel (metadata & PDF).
2. **Role**: Author.
3. **Fitur Utama**: Multi-step form (Metadata, Upload PDF, Author List), Draft System.
4. **Tabel Database**: `articles`, `article_authors`, `article_files`.
5. **URL Route**: `/author/submit`, `/author/submit/step1`, dll.
6. **Controller Utama**: `SubmissionCtrl`.
7. **Model Utama**: `ArticleModel`, `FileModel`.
8. **View Utama**: `author/submit_wizard.php`.
9. **Dependensi**: Modul 1, Modul 2.
10. **Prioritas**: MVP 1.0.

## 4. Editorial Workflow
1. **Tujuan**: Editor meninjau naskah masuk dan memutuskan statusnya.
2. **Role**: Editor-in-Chief, Section Editor.
3. **Fitur Utama**: Kanban/List antrean naskah, Keputusan Desk Reject / Lanjut Review, Request Revision.
4. **Tabel Database**: `articles` (update field status), `editorial_actions_log`.
5. **URL Route**: `/editor/submissions`, `/editor/article/{id}`.
6. **Controller Utama**: `EditorialCtrl`.
7. **Model Utama**: `ArticleModel`.
8. **View Utama**: `editor/dashboard.php`, `editor/article_detail.php`.
9. **Dependensi**: Modul 3.
10. **Prioritas**: MVP 1.0.

## 5. Reviewer Ecosystem
1. **Tujuan**: Penugasan reviewer dan pengisian form evaluasi naskah.
2. **Role**: Editor, Reviewer.
3. **Fitur Utama**: Assign Reviewer, Accept/Decline Review, Form Penilaian, Rekomendasi (Accept/Reject).
4. **Tabel Database**: `reviews` (id, article_id, reviewer_id, content, decision, status).
5. **URL Route**: `/reviewer/dashboard`, `/reviewer/evaluate/{id}`.
6. **Controller Utama**: `ReviewCtrl`.
7. **Model Utama**: `ReviewModel`.
8. **View Utama**: `reviewer/dashboard.php`, `reviewer/form.php`.
9. **Dependensi**: Modul 4.
10. **Prioritas**: MVP 2.0.

## 6. AI Reviewer Simulation
1. **Tujuan**: AI memberikan ringkasan kelayakan naskah sebelum Peer Reviewer manusia bekerja.
2. **Role**: Editor.
3. **Fitur Utama**: Cron Job trigger AI API cURL, Deteksi Format & Plagiasi Awal, AI Summary Report.
4. **Tabel Database**: `ai_reports` (id, article_id, summary, confidence_score, flags).
5. **URL Route**: Dijalankan via cPanel Cron (`php public/cron_ai.php`).
6. **Controller Utama**: `AIServiceCtrl` / CLI Task.
7. **Model Utama**: `AiReportModel`.
8. **View Utama**: Di-render dalam widget di `editor/article_detail.php`.
9. **Dependensi**: Modul 3 (PDF extraction text logic ke Gemini).
10. **Prioritas**: MVP 2.0.

## 7. Publication System
1. **Tujuan**: Pengaturan edisi dan penerbitan naskah yang telah berstatus "Accepted".
2. **Role**: Journal Manager, Editor.
3. **Fitur Utama**: Create Volume/Issue, Assign Article to Issue, Publish Button, DOI generator simulation.
4. **Tabel Database**: `issues` (id, journal_id, volume, number, year, is_published).
5. **URL Route**: `/admin/issues`, `/admin/issue/publish/{id}`.
6. **Controller Utama**: `IssueCtrl`.
7. **Model Utama**: `IssueModel`, `ArticleModel`.
8. **View Utama**: `admin/issue_manager.php`.
9. **Dependensi**: Modul 4, Modul 5.
10. **Prioritas**: MVP 2.0.

## 8. Interactive Article Experience
1. **Tujuan**: Pengunjung bisa melihat dan mengunduh artikel yang telah dipublikasikan.
2. **Role**: Reader, Public.
3. **Fitur Utama**: Landing Page Jurnal, Detail Abstract, PDF Viewer, Kutip Sitasi Mudah.
4. **Tabel Database**: Read-only dari `articles`, `article_authors`, `issues`.
5. **URL Route**: `/`, `/issue/{number}`, `/article/{id}`.
6. **Controller Utama**: `PublicCtrl`.
7. **Model Utama**: `ArticleModel`, `IssueModel`.
8. **View Utama**: `public/home.php`, `public/article.php`.
9. **Dependensi**: Modul 7.
10. **Prioritas**: MVP 2.0.

## 9. Author Analytics
1. **Tujuan**: Author dapat melihat statistik artikelnya.
2. **Role**: Author.
3. **Fitur Utama**: Grafik View/Download per artikel (menggunakan Chart.js).
4. **Tabel Database**: `analytics_logs` (id, article_id, type_event, created_at, ipt_address).
5. **URL Route**: `/author/analytics`.
6. **Controller Utama**: `AnalyticsCtrl`.
7. **Model Utama**: `AnalyticsModel`.
8. **View Utama**: `author/analytics.php`.
9. **Dependensi**: Modul 8.
10. **Prioritas**: Advanced.

## 10. Research Profile
1. **Tujuan**: Profil publik peneliti (Author/Reviewer) berisi sejarah publikasi mereka.
2. **Role**: Public, Author.
3. **Fitur Utama**: Profile Card, Afiliasi, List Paper Published, Total Citations (Mock).
4. **Tabel Database**: `user_profiles` (id, user_id, bio, orcid, google_scholar_link).
5. **URL Route**: `/profile/{username}`.
6. **Controller Utama**: `ProfileCtrl`.
7. **Model Utama**: `UserModel`, `ArticleModel`.
8. **View Utama**: `public/profile.php`.
9. **Dependensi**: Modul 1, Modul 8.
10. **Prioritas**: Advanced.

## 11. Research Matchmaking
1. **Tujuan**: Editor mudah mencari reviewer via pencocokan *keywords* metadata.
2. **Role**: Editor.
3. **Fitur Utama**: Query LIKE/FULLTEXT MySQL mencocokkan `articles.keywords` dengan `users.specializations`.
4. **Tabel Database**: `user_specializations` (user_id, keyword).
5. **URL Route**: `/editor/match-reviewer/{article_id}` (AJAX endpoint).
6. **Controller Utama**: `MatchmakingCtrl`.
7. **Model Utama**: `UserModel`.
8. **View Utama**: Modal Alpine.js di halaman `editor/article_detail.php`.
9. **Dependensi**: Modul 4, Modul 5.
10. **Prioritas**: Advanced.

## 12. Research Community
1. **Tujuan**: Forum diskusi internal antara Editor, Reviewer, dan Author dalam satu page naskah.
2. **Role**: Author, Editor, Reviewer.
3. **Fitur Utama**: Discussion Thread, Messaging (hanya via polling AJAX biasa, bukan WebSockets).
4. **Tabel Database**: `discussions` (id, article_id, sender_id, message, created_at).
5. **URL Route**: `/process/article/{id}/discussion`.
6. **Controller Utama**: `DiscussionCtrl`.
7. **Model Utama**: `DiscussionModel`.
8. **View Utama**: Tab "Discussions" di dashboard Editor/Author.
9. **Dependensi**: Modul 3, Modul 4.
10. **Prioritas**: Advanced.
