InstitutionKit v1.2.1

The Unified Cloud ERP for Educational Excellence โ€” Complete Multi-Campus School Management for WordPress

InstitutionKit is a complete multi-campus school management ERP built natively for WordPress. It transforms your WordPress installation into a powerful educational management platform with unlimited campuses, 62 custom capabilities, and 40+ database tables.

๐Ÿ›๏ธ

Multi-Campus Architecture

Unlimited campuses with complete data isolation and aggregated reporting.

๐Ÿ›ก๏ธ

Granular Role System

5 roles, 62 capabilities โ€” every user sees exactly what they need.

๐Ÿ’ฐ

Complete Financial Suite

Fees, invoices, expenses, payroll, loans, budgets โ€” all integrated.

๐Ÿ“

Advanced Exam Module

7 categories, verification workflow, PDF report cards, analytics.

Who Is This For?

UserCapabilities
Super AdminFull system control, all campuses, all 62 capabilities
Campus AdminManage their campus โ€” students, staff, fees, attendance (48 capabilities)
TeacherMark attendance, enter grades, assign homework, manage meetings (14 capabilities)
Finance ManagerManage expenses, process payroll, track collections, set budgets (16 capabilities)
ParentView child's grades, attendance, homework, invoices, book meetings (4 capabilities)
๐Ÿ“ž Need Help?

Website: institutionkit.com | Phone: +92 300 455 1325 | Email: [email protected]

Installation

Complete guide to installing InstitutionKit on your WordPress site.

System Requirements

RequirementMinimumRecommended
WordPress5.8+6.4+
PHP7.48.1+
MySQL5.78.0+ / MariaDB 10.4+
PHP Memory128MB256MB+
Max Execution Time60s300s
PHP Extensionsmysqli, curl, dom, mbstring, gd
โš ๏ธ Memory Warning

Multi-campus environments should allocate 256MB+. Payroll generation and PDF report cards are memory-intensive.

Installation Steps

1. Upload the Plugin

Via WordPress Admin: Go to Plugins โ†’ Add New โ†’ Upload Plugin, choose institutionkit.zip, click Install, then Activate.

Via FTP: Extract and upload to /wp-content/plugins/, then activate from Plugins menu.

2. Automatic Setup

Upon activation, InstitutionKit creates 40+ custom database tables, registers 5 custom post types (ik_student, ik_class, ik_exam, ik_certificate, ik_period), registers 2 taxonomies, creates 5 user roles, inserts default data, and creates the default "Main Campus".

โœ… After Activation

You'll be automatically redirected to the InstitutionKit Dashboard.

Troubleshooting

Tables not created: Go to Settings โ†’ System Status โ†’ Recreate Tables.

Memory exhausted: Add to wp-config.php:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Quick Setup Guide

Configure InstitutionKit for your school in under 30 minutes.

Step 1: Configure Your Campus

Go to InstitutionKit โ†’ Campuses. Edit "Main Campus":

FieldExample
Campus Name"Springfield Elementary"
Campus Code"SE"
AddressFull campus address
Phone+1 555-0123
Email[email protected]
Principal Name"Dr. Robert Langdon"

Step 2: Classes

Go to Setup โ†’ Classes. Add "Grade 1", "Grade 2", etc.

Step 3: Subjects

Go to Setup โ†’ Subjects. Add Mathematics, English, Science and assign to classes.

Step 4: Sections (Optional)

Go to Setup โ†’ Sections. Add "A", "B", "C".

Step 5: Grading Periods

FieldMonthly ExampleExam Example
Title"October Assessment""First Term Exam"
Period TypeMonthlyExam
Weight1.003.00

Step 6: Grade Scale

%GradeGPA
90-100A+4.00
85-89A4.00
80-84A-3.70
77-79B+3.30
73-76B3.00
70-72B-2.70
67-69C+2.30
63-66C2.00
60-62C-1.70
50-59D1.00
0-49F0.00

Step 7: Fee Types & Structures

Create fee types (Tuition, Transport, Library) and structures with amounts per class at Fee Management.

Step 8: Add Staff

