AENS InfoSys โ User Guide
1. System Overview
AENS InfoSys is a DepEd Kโ12 Senior High School Student Information System for Aparri East National High School. It covers the complete academic lifecycle: student enrolment, quarterly grade encoding, attendance, observed values, official form generation (SF9, SF10, E-Card, IIF), honor roll, year-end promotion/retention processing, and school-year rollover.
Access the system at https://aenhsinfosys.downstreamtech.net from any modern browser on desktop, tablet, or mobile. Students sign in with their 12-digit LRN; staff sign in with their school email.
3. User Roles & Portals
Every user has one or more roles. A teacher can simultaneously be a Subject Teacher and a Class Adviser โ the system shows both portals with a switch link.
| Role | Description | Lands on |
|---|---|---|
| Super Administrator | Full system access. Created during first-run setup. Manages users, school year lifecycle, settings, feature locks, activity logs, year-end rollover, and all data. | /admin |
| Subject Teacher | Has one or more subject assignments. Encodes the quarter-final grade per student for each class. | /teacher |
| Class Adviser | Owns a section for the current SY. Manages roster, attendance, observed values, class grade summary, and prints SF9 / SF10 / IIF for advisory students. | /adviser |
| Registrar | Views all student records. Prints SF9 / SF10 / E-Card for any student. | /registrar |
| Guidance Counsellor | Views every student's Individual Inventory Form (IIF), adds counselling notes, monitors academic risk. Can print the IIF. | /guidance |
| Student | Views own grades, report card (E-Card), attendance. Must complete the IIF on first login. Uses LRN to sign in. | /student |
4. RBAC Permission Matrix
Which features each role can access. SA = Super Admin, T = Subject Teacher, Adv = Class Adviser, R = Registrar, G = Guidance, S = Student.
| Feature | SA | T | Adv | R | G | S |
|---|---|---|---|---|---|---|
| Dashboard (role-specific) | Y | Y | Y | Y | Y | Y |
| Manage teachers (CRUD + import) | Y | โ | โ | โ | โ | โ |
| Manage students (CRUD + import) | Y | โ | โ | โ | โ | โ |
| Manage sections (CRUD) | Y | โ | โ | โ | โ | โ |
| Manage subjects (CRUD) | Y | โ | โ | โ | โ | โ |
| Manage strands (CRUD) | Y | โ | โ | โ | โ | โ |
| Manage subject assignments | Y | โ | โ | โ | โ | โ |
| View honor roll | Y | โ | โ | โ | โ | โ |
| Teacher-progress monitor + search | Y | โ | โ | โ | โ | โ |
| End-of-year + year rollover | Y | โ | โ | โ | โ | โ |
| System settings + feature locks | Y | โ | โ | โ | โ | โ |
| Activity logs (audit trail) | Y | โ | โ | โ | โ | โ |
| Delete / re-enrol / cross-section transfer student | Y | โ | โ | โ | โ | โ |
| Encode quarter-final grades | โ | Y | โ | โ | โ | โ |
| Submit/finalize a quarter | โ | Y | โ | โ | โ | โ |
| Enroll new student into own advisory section | โ | โ | Y | โ | โ | โ |
| Edit own advisees (name, address, parent, SF1) | โ | โ | Y | โ | โ | โ |
| Advisory roster + attendance + values | โ | โ | Y | โ | โ | โ |
| Class Grade Summary (summary + per subj) | โ | โ | Y | โ | โ | โ |
| Print SF1 School Register (own section) | โ | โ | Y | โ | โ | โ |
| Print Enrollment Slip (own advisees) | โ | โ | Y | โ | โ | โ |
| Print SF9 / SF10 / IIF for advisees | โ | โ | Y | โ | โ | โ |
| Print SF9 / SF10 / E-Card (any student) | Y | โ | โ | Y | โ | โ |
| View any student's full IIF | Y | โ | โ | โ | Y | โ |
| Print IIF for any student | Y | โ | โ | โ | Y | โ |
| Add counselling notes | โ | โ | โ | โ | Y | โ |
| View own grades / attendance / E-Card | โ | โ | โ | โ | โ | Y |
| Fill / update own IIF (photo + map pin) | โ | โ | โ | โ | โ | Y |
| Change own password, upload/remove avatar | Y | Y | Y | Y | Y | Y |
5. Logging In (Email or LRN)
The single login form at /login accepts either input format:
- Staff (super admin, teacher, adviser, registrar, guidance) โ sign in with their school email address.
- Students โ sign in with their 12-digit LRN (no @ symbol). The system auto-detects by counting digits.
Lockout kicks in after 5 wrong attempts (15-minute cooldown). First-time users are asked to change their password.
6. Super Admin Guide
The Super Administrator has unrestricted access. Only one or two people should hold this role. The account is created during the one-time /setup flow and can never be demoted or deleted through the UI.
6.1 First-run setup (one-time)
- Immediately after deploy, visit
/setupon the server's URL. - Enter your name, email, and a strong password (minimum 12 chars, mixed case + digit). This becomes the super_admin account.
- On submit, the setup endpoint is locked and cannot be re-used โ a 404 is served on any subsequent hit.
- Log in, go to Settings โ School, and fill the school name, School ID, division, region, district, principal name, and address. These values flow into SF1, SF9, SF10, and the Enrollment Slip headers.
6.2 Managing teachers
- Admin โ Teachers lists every staff account with search.
- Click + New teacher to add one by hand: employee ID, name, email, position. The system auto-creates a login account with the initial password = the employee ID (forced change on first sign-in).
- Bulk import via the Import CSV button.
Template:
employee_id, last_name, first_name, middle_name, email, position, role. Duplicates are skipped; errors are reported per-row. - Edit / archive teacher via the row actions. Archived teachers keep their historical grade records but can no longer sign in.
6.3 Managing students (admin-only operations)
- Day-to-day enrollment is now adviser-driven โ the adviser
captures SF1/BEEF fields during enrollment day (see the Class Adviser Guide
below). The admin only handles the irreversible operations:
- Delete a student record (soft-delete; recoverable by direct DB access).
- Change an LRN (reshapes the student's login username).
- Cross-section transfer (move a student between sections mid-year).
- Re-enrol a former student into a new SY / semester.
- Reset a student's password (issues a new one with the forced-change flag).
- Bulk import via Admin โ Students โ Import CSV.
Template:
lrn, last_name, first_name, middle_name, sex, date_of_birth, religion, address, phone, email, guardian_name, guardian_contact, section_code. Each imported student gets a generated password shown on the import result page (download as CSV for distribution).
6.4 Managing sections, subjects, strands, subject assignments
- Strands โ create one per DepEd track you offer (HUMSS, ABM, STEM, GAS, TVL, Sports, Arts). Fill code + name.
- Subjects โ create each subject with code, title, units, and which strand(s) it belongs to. Core subjects are shared across strands; specialized subjects are per-strand.
- Sections โ one row per class section (e.g. SEC-01, HUMSS 1 - 11 (Charity)). Assign grade level (11 / 12), strand, capacity, and the adviser (a teacher account). A teacher can adviser only one section per SY.
- Subject Assignments โ for each section ร subject, pick the subject teacher. This controls who sees which class in the Teacher portal.
6.5 School Year lifecycle
- Only one SY is active at a time. The active SY is the one advisers/teachers work against.
- Admin โ Settings โ School Year lets you create a new SY, mark it active, or close the current SY.
- Year rollover: run the End-of-Year flow first (see ยง6.7), then close the SY and create + activate the next one.
6.6 Feature locks (audit season)
- Toggle per-feature locks under Settings โ Feature Locks:
sf9,esf10,grades,attendance,values. - When ON, the matching feature returns 403 for everyone except super_admin โ used during DepEd audit / ranking periods when records must stay frozen.
- Activity logs capture each lock toggle with timestamp + user.
6.7 End-of-year + Year Rollover
- Go to Admin โ End of Year.
- Run the Promotion / Retention calculation โ the system applies DepEd rules (all subjects โฅ 75 = Promoted; 1โ2 subjects < 75 = Conditionally Promoted; 3+ < 75 = Retained). Review the per-student verdicts and override individual cases if the adviser/registrar has evidence (e.g. successful remedial).
- Lock in the verdicts โ this freezes the SY's records.
- Run the Honor Roll โ applies DO 36, s. 2016 (With Highest Honors โฅ 98, With High Honors โฅ 95, With Honors โฅ 90; all subjects โฅ 75).
- Create the next SY under Settings โ School Year, mark it active, then close the previous one.
- Advisers enrol returning G11 โ G12 students (Grade 12 section assignment is an admin action because it crosses grade levels).
6.8 Activity logs (audit trail)
- Admin โ Activity Logs shows an append-only record of every significant action: logins, logouts, student create/update, credentials generated, feature lock toggles, grade finalizations, IIF saves.
- Each row has
timestamp,user,action,resource,details(JSON),ip_address,user_agent. - Retention: 12+ months. No DELETE is possible via the UI โ an append-only trigger enforces it at the DB level.
6.9 Lost password / credential reset
- Student lost their temp password and the adviser's 5-minute reveal window expired: go to Admin โ Students, find the student, click Reset Password. A new 12-char password is generated and shown once in a yellow banner; hand it to the adviser to deliver.
- Staff lost their password: Admin โ Teachers โ Reset Password. Same pattern.
- Super admin lost their own password: no UI path โ connect to the DB host and
run the recovery SQL in
docs/ADMIN_RUNBOOK.md ยง7.
7. Subject Teacher Guide
Only for teachers with one or more subject assignments. If you are ALSO a class adviser, use the Switch Portal link in the sidebar to reach the Adviser Portal.
Encoding grades
- Go to My Classes โ click a class to open the grade-entry page.
- Both quarters are shown side-by-side with a live-computed Sem Avg column. Compute each student's quarter-final grade in your official e-class record, then type the whole number (60โ100) into the Q1 (or Q2) input.
- As soon as both quarters are encoded, the Sem Avg and a Remarks descriptor (Outstanding / Very Satisfactory / Satisfactory / Fairly Satisfactory / Did Not Meet Expectations) appear automatically.
- Click Save grades. Out-of-range values are rejected with a flash message; in-range values save immediately.
- When every student has the active-quarter grade encoded, click Submit Q#. That quarter becomes read-only and the Teacher Progress monitor flags the class as Finalized.
Quarter icons
- ๐ โ the quarter has been submitted, OR the administrator has applied a feature lock.
- โณ โ the quarter is not the active one yet.
- No icon โ open for editing.
8. Class Adviser Guide
Use the Adviser Portal (/adviser). If you are also a
subject teacher, the sidebar shows a "Switch Portal" link to jump to
/teacher for grade entry.
8.1 Advisory roster
- Landing page shows your section's students with quick โ๏ธ Edit ยท Slip ยท SF9 ยท SF10 ยท IIF buttons per row (same tab โ use the browser back button to return, or Ctrl+click for a new tab).
- Use the search box at the top to jump to a student by LRN or name.
- The ๐จ SF1 Register quick action prints the full section register (all learners, sorted by sex then last name).
8.2 Enrolling a new student (SF1 + BEEF)
This replaces the old bulk-import-only workflow. The adviser now encodes each new student during enrollment day with the official SF1 field set.
- The student (or parent) arrives at your room with their 12-digit LRN (verify on DepEd LIS if unsure). Go to โ Enroll student.
- Fill the Learner Information block:
- LRN (12 digits, auto-grouped as you type)
- Last / First / Middle name + Extension (Jr. / III). Title-case is applied on blur; compound surnames and Spanish particles (de, dela, del) format correctly.
- Sex, Date of Birth, Place of Birth, Mother Tongue, Religion.
- Fill the Current Address block: House No., Sitio/Street, Barangay, Municipality, Province, ZIP. Province and Municipality have typeahead from section history (sticks across enrollments in the same sitting).
- Fill the Contact, Father's Name, and Mother's Maiden Name blocks. Tick Deceased next to either parent if applicable โ this tag appears on the Enrollment Slip and adviser-facing IIF print, but NOT on the student's own IIF form (student answers "Yumao na?" independently) and NOT on the DepEd SF1 copy.
- Tick Legal Guardian different from parents only if needed (e.g. lives with uncle/aunt/grandparent). Use the Same as Father / Same as Mother quick-copy if convenient.
- Pick the Learning Modality: Face to Face (default), Modular, Blended, or Online.
- Tick any SF1 Remarks codes that apply:
- T/O Transferred Out โ reveals receiving school + last-attendance date
- T/I Transferred In โ reveals first-attendance date (previous school goes in Balik-Aral)
- CCT 4Ps/CCT recipient โ reveals control/reference number + effectivity
- B/A Balik-Aral โ reveals last school + grade + SY
- SNED Special Needs Education โ reveals exceptionality
- ACL Accelerated โ reveals level + effectivity
- Click Enroll student. The server saves the profile, creates the matching user account, and generates a 12-character random password.
- The Enrolled success page shows the Username (LRN) and Temporary password in a yellow box. You have 5 minutes to either write it down or click Open printable Enrollment Slip to print a hardcopy with the password baked in. After 5 minutes or a page reload, the password is gone forever โ admin would have to reset.
- Hand the printed Enrollment Slip to the student + parent for signatures.
8.3 Editing an existing advisee
- Click the โ๏ธ button on any row to correct identity, contact, address, parent, guardian, or SF1 remark details. All fields except LRN, section, and grade level are editable.
- Changing an LRN is a super-admin action (it reshapes the login username).
- Re-enrolment across semesters, cross-section transfers, and deletion are also super-admin-only.
8.4 Printing the Enrollment Slip
- Per-row Slip button on the advisory roster opens the printable A4/Folio-portrait slip with student profile, parent/guardian block, signature lines (Student / Parent / Adviser), and a dashed credentials box.
- If the Slip is opened within 5 minutes of enrollment, the temp password is printed automatically. After the window expires the credentials box shows a blank line for hand-writing (or instructions to request an admin reset).
- Use the browser Print / Save as PDF dialog. Paper is Long Bond (Folio) 8.5 ร 13" portrait.
8.5 Printing the SF1 School Register
- ๐จ SF1 Register quick-action on the advisory page renders the
DepEd-standard School Form 1 for your section:
- DepEd seal + official title + DepEd text banner
- Full header grid (School Name, ID, District, Division, Region, Semester, SY, Grade Level, Track/Strand, Section)
- Data table sorted by sex (M first, F second), name ascending
- TOTAL MALE / TOTAL FEMALE / COMBINED subtotal rows in the standard
<=== TOTAL Xformat - REMARKS legend (T/O, T/I, CCT, B/A, SNED, ACL) with required info
- REGISTERED table (M/F/Total ร Beginning/End of Semester)
- "Prepared by;" with your signature line + beginning/end semester date boxes
- Paper: Long Bond (Folio) 8.5 ร 13" landscape.
8.6 Attendance
- Go to Attendance in the adviser sidebar.
- Set school-day count per month (Jun โ Mar, 10 months) โ this stays the same for every student in the section.
- Record days absent per student per month. Absent counts auto-clamp to the school-day max.
- Months without a saved row render blank on the SF9 (not zero) so an unfinished attendance register doesn't look like "perfect attendance".
8.7 Observed Values
- Rate each DepEd core value (AO = Always Observed, SO = Sometimes Observed, RO = Rarely Observed, NO = Not Observed) for each student per quarter.
- Data appears on the printed SF9 (page 2) and SF10.
8.8 Class Grade Summary
- Summary โ general-average grid (students ร subjects) with Pending / Passed / Failed remarks. Hidden until every subject has both semesters encoded (so no misleading verdicts on partial data). Print button.
- Per Subject โ one row per subject with a Print button that opens a DepEd-style class record (Q1, Q2, Sem Avg ร 2 sems, Final, Remarks) for every student in the section.
8.9 Printing SF9 / SF10 / IIF
- Per-row buttons on the advisory roster. Each opens in the same tab.
- Use the browser's Print / Save as PDF dialog.
- If feature locks are on (set by the super admin for audit season), the button returns a 403 โ contact the admin.
9. Registrar Guide
- Go to Students โ searchable list of every enrolled and former student.
- Click a student to see their profile, then use SF9, SF10, or E-Card buttons to generate the form.
- Use the browser Print function (Ctrl+P / Cmd+P) to print or save as PDF.
- Feature locks apply to the registrar too (but not to the super admin).
10. Guidance Counsellor Guide
- Students โ full list, searchable. Each links to the student's IIF.
- The IIF view shows every section the student filled: ID photo, personal info, family, household (assets + marital status), siblings, academic, health, and a red-bordered Confidential Psychosocial card.
- If the student pinned their home on OpenStreetMap, a static map image is embedded (with a link to open in OpenStreetMap).
- A Counselling Notes form at the bottom lets you add dated notes with categories (Academic, Behavioral, Personal, Referral, Follow-up, Other). Mark sensitive notes Confidential.
- The Print IIF button (top-right) generates the A4-portrait DepEd-style form for the student's permanent record.
11. Student Guide
First login
- Your adviser handed you an Enrollment Slip at enrollment day. It has your 12-digit LRN (this is your username) and a temporary password.
- Go to
/login. Type the LRN in the identifier field โ the system auto-detects it as a student login (no @ symbol, no@aenhs.local). Type the temporary password and click Sign in. - You'll be redirected to Change initial password. Pick a new password (minimum 12 characters, with mixed case + a digit). Confirm it.
- After the change, you'll land on the Individual Inventory Form โ fill it out fully before any other page (dashboard, grades, etc.) unlocks. The form is pre-filled with the BEEF fields your adviser entered; review and complete the remaining sections.
Lost your temp password? Ask the adviser โ if it's within 5 minutes of enrollment, they can still reveal it. Otherwise the admin will reset it for you (you'll get a new temp password with the same forced-change flow).
Filling the IIF
- ๐ธ Larawan (ID Photo) โ click the dashed tile or drag-and-drop a JPG / PNG / WEBP (max 10 MB). The image becomes your profile photo AND the photo printed on your IIF.
- Impormasyong Personal โ date of birth, contact number, height/weight, religion, dialect, complete address.
- Lokasyon ng Tahanan (Map pin) โ type your address into the textbox, click "Find on map", then fine-tune by clicking/dragging the pin on the map (OpenStreetMap).
- Pamilya + Tagapag-alaga โ father, mother (tick "Yumao na" if deceased), guardian, marital status, extended family info.
- Mga Magkakapatid โ up to 9 siblings.
- Tahanan โ household assets, house material, occupants, who supports your studies.
- Akademiko / Pangkalusugan / Kompidensyal โ subjects you find easy/hard, plans after SHS, health history, any abuse/problems (kept confidential).
- Click Save form โ you'll land on your dashboard.
What you can do afterwards
- Dashboard โ current enrollment, general average, honor status.
- My Grades โ all subjects with Q1/Q2 grades, sem average, descriptor.
- Report Card (E-Card) โ print-ready report card (Ctrl+P).
- Attendance โ month-by-month record.
- IIF Form โ come back anytime to update your info or replace your photo.
- My Profile โ change password or remove your profile pic (this does NOT blank your IIF photo โ the two are tracked independently).
12. DepEd Compliance Notes
Grading (DO 8, s. 2015)
Quarter grades follow the DepEd 3-component formula (Written Work / Performance Task / Quarterly Assessment with category-specific weights) and Appendix B transmutation. In v1.2.0 the teacher computes this in their official e-class record and encodes the transmuted final directly into the system โ we no longer duplicate the weighting math here. This matches DepEd memorandum practice of keeping the class record as the authoritative artifact.
Descriptors (DO 8, Table 6)
- 90โ100: Outstanding
- 85โ89: Very Satisfactory
- 80โ84: Satisfactory
- 75โ79: Fairly Satisfactory
- 60โ74: Did Not Meet Expectations
Passing grade: 75.
Honors (DO 36, s. 2016)
- With Highest Honors: General Average โฅ 98, all subjects โฅ 75
- With High Honors: General Average โฅ 95, all subjects โฅ 75
- With Honors: General Average โฅ 90, all subjects โฅ 75
Promotion rules
- All subjects โฅ 75 โ Promoted (or Graduated for G12)
- 1โ2 subjects < 75 โ Conditionally Promoted (requires remediation)
- 3+ subjects < 75 โ Retained
13. Backup & Disaster Recovery
Admin-scope. These procedures protect the school's data against hardware failure, accidental deletion, ransomware, and migration errors. The global policy is daily automated backups with weekly automated restore verification โ both are already wired into the repository.
13.1 Policy
- Frequency: nightly, 02:15 Asia/Manila (via cron).
- Retention tiers:
- Daily: 7 rolling days
- Weekly: 4 Sundays (one snapshot per week)
- Monthly: 12 months (one snapshot on the 1st)
- Restore verification: every Monday 03:00 a throwaway Postgres container restores the newest daily backup and sanity-checks it. Cron mail surfaces any failure.
- Off-site: copy
/home/richard/backups/anhs/to a separate host (NAS / remote rsync) at least weekly. The sample cron snippet indocs/ADMIN_RUNBOOK.mdincludes an optionalrsyncline to a NAS.
13.2 What each backup contains
Each backup is a single .tar.gz bundle containing:
db.sql.gzโ gzippedpg_dumpof the entire database (every student, grade, attendance, IIF answer, audit log, settings row).uploads/โ verbatim copy of every user-uploaded file (student profile photos underavatars/, IIF photos underiif-photos/).MANIFEST.txtโ human-readable inventory + restore instructions you can read with any text editor.
What's not in the bundle: the .env file
(DB password, app secrets) โ back that up separately and store it
offline. Application code + Docker images come from git + the
registry, so a fresh docker compose up rebuilds them.
13.3 Scripts in the repo
scripts/backup-db.shโ runspg_dumpagainst the composedbservice, copiesstorage/uploads/alongside, writes a single.tar.gzbundle to the daily tier, promotes to weekly on Sundays and monthly on the 1st, then prunes each tier to its retention cap. Idempotent; fails loudly.scripts/restore-test.shโ starts a freshpostgres:16-alpinecontainer namedanhs-restore-verify, extracts the newest bundle, restoresdb.sql.gzinto it, and queriesschema_migrationsfor a non-empty result. Cleans up on exit.
13.4 Installing the cron jobs (one-time)
On the prod host, run crontab -e and add:
# Daily backup at 02:15 15 2 * * * cd /home/richard/docker-apps/active/anhsinfosys && bash scripts/backup-db.sh >> /home/richard/backups/anhs/backup.log 2>&1 # Weekly restore verification at 03:00 every Monday 0 3 * * 1 cd /home/richard/docker-apps/active/anhsinfosys && bash scripts/restore-test.sh >> /home/richard/backups/anhs/restore-test.log 2>&1
13.5 Running a one-off backup
cd /home/richard/docker-apps/active/anhsinfosys bash scripts/backup-db.sh
Tails to stdout. Successful output looks like:
[2026-04-15T02:15:00+08:00] Starting pg_dump for anhs@db [2026-04-15T02:15:03+08:00] Wrote 142K โ /app/storage/backups/anhs/daily/anhs-2026-04-15_021500.tar.gz (uploads: 84 files) [2026-04-15T02:15:03+08:00] Backup complete.
13.6 Verifying a backup is restorable
bash scripts/restore-test.sh
Exit code 0 = PASS, 1 = no backup found, 2 =
unusable dump (schema_migrations empty). Safe to run any time โ uses a throwaway
container and never touches the live DB.
13.7 Restoring from a backup (destructive)
โ This overwrites both the live database AND the uploaded files. Notify staff first and take a fresh manual backup before restoring.
# 1. Take a safety snapshot first bash scripts/backup-db.sh # 2. Stop the app so no writes happen during restore docker compose stop app web # 3. Extract the chosen bundle into a temp dir mkdir /tmp/anhs-restore && cd /tmp/anhs-restore tar -xzf /home/richard/docker-apps/active/anhsinfosys/storage/backups/anhs/daily/anhs-YYYY-MM-DD_HHMMSS.tar.gz # 4. Restore the database gunzip -c db.sql.gz \ | docker compose -f /home/richard/docker-apps/active/anhsinfosys/docker-compose.yml exec -T db psql -U anhs -d anhs # 5. Restore the uploaded files (avatars + IIF photos) rsync -a uploads/ /home/richard/docker-apps/active/anhsinfosys/storage/uploads/ # 6. Bring the app back cd /home/richard/docker-apps/active/anhsinfosys docker compose start app web # 7. Smoke-test curl -fsS https://aenhsinfosys.downstreamtech.net/health
Each bundle's MANIFEST.txt contains the exact restore commands
โ open it with any text editor before you run anything destructive.
13.8 Recovery priorities
- RPO (max data loss acceptable): 24 hours โ the gap between nightly backups.
- RTO (max downtime acceptable): 1 hour โ time to restore the newest backup and bring the stack back.
- For tighter RPOs, enable Postgres WAL archiving (see ADMIN_RUNBOOK ยง8) โ optional, not yet wired by default.
Credits
AENS InfoSys was conceptualized and researched by Gina S. Rosal, MSIT of Aparri East National High School as her successfully-defended graduate-thesis research project, addressing the school's need for a DepEd-compliant Senior High School Student Information System. The requirements, the DepEd form templates (SF9, SF10, IIF), and the day-to-day workflow it automates all come from her direct experience as a teacher and designated school administrator.
Thesis Adviser: Richard R. Ayuyang, PhD โ Professor II, Cagayan State University ยท chadlinuxtech.net
Design, development, and long-term maintenance: DownStreamTech ยท downstreamtech.net