# Academic Feature Decoupling & Lockdown Implementation Plan
**University Registration & ERP Platform**  
*Document Version: 1.0.0 | Status: Production Blueprint*

---

## 1. Executive Summary & Architecture Blueprint

### 1.1 Objective
Disable and isolate all academic functionality across the entire university platform for all user classes—including `Super Admin`, `Dean`, `Registrar`, and `Faculty`—while maintaining 100% operational integrity for:
1. **Student Registration System** (admissions, batch token registrations, payment installments, approvals).
2. **Central Cashier & Counter Modules** (daily collection drawer, receipt issuance, invoice settlement).
3. **External Banking Integration APIs** (`/api/student/student-info`, `/api/student/add-payment`, `/api/student/get-payment-status`, `/api/report/payments`).
4. **Executive Dashboard Counters & Analytics** (financial charts, registration metrics, Ornic 67 reports, audit logs).
5. **Student Cards & QR Verification** (identity issuance, template designer, public card scanner).

### 1.2 Core Architectural Principles
- **Zero-Trust Lockdown**: Disabling is enforced at the kernel HTTP pipeline level using route middleware and feature configuration. Privilege escalation (e.g., assigning Spatie permissions or Super Admin role) cannot bypass the guard.
- **Data Preservation Guarantee**: No database tables or columns are dropped. Academic historical data (`student_subjects`, `academic_plans`, `grade_scales`, `exam_committee_protocols`, etc.) is preserved in place in a read-only state, ensuring historical counters, audits, and financial references never break.
- **Preserved Sidebar Navigation with Marketing Placeholders**: In accordance with business constraints, academic navigation items remain visible in the navigation sidebar but are converted to disabled/enterprise placeholders that direct users to an engaging Marketing / Feature Preview showcase page.
- **Fail-Secure Protocol**: Web browser requests to academic pages are redirected to the Marketing Preview page with explanatory feedback; programmatic API or AJAX requests attempting to read or mutate academic state immediately receive `403 Forbidden` (`{"error": "academic_disabled"}`).

---

## 2. Feature Decoupling Matrix & Domain Boundaries

| Feature Domain | Specific Sub-modules & Routes | Target Status | Technical Action |
| :--- | :--- | :--- | :--- |
| **Examinations Committee** | `/examinations/dashboard`, `/examinations/explorer/*`, `/examinations/protocol/*` | **DISABLED** | Guard with `academic.enabled` middleware; redirect GET to Marketing; block POST with 403. |
| **Course & Subject Enrollment** | `/student-subject-enrollment`, `/student-subject-enrollment/confirm-registration`, retake enrollments | **DISABLED** | Guard with `academic.enabled` middleware; prevent subject enrollment while preserving registration. |
| **Grading & Council Recalculation** | `/grade-entry`, `/grade-entry/submit`, `/grade-entry/approve`, `/grade-entry/recalculate` | **DISABLED** | Guard with `academic.enabled` middleware; freeze grade manipulation. |
| **Timetables & Room Scheduling** | `/lecture-time-tables/*`, `/rooms/*` | **DISABLED** | Guard with `academic.enabled` middleware; convert sidebar entry to marketing placeholder. |
| **Curriculum & Plans** | `/academic-plans/*`, `/academic-plans/{id}/subjects/*`, `/subjects/*` | **DISABLED** | Guard with `academic.enabled` middleware; prevent plan creation/mutation. |
| **Academic Regulations & Grading Engine** | `/academic-regulations/*`, `/grade-scales/*`, `/result-statuses/*` | **DISABLED** | Guard with `academic.enabled` middleware; lock academic configuration. |
| **Faculty & Teachers Assignment** | `/teachers/*`, `/teacher-subject-assignment/*`, `/signatures/*` | **DISABLED** | Guard with `academic.enabled` middleware; lock faculty assignment. |
| **Academic Reports & Transcripts** | `/reports/gradesheet/*`, `/reports/attendance/*`, `/reports/gpa/*`, `/reports/transcripts/*`, `/reports/certificate/*`, `/reports/academic` | **DISABLED** | Guard with `academic.enabled` middleware; replace with marketing / preview placeholders. |
| **Student Admissions & Directory** | `/students`, `/students/create`, `/students/{id}`, `/students/import`, `/students/export` | **PRESERVED** | Fully operational. Students are core to registration and card generation. |
| **Student Registration & Installments** | `/registrations`, `/registrations/confirm/*`, `/registrations/abort/*`, `/registrations/{id}/installments` | **PRESERVED** | Fully operational. Powers admission fees and semester registration. |
| **Central Cashier & Counter Drawer** | `/counter-payments`, `/counter-payments/history`, `/counter-payments/receipt/{payment}`, pay routes | **PRESERVED** | Fully operational. Direct student fee collection. |
| **Service Invoices & Fee Types** | `/invoices/*`, `/fee-types/*`, `/banks/*` | **PRESERVED** | Fully operational. Financial backbone of the university. |
| **External Banking APIs** | `/api/student/*`, `/api/report/payments`, `/api/login` | **PRESERVED** | Fully operational. Maintains bank integration contracts. |
| **Financial Reports & Ornic 67** | `/reports/financial`, `/reports/financial/export`, `/reports/payment-report`, `/reports/ornic67` | **PRESERVED** | Fully operational. Critical for university financial auditing. |
| **Student ID Cards & QR Scanner** | `/student-cards/*`, `/card-scanner/*` | **PRESERVED** | Fully operational. Physical identity credential issuance. |
| **Organizational Lookups** | `/colleges`, `/sections`, `/programs`, `/specializations`, `/batches`, `/semesters`, `/states`, `/localities` | **PRESERVED** | Essential relational lookups required for student admissions and fee schedules. |

---

## 3. Configuration & Feature-Flag Architecture

### 3.1 Configuration File (`config/features.php`)
```php
<?php

return [
    /*
    |--------------------------------------------------------------------------
    | Master Academic Feature Toggle
    |--------------------------------------------------------------------------
    | Setting this to false deactivates all academic endpoints, grade entries,
    | timetables, curriculum management, and academic reports for ALL users.
    | Super Admin and administrative roles CANNOT override this flag.
    */
    'academic_enabled' => env('FEATURE_ACADEMIC_ENABLED', false),

    /*
    |--------------------------------------------------------------------------
    | Granular Sub-feature Flags
    |--------------------------------------------------------------------------
    */
    'academic_submodules' => [
        'examinations' => env('FEATURE_ACADEMIC_EXAMINATIONS', false),
        'subject_enrollment' => env('FEATURE_ACADEMIC_ENROLLMENT', false),
        'grade_entry' => env('FEATURE_ACADEMIC_GRADE_ENTRY', false),
        'timetables' => env('FEATURE_ACADEMIC_TIMETABLES', false),
        'academic_plans' => env('FEATURE_ACADEMIC_PLANS', false),
        'regulations' => env('FEATURE_ACADEMIC_REGULATIONS', false),
        'academic_reports' => env('FEATURE_ACADEMIC_REPORTS', false),
    ],

    /*
    |--------------------------------------------------------------------------
    | Marketing / Placeholder Showcase Route
    |--------------------------------------------------------------------------
    */
    'marketing_route' => 'academic.marketing.preview',
];
```

---

## 4. Rollback & Contingency Plan
1. **Instant Environment Flag Flip**: `FEATURE_ACADEMIC_ENABLED=true` in `.env`.
2. **Clear Configuration Cache**: `php artisan config:clear`.
3. **Time to Restore**: Under 30 seconds. Because all routes, controllers, and database tables remain preserved, re-enabling requires zero data migration.

