Workflow
Paano ako mag-encode ng bagong applicant?
Open the Student List from the sidebar, then click "+ Add applicant". Fill in personal, address, contact, academic, parent/guardian, and educational background details. The system creates the applicant record together with an application row in DRAFT status. You can keep editing in DRAFT until you upload all requirements and send the case to head review.
Paano ko ipapadala ang application sa ADMISSION HEAD para sa review?
Open the applicant's profile, scroll to the Requirements section, mark all five requirements as uploaded/approved, then click "Send to head review" on the Review tab. The application_status will change from DRAFT to SUBMITTED, the applicant disappears from the Student List "pending" filter, and appears on the Review Head queue.
Bakit may applicant na nawawala sa Student List?
Once an application is sent to head review (SUBMITTED or higher) it is filtered OUT of the Student List default view because that list shows pending work for admission personnel. To see head-decided rows, switch the Student-list dropdown to "Sent to Review (head-decided)". The applicant will reappear in the Student List the moment the head presses "Return to personnel" or "Reopen / Reverse decision".
Statuses
Ano ang ibig sabihin ng application_status_id?
DRAFT (7001) — being prepared by personnel, nothing has been sent up yet. SUBMITTED (7002) — sent to head, awaiting decision. VERIFIED (7003) — head has reviewed once and locked the record. APPROVED (7004) — final accept. REJECTED (7005) — final decline. VOIDED (7006) — administratively cancelled (not the same as REJECTED). ARCHIVED (7007) — moved to archived_record by a new admission cycle.
Paano ko maire-reopen ang APPROVED o REJECTED na application?
Open the applicant from the Review Head tab, scroll to the Decision bar at the bottom. When the current status is APPROVED or REJECTED, a "Reopen / Reverse decision" button appears. Pressing it flips the status back to SUBMITTED, puts the case back on the For-review queue, and resets submitted_for_head_review = true. Only roles with FINAL VERIFICATION or ENDORSE APPLICATION can use this (system administrators always can).
Deadline reminders
Paano gumagana ang Deadline Reminder buttons?
Open Deadline Settings from the sidebar. Set the global deadline date/time. Then use the manual reminder buttons (7-day, 24-hour, deadline-day). Each press triggers DeadlineEmailService which selects applicants whose dashboard status is NOT Approved AND who have an email address on file, then sends one email per applicant via Jakarta Mail. Every send is logged to notification_log with the correct typed tag (EMAIL_DEADLINE_7D, EMAIL_DEADLINE_1D, EMAIL_DEADLINE_DAY).
Bakit "No reminder recipients" ang lumalabas sa banner?
Either (a) all your applicants are already in APPROVED dashboard status, or (b) the applicants do not have an applicant_email_address value. The dashboard banner also tells you the breakdown: total active in DB, how many are Approved, how many are missing an email. Add an email to the applicant's record (or fix their requirement statuses) to make them eligible again.
Reports
Saan ako kukuha ng mga sent emails na audit log?
Two ways. (1) From the Review dashboard, click the "Emails sent" summary card → "View all". You see the most-recent 200 emails categorised by Approval / Rejection / Deadline-7d / Deadline-1d / Deadline-day / Password-reset. (2) From any report dropdown, pick "Emails sent" and export as CSV or PDF. Source-of-truth table is notification_log.
Paano mag-export ng summary report?
Each role-specific dashboard has its own report dropdown (Student panel, Review panel, Audit panel, Archive panel). Pick the category, then click CSV or PDF. The export reads StudentStore (which is itself synced from the database every time the dashboard loads), so the file matches what you see on screen. Reports are NOT counted against any rate limit.
RBAC
Anong gawain ang puwedeng gawin ng bawat role?
ADMISSION PERSONNEL: encode/edit applicants, mark requirements approved/rejected/pending, send to head review. ADMISSION HEAD: everything personnel can do, plus approve/reject/return applications. SYSTEM ADMINISTRATOR: everything plus manage users, roles, system_config, FAQ, deadline, and break-glass on locked rows. Permission gates live in shs_admission.user_has_any_permission and the JS catalog in RolePermissionKeys.java.
Troubleshooting
May na-encounter akong "Application is locked (status: VERIFIED)" — bakit?
The trg_lock_application_after_verified trigger refuses any update to an application whose current status is VERIFIED, APPROVED, REJECTED, VOIDED, or ARCHIVED — UNLESS the calling user has the FINAL VERIFICATION or ENDORSE APPLICATION permission (i.e. the ADMISSION HEAD or SYSTEM ADMINISTRATOR). If you got this error as personnel, the workflow is correct: ask the head to either "Reopen / Reverse decision" or "Return to personnel" so you can edit again.
Bakit "Showing X applicant(s) from this browser only" ang dashboard?
The dashboard fell back to localStorage because the PostgreSQL read failed. Most common causes: (1) Tomcat lost its DB connection — restart Tomcat. (2) The repository hit a column that does not exist on this DB (check the Tomcat catalina log). (3) The session user lacks SELECT on shs_admission.applicant — re-run shs-grant-schema-permissions.sql. Once the DB read succeeds the banner disappears automatically on the next refresh.