SIAMA MVP · Master Data + Dynamic RBAC

Academic operations now use Unasman faculty and study-program master data.

The KRS intake flow reads Program Studi from database tables, stores faculty/program relations, and previews scoped access for Mahasiswa, BAAK, Kaprodi, Keuangan, and Rektor.

Current Scope

Single-campus SIAMA

v0.2
6Faculties seeded
13Study programs
5RBAC roles
2Scoped KRS records

Runtime PHP 8.2.33 · 2026-08-22 05:21:21 WITA · DB-backed with PDO prepared statements.

Student Workflow

Online KRS readiness request

This models the first student academic action: NIM-based submission, Program Studi lookup, SKS/IPK validation, prerequisite confirmation, finance clearance, and routing to advisor or staff.

Rule preview
  • Program Studi is validated from the table study_programs.
  • Selected Program Studi writes both faculty_id and study_program_id.
  • IPK below 3.00 should not request more than 21 SKS.
  • Unpaid UKT is blocked when finance blocking is enabled.

Create KRS Request

Finance block: ON
Enter a valid NIM.
Student name is required.
Choose a study program.
Faculty is selected automatically from the master table.
Use semester 1–14.
IPK must be 0.00–4.00.
SKS must be 1–24.
Status will be calculated after submission.
Academic Master Data

Unasman faculties and study programs are now normalized.

The KRS form is no longer hardcoded; it reads active Program Studi from study_programs, grouped by faculties.

6 faculties 13 prodi

Fakultas Keguruan dan Ilmu Pendidikan

FKIP

3 active Program Studi

  • Pendidikan Bahasa IndonesiaS1 · PBI
  • Pendidikan MatematikaS1 · PMTK
  • Pendidikan Pancasila dan KewarganegaraanS1 · PPKN

Fakultas Ilmu-ilmu Sosial dan Ilmu Pemerintahan

FISIP

2 active Program Studi

  • Ilmu KomunikasiS1 · IKOM
  • Ilmu PemerintahanS1 · IP

Fakultas Agama Islam

FAI

2 active Program Studi

  • Hukum Ekonomi SyariahS1 · HES
  • Manajemen Pendidikan IslamS1 · MPI

Fakultas Ilmu Komputer

FIKOM

2 active Program Studi

  • Sistem InformasiS1 · SI
  • Teknik InformatikaS1 · TI

Fakultas Ilmu Pertanian

FIPER

3 active Program Studi

  • AgribisnisS1 · AGR
  • AgroteknologiS1 · AGT
  • PeternakanS1 · PTK

Fakultas Kesehatan Masyarakat

FKM

1 active Program Studi

  • Kesehatan MasyarakatS1 · KM
Dynamic RBAC

Roles and data scopes live in database tables.

Local NIM/NIP accounts will bind to roles through user_role_scopes, allowing access by self, Program Studi, Fakultas, or global scope.

5 roles 4 scope types
Self/NIM

Mahasiswa

Student self-service access for KRS, KHS, invoices, attendance, and thesis lifecycle.

Global

BAAK / Biro Akademik

Academic bureau administration across admissions, curriculum, KRS, KHS, and master data.

Program Studi

Kaprodi / Program Studi

Study-program leadership review and approval within assigned prodi.

Fakultas

Keuangan

Finance office access for invoices, payment clearance, installment handling, and receipts.

Global

Rektor / Pimpinan

Executive dashboard and institution-wide monitoring access.

Access-scope blueprint

RoleScope columnsOperational access
Mahasiswalogin_id/NIMSelf-service KRS, KHS, presensi, invoice, thesis records.
BAAKglobalAcademic master data, PMB, KRS/KHS administration.
Kaprodistudy_program_idReview and approve students/classes within assigned Program Studi.
Keuanganfaculty_idFinance clearance, UKT invoices, installments, receipts by faculty assignment.
Rektor/PimpinanglobalInstitution-wide dashboards and aggregate monitoring.
SRS + Architecture Blueprint

Complete system structure, condensed into buildable modules.

The MVP remains thin, but this structure keeps the database and API roadmap aligned with SIAMA’s full scope.

PMB

Registration, candidate selection, NIM generation, admissions reporting.

Academic Core

Faculties, prodi, curriculum, courses, prerequisites, KRS, KHS, transcript, schedules.

Presence & LMS

QR/geofence attendance, class journals, materials, Moodle SSO hooks.

Finance

UKT/SPP billing, VA callbacks, installments, receipts, clearance toggles.

Thesis & Graduation

Proposal, advisor matching, revisions, defense schedules, yudisium.

Executive Analytics

Revenue, active students, SKS, GPA, workload, retention dashboards.

Core ERD relationships

  • faculties 1→N study_programs 1→N students/users
  • roles N→N permissions; users N→N roles through scoped assignments
  • user_role_scopes bind RBAC to faculty_id and study_program_id
  • curricula 1→N courses; courses N→N prerequisites
  • classes N→1 courses, lecturers, rooms, academic_years
  • students N→N classes via krs_items and attendance_logs
  • students 1→N invoices 1→N payments/receipts
  • students 1→N thesis_submissions; lecturers assigned as advisors/examiners

Core API blueprint

POST /api/auth/login GET /api/master/faculties GET /api/master/study-programs?faculty_id={id} GET /api/students/{id}/krs POST /api/krs/requests POST /api/payments/va-callback POST /api/pddikti/sync GET /api/executive/dashboard
Scoped Staff Queue

Latest KRS requests

This queue demonstrates dynamic RBAC filtering by role, faculty, Program Studi, or student NIM.

2 pending 0 blocked 0 revision

BAAK scope: global academic operations access.

ID Student Faculty / Prodi SKS/IPK Finance Status Action
#2 Rahman20260001 Sistem InformasiFIKOM 24 SKS / 3.25 Paid Pending Advisor Detail
#1 Aulia Rahma20260001 Teknik InformatikaFIKOM 20 SKS / 3.40 Paid Pending Advisor Detail