Migration plan & milestones

End-to-end delivery and migration plan for Raisd portals on the existing Cyberjaya / LUCT CMS system of record, then progressive consolidation. Source of truth: SDD-03 (milestones), SDD-12 (hosting stages), SDD-14 (CMS vs portals), ADR-1–ADR-3. All dates remain TBC until the working group confirms them.

This phase: CMS = SoR Portals via Portal API No ops duplication M5+: progressive unified CMS
SoR postureThis phase vs M5+ Milestone sequenceM1 → M5 M1Confirm rules M2Admissions launch M3Core student portal M4Lesotho pilot M5Expansion & migration Hosting stagesSDD-12 launch plan Critical pathLive rules & next two weeks Definition of doneWhen a CAP is Live Checklist countsRows by milestone

System-of-record posture

Confirmed Working Group (Aslam, 23 Sep 2026) and recorded as ADR-1.

HorizonWhat shipsSystem of record
M1–M4 (this phase) Four portals + Portal API on existing campus CMS family; Lesotho first acceptance (3 Oct 2026) Existing CMS — do not duplicate operational desks
M5+ Campus expansion; remaining CMS capabilities; progressive consolidation Migrate domain-by-domain only with ownership, cutover, rollback, and training agreed
flowchart TB
  subgraph phase ["This phase — M1 to M4"]
    P[Four portals] --> API[Portal API]
    API --> CMS[Campus CMS family SoR
Lesotho pilot first] end subgraph later ["Longer term — M5+"] G[Verified gap] --> MIG[Migration strategy] MIG --> U[Progressive unified CMS] CMS -.->|retire desk only when ready| U end phase --> later

Milestone sequence

Order follows admissions-first product decisions and working-system dependencies. A milestone is when a capability must work, not when investigation begins. Detail: SDD-03.

flowchart LR
  M1[1. Confirm rules
and integration] --> M2[2. Admissions launch] M2 --> M3[3. Core student portal] M3 --> M4[4. Lesotho pilot
acceptance] M4 --> M5[5. Campus expansion
and remaining CMS]
ID Name Target Release condition (summary) Hosting stage
M1 Confirm rules and integration TBC Rules, API access, operating responsibilities agreed Before stage 1 install
M2 Admissions launch TBC Application-to-enrolment works with real records Stage 2
M3 Core student portal TBC Student + staff/lecturer paths Live or on verified old CMS Stage 3
M4 Lesotho pilot acceptance TBC Campus accepts pilot; training and ops ready Stage 4
M5 Campus expansion and remaining CMS TBC Each campus accepts rollout; SoR moves only with written strategy Stage 5

Kickoff and backend commitments: TBC.

M1 — Confirm rules and integration

TargetTBC
ScopeCampus rules, named owners, legacy capabilities, integration access
DependenciesCampus and backend owners identified; kickoff TBC
Release conditionRules, API access and operating responsibilities agreed
Primary CAPCAP-42 (copyright / provider operating controls)

Not a UI milestone. Unblocks every later “Needs checking” row. Full text: SDD-03 §M1.

M2 — Admissions launch

TargetTBC
ScopeApplicant registration, evidence, tracking, offers, Registry review, core applicant/student sign-in, mobile shell foundations
DependenciesAgreed rules; working old-CMS admissions/authentication integration
Release conditionApplication-to-enrolment works with real records; required staff workflows available through verified old CMS or new screens
HostingStage 2 — same k3s node resized; wired to real CMS

Must work end to end:

  1. Applicant account (CAP-01).
  2. Application + documents + declarations (CAP-02, CAP-03, CAP-55).
  3. Track / offer / accept (CAP-07).
  4. Registry review, qualification checks, offer, first enrolment (CAP-03, CAP-05, CAP-06, CAP-07).
  5. Marketing communications without owning the decision (CAP-16).
  6. Staff access via existing CMS unless a gap is verified (CAP-44).
  7. Portal API first slice (CAP-53).
  8. Auth, privacy, monitoring, backups (CAP-01, CAP-37, CAP-38, CAP-39).
  9. Accessible forms and mobile shell (CAP-35, CAP-36).

Student portal demo screens are not the release condition for M2.

M3 — Core student portal

TargetTBC
ScopeLearning resources, timetable, assignment delivery, policies, core records, semester registration, with lecturer and staff support
DependenciesRequired student, teaching, file-delivery and finance APIs; approved content; staff workflows
Release conditionStudent and staff journeys work end to end with durable records and agreed core mobile access
HostingStage 3 — add edge node; deploy student + lecturer portals

Student-only demo UI is insufficient. Lecturer publish/mark and staff approval paths for the same CAP IDs must be Live or explicitly served by the old CMS. Full text: SDD-03 §M3 · portals SDD-05 / SDD-06 / SDD-07.

M4 — Lesotho pilot acceptance

TargetTBC
ScopeTest the integrated Lesotho pilot, train staff, obtain campus acceptance. Parity with Lesotho newer CMS (screenshot benchmark) and applicable government requirements.
DependenciesIntegrations, content, security, recovery, operational support ready
Release conditionCampus accepts the pilot and confirms applicable requirements, including verified existing-CMS or manual alternatives
Primary CAPCAP-41 staff training and operating readiness
HostingStage 4 — same two nodes; restore drill; no new product

