← Return to the bursary portal
Trig8 Limited (Bursary App)

Product Changelog

A brief history of new features, workflow improvements, and fixes released for the bursary application.

Version 3.5

Paystack Online Payment Integration

Forte Bursary can now generate and email secure school-fee payment links, accept parent payments remotely through Paystack, post verified transactions automatically, and provide public printable receipts or clear failure details without requiring parent portal access.

Added

  • Added a staff Payment Links workspace with student search, outstanding-balance validation, configurable amounts, expiration periods, email delivery, copyable links, and transaction status tracking.
  • Added a branded public payment page where parents can review the student, academic period, amount, and expiry before entering Paystack checkout.
  • Added public success receipts that parents can print or save and a dedicated unsuccessful-payment page with stored gateway reasons.
  • Added Paystack callback verification and a signed charge.success webhook for automatic portal updates even when a parent does not return to the callback page.
  • Added a payment_links ledger, Paystack payment mode, server-side configuration template, deployment migration, and installation guide.
  • Added a closable one-time login announcement for Forte Bursary App 3.5 that introduces the new online payment processor and credits Trig8 Ltd. as the developer.

Improved

  • Integrated successful online payments with existing student balances, payment histories, receipts, dashboards, and reports.
  • Presented the Payment Links workspace with a consistent desktop sidebar and collapsible tablet/mobile navigation.
  • Enabled Directors to delete Paystack-generated test payments and other payment records from Director Payments, safely unlinking related payment links and preserving the current 3.5 release line. Completed 2026-07-17 at 10:36:42 WAT.
  • Completed the Paystack integration release on 2026-07-17 at 10:13:55 WAT.

Security

  • Kept the Paystack secret key server-side and excluded paystack.local.php from source-control and deployment exports.
  • Added CSRF protection, class-access checks, cryptographically random public tokens, exact amount/currency/reference verification, webhook HMAC SHA-512 validation, and HTTPS-only callback generation.
  • Made successful payment posting idempotent with database row locking so webhook retries cannot create duplicate ledger entries.
Version 3.4

Student Promotion & Academic Progression

Students can now progress into a new academic session through controlled promotion batches while previous placements and financial records remain historically accurate.

Added

  • Added a Director-only Student Promotion workspace.
  • Added Promote, Repeat Class, and Graduate / Alumni decisions for individual students.
  • Added automatic next-class suggestions for Early Years, Primary, Junior Secondary, and Senior Secondary pathways.
  • Added promotion batches and per-student promotion records for permanent traceability.
  • Added academic enrollment history for each student.
  • Added Session and Term context to special fees.

Improved

  • Updated student directories, fee collection, balances, dashboards, receipts, and reports to use historical enrollment placement.
  • Allowed exceptional target-class overrides before a promotion batch is processed.
  • Kept admission numbers and student identities unchanged across academic sessions.
  • Improved the Dashboard sidebar so its scrollbar stays hidden until the menu is hovered or receives keyboard focus.
  • Added branded PDF and Excel exports to Reports, including all filtered results, formatted tables, totals, and automatic portrait or landscape page orientation.
  • Made the Dashboard responsive across tablets and smartphones with a collapsible mobile menu, adaptive cards, charts, alerts, and modal tables while preserving the desktop layout. Completed 2026-07-15 11:07:26 WAT.
  • Extended the hover-only sidebar scrollbar upgrade to every page using the shared navigation, with keyboard-focus support and centralized styling. Completed 2026-07-17 08:49:29 WAT.

Data Integrity

  • Promotion updates the current student placement without overwriting the completed session enrollment.
  • Repeaters remain in the same class in the receiving session.
  • Graduating students are marked Alumni without deleting their academic or financial history.
  • Promotion batches run inside database transactions to prevent partial processing.
Version 3.3

Comprehensive System Audit Trail

Significant application activity is now recorded automatically for accountability, investigation, dispute resolution, and fraud detection.

Added

  • Added centralized automatic logging for mutating requests across the application.
  • Added a direct-URL System Audit Trail page with searching, filters, pagination, status summaries, and expandable value inspection.
  • Added user identity, role, action, module, record hints, timestamp, IP address, browser, session, request ID, duration, and HTTP status capture.
  • Added previous-value snapshots for supported edit and delete workflows.
  • Added explicit successful and failed login-attempt recording.