Go to Payroll & Expenses โ†’ Staff. Add staff with name, email, role, campus, and contract type. Teaching staff automatically get WordPress accounts with welcome emails.

Step 9: School Settings

Set currency symbol, school hours, and academic year at InstitutionKit โ†’ Settings.

License Activation

Activate your license to receive updates and premium support.

StateEffect
InactiveYellow banner reminder on all IK pages
ActiveNo banner. Full updates and support access.
ExpiredWarning banner. System works but updates paused.
โ„น๏ธ No Feature Lockout

All features remain functional regardless of license status.

Activation Steps

  1. Go to InstitutionKit โ†’ Settings โ†’ License
  2. Enter your key (format: IK-XXXX-XXXX-XXXX-XXXX)
  3. Click Activate License

Troubleshooting

IssueSolution
Invalid KeyCopy-paste from email. License tied to registered domain.
Connection FailedAllow outbound connections to institutionkit.com on port 443.
Already in UseContact support to transfer license.

Multi-Campus Architecture

True multi-tenancy โ€” unlimited campuses with complete data isolation.

Core Principles

PrincipleImplementation
Data IsolationEvery table includes campus_id as partition key
Role-Bound VisibilityCampus Admins SQL-restricted to their campus
Independent ConfigFee structures, heads, scales โ€” all per-campus
Aggregated ViewSuper Admins toggle single or "All Campuses"
Audit TrailEvery transfer permanently logged

Two-Tier Admin Model

RoleAccess
Super AdminAll campuses + aggregated view. Can switch via admin bar, dashboard, or URL.
Campus AdminSingle assigned campus only. Switcher hidden. URL override ignored.
๐Ÿ”ด Critical Rule

If a user has both administrator and campus_admin roles, they become a Super Admin.

Data Partitioning Layers

Custom Tables

SELECT * FROM wp_institutionkit_attendance WHERE campus_id = 3;

Post Meta

SELECT p.ID FROM wp_posts p JOIN wp_postmeta pm ON p.ID = pm.post_id WHERE pm.meta_key = '_ik_campus_id' AND pm.meta_value = 3;

Application Context

$campus_id = IK_Campus_Manager::get_current_campus_id(); // 0=All, 1-99=specific

Cross-Campus Financial Intelligence

MetricFormula
RevenueSum of all collections
Direct ExpensesCampus-paid expenses
PayrollTotal staff costs
Net SurplusRevenue โˆ’ Expenses โˆ’ Payroll
Profit Margin(Net Surplus รท Revenue) ร— 100
Cost Per StudentTotal Costs รท Student Count

Roles & Capabilities

62 custom capabilities across 5 user roles with granular access control.

Role Comparison

AreaAdminCampus AdminTeacherFinanceParent
Total Caps624814164
StudentsFullFullViewโ€”โ€”
StaffFullAttendanceโ€”โ€”โ€”
FeesFullView+Payโ€”FullView Own
ExamsFullEntry+CardsEntry+Cardsโ€”โ€”
PayrollFullReportsโ€”Fullโ€”
ExpensesFullBasicโ€”Fullโ€”
GradebookFullFullFullโ€”View Own
AttendanceFullFullStudentโ€”โ€”
HomeworkFullFullAssign+Viewโ€”โ€”
MeetingsFullFullCreate+Viewโ€”Book Own
SettingsFullCampusโ€”โ€”โ€”
๐Ÿ’ก Admin Override

manage_options capability (WordPress administrator) bypasses all InstitutionKit capability checks.

Campus Management Deep-Dive

Technical architecture of campus context, data partitioning, and the campus switcher.

Campus Context Lifecycle

// Runs on every admin page load at priority 5
IK_Campus_Manager::determine_current_campus();

// Returns 0 for "All Campuses", 1-99 for specific campus
$campus_id = IK_Campus_Manager::get_current_campus_id();

SQL Filtering

// For custom tables โ€” returns " AND i.campus_id = 3" or ""
$where = IK_Campus_Manager::get_campus_where_clause('i');

// For WordPress posts โ€” returns meta query fragments
$filter = IK_Campus_Manager::get_campus_sql_filter();
$join = IK_Campus_Manager::get_campus_join_clause();