Full text: SDD-03 §M4. Approach: lesotho-pilot.md.

M5 — Campus expansion and remaining CMS

TargetTBC
ScopeExpand campus coverage; remaining approved CMS/staff capabilities; start progressive consolidation toward a unified one-stop CMS where gaps are verified
DependenciesLesotho pilot accepted; campus-specific rules and existing capabilities verified; migration plan per domain before retiring a legacy desk
Release conditionEach campus accepts its rollout. Deferring new software never defers an applicable operating requirement. Any SoR move needs ownership, cutover, rollback, and training agreed
HostingStage 5 — grow data node only when full

Includes quizzes/exams, live class, library, visa, accommodation, scholarships, online payment gateway, study centres, remaining staff desks — prefer Portal API + verified old CMS first; rebuild or migrate only when the gap and migration strategy are explicit (SDD-14).

Migration rule (M5+)Detail
Verified gap onlyDo not rewrite a working LUCT CMS desk without evidence it fails the CAP
Written strategyOwnership, cutover, rollback, training before SoR moves
Domain-by-domainConsolidate progressively; never big-bang CMS replacement
Default this phaseStaff ops stay on CMS; portals read/write via CAP-53 ACL

Hosting & launch stages (SDD-12)

ADR-2: Singapore UltaHost; size follows the stage. ADR-3: k3s from the minimum. Existing CMS and mail stay off Kubernetes. Full sizing: SDD-12. Early throwaway Demo (not production): Vercel + Neon PoC.

Launch stages mapped to milestones

Each stage adds workloads; it does not replace the cluster. Replicas stay at 1 until a stage says otherwise.

Stage When Cluster What is running Public names
1. Minimum Before admissions (after M1) One k3s node (3 vCPU / 4 GB) Ingress, applicant-portal, portal-api, Postgres, evidence volume apply.raisd.co, api.raisd.co
2. Admissions launch M2 Same node, resized (4 vCPU / 6 GB) Stage 1 wired to real CMS; backup CronJob; staff-portal only if CMS gap verified Same (+ staff.raisd.co if deployed)
3. Core student M3 Add edge node; data node steps up Add student-portal and lecturer-portal; ingress on edge student.raisd.co, teach.raisd.co
4. Pilot acceptance M4 Same two nodes; no resize Restore drill from backup job; no new product Unchanged
5. Campus expansion M5 Grow data node only when full Remaining portal features; not a second control plane Unchanged until a campus outside SEA launches

Server requirements (minimum per stage)

Do not skip ahead. Prices are 24-month UltaHost Singapore list rates (19 Sep 2026), not a quote.

StageNodesRequirementSmallest planCluster total
113 vCPU, 4 GB, 75 GB NVMeVPS Professional ≈ $15.87/mo3 vCPU, 4 GB
214 vCPU, 6 GB, 100 GB NVMeVPS Enterprise ≈ $20.69/mo (resize; do not add a second)4 vCPU, 6 GB
32Edge 3/4/75; Data 4/8/250Edge: 2nd Professional; Data: VDS POWER Plus ≈ $37.72/mo7 vCPU, 12 GB
42Same as stage 3No new server7 vCPU, 12 GB
52Data 8/16/450 only when 8 GB node is fullVDS POWER Premium ≈ $68.43/mo (data only)11 vCPU, 20 GB
Existing CMS stays on POWER Premium — never a Kubernetes node. Prefer Professional VPS for stage 1 so the owned Plus box remains free for stage 3.

Critical path for Live (this phase)

  1. Confirm admissions staff can complete offer → first enrolment on old CMS (or document the gap).
  2. Deliver CAP-53 first slice: auth + applicant create/read + document metadata acknowledgment.
  3. Only then promote student Demo journeys that mutate registration or finance.
  4. Do not mark any CAP Live from frontend Demo alone.
  5. Do not rebuild working staff desks — Portal API + verified old CMS (SDD-14).

Near-term design rule (next two weeks)

Student portal v1 is deepest on M3 screens; product priority still puts M2 before M3.

  1. Freeze new student demo screens unless they are on the M2 critical path (auth, mobile shell, accessibility).
  2. Prioritise CAP-53, CAP-01, applicant CAP-02/03/07, and Registry old-CMS verification.
  3. Keep existing student demos, but label them Demo until wired.

Definition of done (any capability)

A capability is Live only when all of the following are true:

  1. Real data from the system of record, not a mock session.
  2. Durable save where the user can mutate data.
  3. Server-enforced permission for that role and campus.
  4. The paired staff/lecturer action exists in new UI or is verified in the old CMS.
  5. Accountable owner named.
  6. Core mobile accepted if the CAP is in PRODUCT-MOBILE.
  7. Country/campus operating checks in the next-action column are closed or explicitly waived.

Checklist counts by milestone

Re-counted from the live Working Group sheet on 19 Sep 2026 (unchanged from 18 Sep). Progress detail: SDD-13.

MilestoneRowsDominant frontend statusLive
Confirm rules & integration (M1)1Not applicable0
Admissions launch (M2)23Mostly not started. 4 of 18 applicable rows started, none Live0
Core student portal (M3)5116 started (student Demo/Partial). 35 not started, including lecturer and staff0
Lesotho pilot acceptance (M4)1Not applicable (training)0
Campus expansion & remaining CMS (M5)3612 started. 22 applicable rows not started0