School Result SaaS
A production-ready multi-tenant Exam & Result Management SaaS WordPress plugin"
by Your Company · github.com/orjik1/school-result-saas · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/orjik1/school-result-saas/archive/refs/heads/main.zipSchool Result SaaS - WordPress Plugin
A production-ready multi-tenant Exam & Result Management SaaS WordPress plugin designed for schools to manage students, exams, and results with automated grade computation and PDF generation.
Features
✅ Multi-Tenant SaaS Architecture - Multiple schools with complete data isolation
✅ Student Management - Add and manage students with unique IDs
✅ Exam Management - Create exams per term and session
✅ Result Upload & Computation - Automated grade calculation and positioning
✅ Student Portal - Students can login and view their results
✅ Dynamic Result Templates - 5 pre-built templates with customization
✅ PDF Generation - Generate and download printable result sheets
✅ Subscription Billing - Paystack-ready subscription system
✅ Admin Dashboard - Comprehensive school admin controls
✅ REST API - Full WordPress REST API integration
✅ Security - Nonce validation, capability checks, data isolation
Requirements
- WordPress 5.0+
- PHP 7.6+
- MySQL 5.7+
- DomPDF PHP Library
Installation
- Upload the
school-result-saasfolder to/wp-content/plugins/ - Activate the plugin from WordPress admin panel
- Navigate to "School Result SaaS" menu
- Complete initial setup
Quick Start
For Super Admin
- Create a new school
- Configure school branding
- Set subscription plans
For School Admin
- Add students
- Create classes and subjects
- Create exams
- Upload results
- View reports and analytics
For Students
- Login with student UID
- View exam results
- Download PDF result sheet
Database Schema
srs_schools- School information and brandingsrs_students- Student recordssrs_classes- Class/Grade informationsrs_subjects- Subject informationsrs_exams- Exam recordssrs_results- Student exam resultssrs_subscriptions- Billing and subscription data
Result Templates
- Classic - Traditional result format
- Modern - Contemporary design
- Minimal - Minimalist approach
- WAEC Style - WAEC examination format
- Premium - Premium customizable template
Grade System
| Score Range | Grade | Remark |
|---|---|---|
| 70-100 | A | Excellent |
| 60-69 | B | Good |
| 50-59 | C | Credit |
| 45-49 | D | Pass |
| 40-44 | E | Pass |
| 0-39 | F | Fail |
API Endpoints
Schools
GET /wp-json/srs/v1/schoolsPOST /wp-json/srs/v1/schoolsGET /wp-json/srs/v1/schools/{id}PUT /wp-json/srs/v1/schools/{id}
Students
GET /wp-json/srs/v1/studentsPOST /wp-json/srs/v1/studentsGET /wp-json/srs/v1/students/{id}PUT /wp-json/srs/v1/students/{id}
Results
GET /wp-json/srs/v1/resultsPOST /wp-json/srs/v1/resultsGET /wp-json/srs/v1/results/{id}/pdf
Security
- Multi-tenancy with strict
school_idfiltering - WordPress nonce validation
- User capability checks
- Sanitized SQL queries using prepared statements
- Secure file uploads
- Role-based access control
Development
# Install dependencies
composer install
npm install
# Build assets
npm run build
# Watch for changes
npm run watch
File Structure
school-result-saas/
├── includes/
│ ├── core/ # Core plugin functionality
│ ├── database/ # Database schema and migrations
│ ├── schools/ # School management
│ ├── students/ # Student management
│ ├── classes/ # Class management
│ ├── subjects/ # Subject management
│ ├── exams/ # Exam management
│ ├── results/ # Result management & computation
│ ├── templates/ # Template engine
│ ├── pdf/ # PDF generation
│ ├── billing/ # Subscription & billing
│ ├── api/ # REST API endpoints
│ └── services/ # Business logic services
├── admin/ # Admin dashboard UI
├── public/ # Student portal UI
├── templates/ # HTML templates
│ └── results/ # Result sheet templates
├── assets/ # CSS, JS, Images
└── school-result-saas.php # Main plugin file
License
GPL v3 or later - See LICENSE file for details
Support
For issues and feature requests, visit the GitHub Issues page.