Improved

  • Reduced the need for feature-specific logging code by loading audit capture from the shared database bootstrap.
  • Added automatic action and affected-record detection from request context.
  • Kept the audit viewer outside the sidebar and application navigation as requested.

Security

  • Automatically redacts passwords, tokens, secrets, cookies, authorization values, and API keys from captured request data.
  • Records failed requests and fatal application errors for investigation.
Version 3.2

Dynamic Discount Code Management

Tuition discounts are now configurable from the application, allowing new eligibility rules and percentages without source-code changes.

Added

  • Added a Director-only Discount Code Management page.
  • Added configurable discount names, internal codes, percentages, descriptions, and active status.
  • Added dynamic discount selections to Student Registration and Student Editing.
  • Added automatically generated dashboard cards for every configured discount category.

Improved

  • Centralized discount calculations across payments, balances, receipts, reports, and student fee summaries.
  • Enabled Bursars to apply active discount codes without permission to create or edit the rules.
  • Preserved existing Teacher’s Kid and Third/Fourth Child assignments during migration.

Fixed

  • Removed hard-coded 50% discount calculations from financial and reporting workflows.
  • Ensured outstanding balances reflect each student’s configured discount percentage.
  • Prevented inactive or unknown discount codes from being assigned to new students.

Data Integrity

  • Deactivating a code now hides it from new assignments while preserving students already using it.
  • Renaming an internal code safely updates existing student assignments.
Version 3.1

Academic Sessions & Terms Management

A major academic-record upgrade introducing session-based term management, school-wide working defaults, and reliable historical reporting.

Added

  • Introduced Academic Sessions as the parent structure for First, Second, and Third Term.
  • Added a redesigned Sessions & Terms management page for creating, editing, archiving, and restoring academic sessions.
  • Added automatic creation of First, Second, and Third Term when a new academic session is created.
  • Added Director controls for selecting the school-wide default Academic Session and active Term.
  • Added term activation and deactivation controls within each academic session.
  • Added historical review mode so Bursars can view records from previous sessions and terms without changing the school-wide defaults.
  • Added a persistent Session and Term indicator to the application navigation.

Improved

  • Updated student records, fees, payments, receipts, dashboards, and reports to use the selected Academic Session and Term.
  • Updated Fees Master so terms are filtered by their selected parent session.
  • Improved the dashboard to display meaningful Session and Term names instead of internal database IDs.
  • Improved role permissions so only the Director can modify academic setup while Bursars retain view-only historical access.

Fixed

  • Removed hard-coded Session ID 1 and Term ID 1 from academic and financial workflows.
  • Prevented terms from being assigned to fee records belonging to a different academic session.
  • Prevented the current default session from being archived until another session is selected as default.
  • Prevented the current default term from being deactivated.
  • Prevented duplicate academic-session names and duplicate term names within the same session.

Data Integrity

  • Preserved existing Session and Term IDs so previously recorded academic and financial data remains linked correctly.
  • Scoped new students, fee records, payments, receipts, and reports to their correct Session and Term.
  • Replaced destructive term deletion with archive and activation controls to protect historical records.
Version 3.0

Inventory, accessibility and administration upgrade

A major operational release focused on school supplies, clearer workflows, and stronger Director controls.

Added

  • Introduced a separate Supply Inventory module for school-use consumables that are not sold to students.
  • Added decimal supply measurements, restock levels, usage records, supply records, and complete movement history.
  • Enabled Bursars and Secondary Bursars to record supply usage while Director-only controls remain protected.
  • Added automatic low-supply and depleted-item email alerts for the Director.
  • Added configurable Director supply-alert email settings.
  • Added an “All Classes — Primary & Secondary” access option for individual Bursar accounts.
  • Added configurable favicon upload and preview under App Configuration.
  • Added this project-wide Changelog page and footer link.

Improved

  • Redesigned payment confirmation to appear centrally with a larger, darker payment amount and clearer final confirmation.
  • Moved class editing into a responsive popup for a cleaner Classes workflow.
  • Improved Director dashboard visibility for supplies requiring restocking.
  • Expanded Admin user listings to show module and class-access permissions more clearly.
  • Applied configurable branding, including the favicon, to authenticated and public pages.

Fixed

  • Prevented supply usage from reducing an item below zero.
  • Prevented Bursars from adding, editing, or restocking supplies through direct requests.
  • Prevented repeated Director emails for the same low-supply event until the item is restocked.
  • Kept Supply Inventory records fully separate from sellable Stock Inventory records.