Skip to main content

System Requirements 📋

Tiger Grades has been designed to work seamlessly across various hosting environments while maintaining optimal performance and security. This guide outlines the complete system requirements for successful deployment and operation.

🎯 Overview

Tiger Grades deployment requires:

  • WordPress Environment with specific version requirements
  • PHP Configuration optimized for educational data processing
  • Database System capable of handling relational grade data
  • Microsoft Azure Integration for cloud functionality
  • SSL/HTTPS for secure data transmission
  • Caching System for optimal performance

🌐 WordPress Requirements

Core WordPress

ComponentMinimumRecommendedNotes
WordPress Version6.8+Latest stableRequired for REST API features
PHP Version7.2+8.0+Higher versions improve performance
MySQL Version5.7+8.0+Required for JSON column support
Web ServerApache 2.4+ / Nginx 1.18+Latest stableWith URL rewriting support

WordPress Configuration

Memory Limit:

// wp-config.php or php.ini
ini_set('memory_limit', '512M'); // Minimum 256M, recommended 512M+

File Upload Limits:

// For gradebook file handling
ini_set('upload_max_filesize', '32M');
ini_set('post_max_size', '32M');

Execution Time:

// For Azure API calls and data processing
ini_set('max_execution_time', 120);

Required WordPress Features

Permalink Structure:

  • Must support custom post types and pretty permalinks
  • Recommended: /%postname%/ or custom structure

User Roles & Capabilities:

// Tiger Grades extends default WordPress roles
$roles_required = [
'administrator', // Full system access
'editor', // Teacher capabilities
'subscriber' // Parent/student access
];

🖥️ Server Requirements

PHP Configuration

Essential PHP Extensions:

# Required extensions
php-curl # Microsoft Graph API communication
php-json # JSON data processing
php-mbstring # Unicode string handling
php-mysql # Database connectivity
php-xml # XML parsing for Office integration
php-zip # File compression/decompression
php-gd # Image processing (optional)

Memory & Processing:

; php.ini configuration
memory_limit = 512M
max_execution_time = 120
max_input_vars = 3000
upload_max_filesize = 32M
post_max_size = 32M

Database Requirements

MySQL/MariaDB Configuration:

-- Minimum requirements
-- MySQL 5.7+ or MariaDB 10.3+
-- InnoDB storage engine (default)
-- UTF8MB4 character set support

-- Recommended settings
SET GLOBAL innodb_buffer_pool_size = 1G;
SET GLOBAL query_cache_size = 128M;
SET GLOBAL max_connections = 200;

Database Permissions:

-- Required privileges for Tiger Grades user
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP
ON tiger_grades_db.* TO 'tigr_user'@'localhost';

Web Server Configuration

Apache (.htaccess):

# Required Apache modules
# mod_rewrite (URL rewriting)
# mod_ssl (HTTPS support)
# mod_headers (HTTP headers)

# Recommended configuration
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Tiger Grades API endpoints
RewriteRule ^wp-json/tiger-grades/(.*)$ /wp-json/tiger-grades/$1 [QSA,L]
</IfModule>

# Security headers
<IfModule mod_headers.c>
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"
</IfModule>

Nginx Configuration:

server {
listen 443 ssl http2;
server_name your-domain.com;

# SSL configuration (required)
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;

# PHP-FPM configuration
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

# Increased timeouts for Tiger Grades operations
fastcgi_read_timeout 120;
fastcgi_send_timeout 120;
}

# WordPress permalinks
location / {
try_files $uri $uri/ /index.php?$args;
}

# Tiger Grades API
location ~ ^/wp-json/tiger-grades/ {
try_files $uri $uri/ /index.php?$args;
}
}

☁️ Microsoft Azure Requirements

Azure App Registration

Required API Permissions:

{
"requiredResourceAccess": [
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "Files.ReadWrite",
"type": "Scope"
},
{
"id": "Sites.ReadWrite.All",
"type": "Scope"
},
{
"id": "User.Read",
"type": "Scope"
}
]
}
]
}

Environment Variables:

# Required Azure configuration
MSFT_TENANT_ID=your-tenant-id
MSFT_CLIENT_ID=your-client-id
MSFT_CLIENT_SECRET=your-client-secret
MSFT_USER_ID=teacher-user-id

Azure Functions (Optional)

For advanced gradebook automation:

Runtime Requirements:

  • Node.js 18+ or Python 3.9+
  • Azure Functions Core Tools 4.x
  • Azure CLI 2.0+

Configuration:

{
"version": "2.0",
"functionTimeout": "00:05:00",
"extensions": {
"http": {
"routePrefix": "api"
}
}
}

🔒 Security Requirements

SSL/TLS Configuration

