Skip to content

fix: detect postgraduate final-project courses by jenjang (BUG-003) - #131

Merged
ffooll-bit merged 1 commit into
mainfrom
fix/postgrad-final-project-detection
Oct 21, 2026
Merged

ffooll-bit merged 1 commit into
mainfrom
fix/postgrad-final-project-detection

Conversation

@ffooll-bit

Copy link
Copy Markdown
Owner

Summary

Fixes the PISN graduation wizard so the "Kelengkapan Transkrip" check and the ENH-010 grade fill recognise postgraduate final-project courses.

  • Final-project detection is now selected per jenjang from nama_program_studi, because course naming differs by program and the same name means different milestones at different levels:

    Jenjang Final-project pattern
    S1 skripsi | tugas akhir | thesis | tesis
    S2 tesis | skripsi | tugas akhir | thesis | ujian hasil penelitian dan tutup | ujian tutup
    S3 ujian terbuka | promosi
  • S2 Akuntansi uses Ujian Tutup and S2 Manajemen uses Ujian Hasil Penelitian dan Tutup; both are detected. S3's Ujian Tutup is an intermediate milestone and is deliberately not accepted there.

  • The program name is persisted in wizard progress (program_studi) so finish() uses the same pattern; older progress records fall back to GetListMahasiswa.

  • transcript_ok now requires a graded final-project course only; the choosed marker stays informational (BUG-001).

  • UI/validation text changed from "skripsi/tugas akhir" to "karya akhir (skripsi/tesis/ujian akhir)". The Excel column nilai_skripsi is unchanged for template compatibility.

Related issues

Fixes #130

Checklist

  • php -l passes on all modified PHP files
  • npm run build succeeds and committed assets are up to date
  • php spark routes shows correct new routes (if routes changed)
  • vendor/bin/php-cs-fixer fix passes (no style violations)
  • vendor/bin/phpunit is green (if tests exist)
  • No debug code: dd(), var_dump(), console.log(), print_r(), exit()
  • All user inputs validated server-side
  • All POST forms include csrf_field()
  • All HTML output uses esc()
  • No unrelated files changed
  • CHANGELOG updated if this is a user-facing change
  • Behaviour verified in the browser if UI changed (attach a screenshot if useful)

Screenshot (if applicable)

N/A — the only view change is wording on card 3 and the transcript_ok label; no layout change.

Notes for reviewers

Deviation from the proposal in #130. The issue proposed one global pattern including ujian tutup. Live probing of the 37 supplied S2 Akuntansi NIMs showed that Ujian Tutup is the S2 Akuntansi final course, but S3 also uses Ujian Tutup as an intermediate milestone before Ujian Terbuka (Promosi). A global pattern would mark S3 students complete too early (e.g. 2023250001 had Ujian Tutup A while Ujian Terbuka was still E; 2024150009 has only Ujian Tutup E). The pattern is therefore selected per jenjang.

Verification (read-only, against live Neo Feeder data):

  • 10/10 method-level cases PASS: S2 Akuntansi graded (2023240002) complete; S2 Akuntansi ungraded (2023240008) incomplete, fill target 20251; S2 Akuntansi with an older grade (2023240006) complete, fill target 20261; S2 Manajemen graded (2023220008) complete; S2 Manajemen ungraded (2021456421278) incomplete; S3 open-exam graded (2023250001) complete; S3 Ujian Tutup-only (2024150009) incomplete; S3 results-exam-only (2023250002) incomplete; S1 Skripsi (202010087) complete.
  • Batch over the 37 supplied S2 Akuntansi NIMs: 37/37 detected, 32 complete, 5 incomplete (2023240008, 2024140001, 2024140008, 2024140009, 2024140014).
  • choosed stayed false on 58/58 sampled S2 Akuntansi final-project rows, confirming it must stay out of the gate.
  • Full suite: 57 tests, 92 assertions. PHPUnit exits 1 only because no coverage driver is installed ("WARNINGS!"), not because of a failing test.
  • php-cs-fixer --dry-run: 0 of 93 files need changes; LF/no-BOM markdown checks clean.

ARCHITECTURE.md carries pre-existing, unrelated Verifikasi IPK documentation edits in the working tree; only the transcript-check hunk is included in this PR.

@ffooll-bit
ffooll-bit merged commit 9030f20 into main Oct 21, 2026
1 check passed
@ffooll-bit
ffooll-bit deleted the fix/postgrad-final-project-detection branch October 21, 2026 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: detect postgraduate final-project courses in graduation transcript check

1 participant