Campus Switcher

Super Admins access the switcher from Admin Bar (location icon dropdown), Dashboard (inline form dropdown), or URL parameter (?campus_id=X). Campus selection persists via 1-hour transient.

Transient Persistence

set_transient('ik_current_campus_' . $user_id, $campus_id, HOUR_IN_SECONDS);
$saved = get_transient('ik_current_campus_' . $user_id);

Database Schema

40+ custom tables powering every module of InstitutionKit.

Table Organization

ModuleTablesKey Tables
Fee Management5institutionkit_fee_types, institutionkit_fee_structures
Invoicing4institutionkit_invoices, institutionkit_transactions
Attendance2institutionkit_attendance, institutionkit_staff_attendance
Gradebook4ik_grades_v2, ik_periods, ik_grade_scales
Exams4ik_exam_types, ik_exam_schedules, ik_exam_results
Payroll & Expenses9institutionkit_staff, institutionkit_payroll
Campus3institutionkit_campuses, institutionkit_campus_users
Communications5institutionkit_announcements, institutionkit_events
Meetings3institutionkit_meeting_slots, institutionkit_meeting_bookings
Homework2institutionkit_homework, institutionkit_homework_submissions

Key Unique Constraints

TableConstraintPrevents
institutionkit_staff_attendance(staff_id, attendance_date)Duplicate daily attendance
ik_grades_v2(student_id, subject_id, period_id)Duplicate grades per period
ik_exam_results(schedule_id, student_id)Duplicate exam results
institutionkit_payroll(staff_id, campus_id, payroll_month)Duplicate monthly payroll

Custom Post Types & Taxonomies

5 CPTs and 2 taxonomies for core educational entities.

Custom Post Types

CPTSupportsPurpose
ik_studenttitle, thumbnailStudent records with 20+ meta fields
ik_classtitleClass/grade levels (hierarchical)
ik_examtitleLegacy exam posts (superseded by Exam Pro tables)
ik_certificatetitleCertificate design templates
ik_periodtitleGrading periods with type, dates, weight, published status

Taxonomies

TaxonomyTypeAssigned To
ik_subjectHierarchicalik_class
ik_sectionNon-hierarchical (flat)ik_class
โš ๏ธ Teacher CPT Removed

The ik_teacher CPT was removed in v1.2.0. All staff data now resides in institutionkit_staff table.

Security Model

7-layer security architecture protecting every aspect of the system.

Security Layers

  1. WordPress Authentication โ€” Every page requires valid login
  2. Role Verification โ€” Role-specific access checks
  3. Capability Enforcement โ€” 62 granular capabilities
  4. Campus Boundary โ€” SQL-level data isolation
  5. Nonce Verification โ€” CSRF protection on all forms
  6. Data Sanitization โ€” All input sanitized before processing
  7. SQL Escaping โ€” All queries use $wpdb->prepare()

Capability Check Pattern

private function verify_access($caps) {
    if (current_user_can('manage_options')) return;
    if (is_string($caps) && current_user_can($caps)) return;
    if (is_array($caps)) {
        foreach ($caps as $cap) {
            if (current_user_can($cap)) return;
        }
    }
    wp_die('Permission denied.');
}

Dashboard

Command center with real-time stats, attendance, financial summaries, and quick actions.

The dashboard displays 4 key stat cards (Students, Teachers, Classes, Subjects), today's attendance for both students and staff with clickable drill-downs, a 7-day attendance trend chart, fee management summary (outstanding, collected, overdue, collection rate), announcements, upcoming events, performance charts, outstanding fees by class, recent payments, and 9 quick action buttons.

Fee Summary Cards

CardFormula
Total OutstandingSUM(total_amount - amount_paid) WHERE status != 'paid'
Total Collected (MTD)SUM(transactions) for current month
Overdue InvoicesCOUNT WHERE due_date < today AND status != 'paid'
Collection Rate(Collected รท Total Billed) ร— 100

Student Management

Complete student lifecycle โ€” admission, attendance, promotion, certificates.