Required:

  • Valid SSL certificate (Let's Encrypt, commercial, or enterprise)
  • TLS 1.2 minimum (TLS 1.3 recommended)
  • HTTPS redirect for all traffic

WordPress Security:

// wp-config.php
define('FORCE_SSL_ADMIN', true);
define('SECURE_AUTH_COOKIE', true);

// Security headers
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
header('Content-Security-Policy: default-src \'self\'');

Authentication & Authorization

WordPress Security Plugins (Recommended):

  • Wordfence Security
  • Sucuri Security
  • iThemes Security

Password Policy:

// Recommended minimum requirements
$password_requirements = [
'min_length' => 12,
'require_uppercase' => true,
'require_lowercase' => true,
'require_numbers' => true,
'require_symbols' => true
];

📈 Performance Requirements

Caching System

Object Caching (Recommended):

// Redis configuration
$redis_config = [
'host' => '127.0.0.1',
'port' => 6379,
'timeout' => 1,
'retry_interval' => 100
];

// Memcached alternative
$memcached_config = [
'servers' => [
['127.0.0.1', 11211, 1]
]
];

Page Caching:

  • W3 Total Cache, WP Rocket, or LiteSpeed Cache
  • Static file caching for CSS/JS assets
  • CDN integration for global performance

Database Optimization

Recommended MySQL Configuration:

[mysqld]
# InnoDB settings for Tiger Grades
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1

# Query optimization
query_cache_type = 1
query_cache_size = 128M
tmp_table_size = 64M
max_heap_table_size = 64M

🌍 Production Environment

Server Specifications

Minimum Requirements:

  • CPU: 2 cores, 2.4GHz
  • RAM: 4GB
  • Storage: 20GB SSD
  • Bandwidth: 100Mbps

Recommended Specifications:

  • CPU: 4+ cores, 3.0GHz+
  • RAM: 8GB+
  • Storage: 50GB+ NVMe SSD
  • Bandwidth: 1Gbps

Load Balancing (High Traffic)

Nginx Load Balancer:

upstream tiger_grades_backend {
server web1.example.com:80 weight=3;
server web2.example.com:80 weight=2;
server web3.example.com:80 backup;
}

server {
listen 443 ssl;
location / {
proxy_pass http://tiger_grades_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

Database Clustering

MySQL Master-Slave Configuration:

-- Master server configuration
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = mixed

-- Slave server configuration
[mysqld]
server-id = 2
relay-log = relay-log
read-only = 1

🔧 Development Environment

Local Development

Recommended Stack:

  • Local Server: XAMPP, MAMP, or Docker
  • Version Control: Git with GitHub/GitLab
  • IDE/Editor: VS Code, PhpStorm, or Sublime Text
  • Database Tool: phpMyAdmin, Adminer, or TablePlus

Docker Configuration:

version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: tiger_grades
WORDPRESS_DB_PASSWORD: secure_password
WORDPRESS_DB_NAME: tiger_grades_dev
volumes:
- ./tiger-grades:/var/www/html/wp-content/plugins/tiger-grades

db:
image: mysql:8.0
environment:
MYSQL_DATABASE: tiger_grades_dev
MYSQL_USER: tiger_grades
MYSQL_PASSWORD: secure_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- db_data:/var/lib/mysql

volumes:
db_data:

Testing Environment

Unit Testing:

# PHPUnit configuration
composer require --dev phpunit/phpunit
composer require --dev brain/monkey
composer require --dev mockery/mockery

Integration Testing:

# WordPress testing framework
svn co https://develop.svn.wordpress.org/tags/6.8/tests/phpunit/includes/ /tmp/wordpress-tests-lib/includes/

📊 Monitoring & Maintenance

System Monitoring

Required Monitoring:

  • Server resource usage (CPU, RAM, disk)
  • Database performance metrics
  • WordPress error logs
  • Tiger Grades API response times

Recommended Tools:

  • New Relic or DataDog for application monitoring
  • Pingdom or UptimeRobot for uptime monitoring
  • Google Analytics for user behavior

Backup Strategy

Automated Backups:

#!/bin/bash
# Daily backup script
DATE=$(date +%Y%m%d)
wp db export /backups/tiger-grades-db-$DATE.sql
tar -czf /backups/tiger-grades-files-$DATE.tar.gz /var/www/html/wp-content/plugins/tiger-grades

Backup Retention:

  • Daily backups: Keep for 30 days
  • Weekly backups: Keep for 12 weeks
  • Monthly backups: Keep for 12 months

✅ Pre-Deployment Checklist

System Verification

  • WordPress 6.8+ installed and configured
  • PHP 7.2+ with required extensions
  • MySQL 5.7+ with proper configuration
  • SSL certificate installed and working
  • Azure app registration completed
  • Environment variables configured
  • Backup system tested
  • Monitoring tools configured

Security Verification

  • HTTPS enforced site-wide
  • Security plugins installed
  • File permissions set correctly (644 for files, 755 for directories)
  • Database user has minimal required privileges
  • wp-config.php contains security keys
  • Debug mode disabled in production

Performance Verification

  • Caching system installed and configured
  • Database queries optimized
  • CDN configured (if applicable)
  • Image optimization enabled
  • Minification for CSS/JS enabled

Once your system meets these requirements, proceed to the Production Setup Guide for detailed deployment instructions.