The Student Management dashboard provides 12 action cards: All Students, Add New Student, New Admission, Homework, Student Attendance, Gradebook, Campus Transfer, Student Promotion, Assign Homework, All Grading Periods, Certificates, and Attendance Report.

Student Meta Fields

Students are stored as ik_student posts with 20+ meta fields including class, campus, roll number, date of birth, gender, guardian information, parent contacts, address, and emergency contact.

New Admission

Process new student enrollments with full data collection.

Access via Student Management โ†’ New Admission (admin) or [institutionkit_admission_form] shortcode (frontend). The form collects student information (name, DOB, gender, class), guardian details, parent contacts, ID card (validated as 13-digit), and address.

Validation Rules

FieldRule
Student NameRequired, min 2 characters
Date of BirthRequired, valid date
EmailValid email format
ID Card13-digit numeric, no dashes
ContactAt least one parent contact required

Student Attendance

Daily attendance tracking with four status options.

Access via Student Management โ†’ Attendance (admin) or [institutionkit_attendance] shortcode (frontend). Status options: Present, Absent, Late, On Leave. Remarks field dynamically shown for Late/Leave status.

Teachers are campus-restricted via primary_campus_id from the staff table. After saving, the frontend form becomes read-only showing who submitted and when.

Student Promotion

End-of-year class advancement with full history tracking.

Promotions move students between classes and record the transition in ik_student_promotions with academic year, performance percentage, status (promoted/retained), and the promoting user. Supports bulk promotion and individual promotion with manual override.

Certificates

Generate Leaving, Character, Achievement, and Employment certificates.

Four certificate types supported: Leaving Certificate, Character Certificate, Achievement Certificate, Employment Certificate. Each certificate gets a unique number. Public verification available via [ik_certificate_verify] shortcode.

Teacher & Staff Management

Complete staff lifecycle โ€” hiring, contracts, attendance, meetings.

All staff are stored in institutionkit_staff table (not WordPress posts). 8 predefined roles: Permanent Teacher, Visiting Teacher, Campus Head, Office Staff, Roving Admin, Maintenance, Security, Other. Teaching roles automatically get WordPress user accounts with welcome emails.

Staff Records

Add, edit, and manage all staff members.

The Add/Edit Staff modal includes 7 sections: Personal Information, Profile Photo (WordPress media library), Salary Information (dynamic fields per contract type), Bank Details, Emergency Contact, Salary Components (flexible earnings/deductions), and Loans. Employee codes auto-generate as EMP{YY}{XXXX}.

Contract Types

TypePayroll BasisAttendance Impact
Monthly FixedFixed salary minus absence deductionsFirst absence free, then per-day deduction
HourlyHours worked ร— hourly rateDirect โ€” unpaid for hours not worked
Per LectureLectures ร— lecture rateDirect โ€” unpaid for undelivered lectures

Staff Attendance

Daily staff attendance with time tracking.

Records check-in, check-out, hours worked, and lectures delivered. Status options: Present, Absent, Half Day, Leave. Check-in/out auto-filled from school operating hours. Emergency contact displayed for Absent/Leave status. Bulk actions: Mark All Present/Absent/Leave.

Parent-Teacher Meetings

Slot creation, parent booking, topic management, and feedback.

Teachers create availability slots with date, time, duration, max bookings, and location. Parents book via Parent Portal with topic selection. 10 predefined discussion topics included. Booking increments current_bookings; slots auto-mark as "Full" when capacity reached.

Teacher Comments

Two-way communication between teachers and parents.

Teachers leave comments about students with type classification (General, Academic, Behavioral, Attendance). Parents view comments in Parent Portal and can respond. Read status tracked. Comments reference staff_id from the staff table.

Fee Management

Complete financial lifecycle โ€” fee types, structures, invoices, payments.

Four action cards: Fee Types (define categories), Fee Structures (group types with amounts per class), Assign Fees (apply to students individually or by class), Invoices (generate and manage bills). Auto monthly invoice generation via cron on the 1st of each month at 06:00.

Fee Types

Define categories of fees your institution charges.

Simple name-based definition. Common types: Tuition Fee, Admission Fee, Exam Fee, Transport Fee, Library Fee, Sports Fee, Computer Lab Fee, Development Fee. Fee types flow through: Types โ†’ Structures โ†’ Student Assignments โ†’ Invoice Items.

Fee Structures

Group fee types with amounts into reusable billing templates.

Example: "Primary Monthly Fees" = Tuition (3,500) + Transport (1,000) + Library (200) = 4,700. Structures can differ per class level, campus, or academic year. Assigned to students individually or by class/campus.

Invoices

Generate, track, and manage student invoices with PDF download.

Invoice status flow: Unpaid โ†’ Partial โ†’ Paid. Payment recording validates against balance due โ€” cannot overpay. AJAX payment updates UI dynamically. PDF download with Dompdf. Overdue reminders via cron and manual trigger. Campus-restricted for staff.

Invoice Status Colors

StatusColor
PaidGreen (#28a745)
UnpaidRed (#dc3545)
PartialYellow (#ffc107)

Exams Management

Complete examination system โ€” 7 categories, scheduling, verification workflow.

Workflow: Create Exam Types โ†’ Schedule Exams โ†’ Enter Results โ†’ Verify โ†’ Publish โ†’ Generate Report Cards โ†’ Analytics. Results workflow: Draft โ†’ Submitted โ†’ Verified โ†’ Published. 7 categories: Term, Midterm, Final, Monthly, Board, Quiz, Assessment.

Exam Types

Define exam categories with marks and weight configuration.

Properties: Name, Category (7 types), Max Marks (default 100), Weight Percentage (for final calculation). Soft delete protection โ€” types used in schedules are deactivated instead of deleted. Campus-scoped.

Exam Schedule

Create date sheets with subjects, times, rooms, and invigilators.

Fields: Exam Type, Class, Subject, Date, Start/End Time, Room Number, Invigilator, Max Marks, Passing Marks. Status: Draft or Published. Published schedules appear in result entry dropdowns.

Result Entry

Enter marks, verify, and publish exam results.

Grade auto-calculation as marks are entered. Status workflow: Draft (teacher editing) โ†’ Submitted (ready for verification, locked) โ†’ Verified (checked by verifier) โ†’ Published (visible to students/parents). Unique constraint: one result per student per exam schedule.

Report Cards

Generate comprehensive report cards with PDF download.

Includes: Student info, subject-wise marks, total, percentage, GPA, class rank, attendance percentage, teacher/principal remarks. Supports individual and bulk generation. PDF via Dompdf with watermark.

Exam Analytics

Class performance, subject analysis, student tracking, comparisons.

Four views: Class Performance (averages by class), Subject Analysis (performance by subject), Student Performance (individual progress tracking), Comparative Analysis (cross-exam/cross-campus comparison). Data sourced from exam results, schedules, and report cards.

Payroll & Expenses

Complete financial suite โ€” payroll, expenses, budgets, collections.

Module architecture uses 12 traits: Core_Setup, Render_Dashboard, Render_Expenses, Render_Staff, Render_Payroll, Render_Financial, Ajax_Handlers, Helpers, Salary_Structure, Loans, Payslips, PDF_Export. 18 AJAX endpoints registered. Dashboard data cached for 5 minutes via transients.

Payroll Dashboard

Financial overview with stats, charts, comparisons, and alerts.

Four stat cards: Revenue (MTD), Expenses (MTD), Payroll (MTD), Net Surplus. Charts: Monthly trend (6 months), Expense breakdown (top 5 heads), Campus comparison. Automated alerts: budget overruns, unbudgeted expenses, large transactions, missing recurring, spending spikes.

Staff Management (Payroll)

Employee records with contracts, salary components, and loans.

Staff modal with 7 sections. Auto-account creation for teaching/admin roles with welcome email. Employee codes: EMP{YY}{XXXX}. Flexible salary components (earnings + deductions). Complete loan management with EMI auto-calculation and payroll deduction.

Payroll Processing

Generate monthly payroll with automatic calculations.

Payroll = Base Salary (from contract) + Salary Components - Attendance Deductions - Loan Deductions - Income Tax. Income tax brackets: 0% (โ‰ค50k), 2.5% (50k-100k), 12.5% (100k-167k), 17.5% (167k-233k), 22.5% (233k-300k), 27.5% (>300k). Loan installments auto-processed on payroll generation.

Expense Management

Record, approve, and track all campus expenditures.

Payment sources: Campus Petty Cash, Central Admin, Split. Approval tiers: Level 1 (โ‰ค10k), Level 2 (10k-50k), Level 3 (>50k). Status flow: Pending โ†’ Approved โ†’ Reimbursed (or Rejected). 15 default expense heads created on installation. Severity flags: Green (routine), Yellow (important), Red (emergency).

Budget Management

Set monthly spending limits and track actuals per expense head.

One budget per campus + expense head + month (unique constraint). Status indicators: On Track (<80% used), Near Limit (80-99%), Over Budget (โ‰ฅ100%). Summary cards: Total Budget, Actual Spent, Remaining, Utilization %. Alerts trigger at 90% and 100% of budget.

Payslips

Detailed salary statements โ€” HTML view and PDF download.

Payslip sections: Employee Info, Attendance Summary (5 badges), Earnings breakdown, Deductions breakdown (absent, tax, loans, components), Net Payable. PDF via Dompdf with "PAYSLIP" watermark. Amounts rounded to nearest 10. Print-optimized CSS. Working days exclude Sundays.

Gradebook

Multi-period grading system with automatic grade calculation.

Uses ik_grades_v2 table with unique constraint (student_id, subject_id, period_id). Grading periods: Weekly, Monthly, Quarterly, Yearly, Exam. Weighted average formula: SUM(Percentage ร— Weight) / SUM(Weights). Frontend gradebook via [institutionkit_gradebook] shortcode with real-time calculation, bulk operations, and keyboard navigation.

Grading Periods

Time frames for assessing student performance.

5 period types with configurable weights: Weekly (0.25-0.50), Monthly (1.00), Quarterly (1.50-2.00), Yearly (3.00-5.00), Exam (2.00-3.00). Meta box fields: type, start/end date, academic year, weight, published status. Published periods make grades visible to students/parents.

Grade Scales

Percentage-to-grade mapping with GPA points.

Default 11-point scale: A+ (90-100, GPA 4.00) through F (0-49, GPA 0.00). Campus-specific scales supported. Scale cache via wp_cache with 1-hour expiry. Frontend gradebook uses simplified scale: A++ (98+), A+ (95+), A (90+), B (80+), C (65+), D (55+/40+), F (<40).

Grade Entry

Teacher interface for entering student marks.

Filter by period type, period, class, section, subject. Real-time percentage and grade calculation. Bulk operations: Fill All Marks, Set Max Marks, Apply Global Max. Keyboard navigation: Enter moves to next student; last student submits. AJAX save with upsert logic. Campus-restricted for teachers.

Homework Management

Create, assign, submit, and grade homework.

Fields: Class, Section, Subject, Title, Description, Attachment, Due Date. Recurring homework support (Daily/Weekly/Monthly with interval). Status: Active, Archived. Submission tracking with grade and feedback. Parents view via Parent Portal.

Parent Portal

Standalone application for parent access to student data.

Accessed at /parent-portal.php. Bypasses WordPress theme entirely. Sections: Student Profile, Academic Performance (dynamic โ€” weekly/monthly/yearly/fallback), Homework, Teacher Comments (two-way), Fee Invoices, Upcoming Meetings (with booking). 4 AJAX endpoints for meetings and comments. Role-restricted to parent role only.

Frontend Modules

Public-facing modules extending InstitutionKit to your website.

ModuleShortcodeUsers
Admissions[institutionkit_admission_form]Public
Attendance[institutionkit_attendance]Teachers
Gradebook[institutionkit_gradebook]Teachers
Invoices[ik_invoices]Staff
Certificate Verify[ik_certificate_verify]Public

All modules follow singleton pattern with campus restriction, nonce verification, and input sanitization.

Hooks & Filters

Extend InstitutionKit without modifying core files.

Available Hooks

HookTypeWhen Fires
ik_exam_type_deletedActionExam type permanently deleted
ik_show_parent_statsFilterDashboard parent stats widget

Recommended custom hooks: ik_student_created, ik_student_promoted, ik_invoice_generated, ik_payment_recorded, ik_payroll_generated, ik_attendance_saved.

AJAX Endpoints

Complete reference of all AJAX handlers.

Exams Module

Centralized via ik_exam_ajax_handler with method parameter. 20+ methods: save_exam_type, save_schedule, save_results, verify_results, publish_results, generate_report_card, get_class_performance, etc.

Payroll Module

18 separate actions: ik_add_expense, ik_get_expenses, ik_approve_expense, ik_reject_expense, ik_add_staff, ik_generate_payroll, ik_get_payroll, ik_get_financial_summary, ik_get_dashboard_data, ik_add_loan, ik_get_payslip, etc.

Parent Portal

4 actions: ik_parent_get_upcoming_meetings, ik_parent_get_available_slots, ik_parent_book_meeting, ik_parent_respond_comment.

Database Tables Reference

Quick lookup for all 40+ custom tables.

All tables use WordPress prefix. Key relationships: institutionkit_staff links to attendance, salary components, loans, payroll, and meeting slots. wp_posts (ik_student) links to attendance, invoices, grades, exam results, report cards, parent links, and teacher comments. institutionkit_invoices links to invoice items and transactions.

Capabilities Reference

All 62 custom capabilities by module and role.

ModuleCapabilities
Students5 (manage, view, edit, delete, admissions)
Staff3 (manage, attendance, reports)
Fees5 (manage, view invoices, generate, record, email)
Exams7 (types, schedule, enter, verify, publish, cards, analytics)
Payroll13 (expenses, approve, reports, heads, staff, payroll, approve, reports, budgets, comparison, P&L, all-campus, export)
Gradebook2 (manage, view)
Homework5 (assign, edit, delete, view all, grade)
Meetings5 (slots, view bookings, manage bookings, book, view own)
Campus11 (manage, view all, manage campus, switch, dashboard, students, teachers, fees, attendance, gradebook, settings)
System3 (settings, backup, license)

Shortcodes Reference

All available shortcodes for frontend integration.

ShortcodeModuleAuth Required
[institutionkit_admission_form]AdmissionsNo
[institutionkit_attendance]AttendanceTeacher/Campus Admin
[institutionkit_gradebook]GradebookTeacher/Campus Admin
[ik_invoices]InvoicesStaff with campus
[ik_certificate_verify]Certificate VerifyNo
[ik_student_grades]Student GradesStudent/Parent

Extending InstitutionKit

Best practices for custom development and integration.

Extension Methods

  1. WordPress Hooks โ€” Add behavior at specific points
  2. Filter Hooks โ€” Modify data before output
  3. Class Extension โ€” Add features to existing modules
  4. Database Extension โ€” Add custom tables and CRUD methods

Best Practices

Troubleshooting

Solutions for common issues.

Common Issues

IssueSolution
Tables not createdSettings โ†’ System Status โ†’ Recreate Tables
Memory exhaustedSet WP_MEMORY_LIMIT to 256M
Campus Admin sees no dataCheck user has campus_admin without administrator
Payroll returns 0 recordsCheck active staff, contract types, existing payroll for month
Duplicate gradesVerify unique constraint on ik_grades_v2
PDF not generatingCheck Dompdf exists at /includes/lib/dompdf/
AJAX returns 0Check nonce, user logged in, action name matches

Changelog

Version history and upgrade notes.

v1.2.1 (Current)

License banner improvements, dashboard optimizations, bug fixes.

v1.2.0

Major: Teacher CPT removed โ€” all staff in institutionkit_staff table. Payroll module (12 traits, 18 AJAX endpoints). Expense management with approval workflow. Budget planning. Staff loans with EMI. Payslips (HTML + PDF). Multi-campus financial comparison. Financial alerts. 12 new database tables.

v1.1.0

Multi-campus support. Gradebook Pro (v2). Exam Pro module. Homework. Meetings. Announcements & Events. 20+ new database tables.

v1.0.0

Initial release. Student management, fee management, attendance, basic gradebook, email notifications, settings.