// BENEFITS

Benefits of working with Our Web Development Team

LOCATION UK
DURATION 1 MONTH
Industry Ed Tech
WORDPRESS PLUGIN DEVELOPMENT
WordPress PHP MySQL JavaScript jQuery FFmpeg hls.js

Since 2014, we’ve partnered with businesses across various industries, bringing innovative solutions and real-world experience to the table. We’re passionate about understanding your unique challenges.

Sumita Dewanji
Sumita Dewanji Business Development Manager sumita.dewanji@thecodersmind.com
Rahul Dutta
Rahul Dutta Client Relationship Manager rahul.dutta@thecodersmind.com

About project

Spark is a custom WordPress plugin for managing apprenticeship programmes across multiple employer companies. Administrators manage companies, apprentice accounts, and training resources from WordPress admin. Each apprentice signs in to a branded frontend portal and can access only the resources assigned to their employer company.

The plugin supports documents, images, audio, and video resources. Uploaded videos can be processed in the background into optimized MP4 and HLS formats for browser playback.

The implementation follows a modular monolith architecture: a core plugin and module manager initialize independent modules. Modules communicate through custom WordPress actions for event-driven tasks such as email notifications and audit logging.

Features

WordPress Admin

  • Dashboard with apprentice, company, and trainer counts.
  • Recent apprentice and activity summaries.
  • Media breakdown chart.
  • Apprentice creation, editing, deletion, activation, and deactivation.
  • Apprentice activity history and password-reset request management.
  • Company management, including status, contact information, address, and ordering.
  • Resource management with title, description, files, thumbnails, company assignments, categories, tags, and publishing status.
  • Chunked video uploads with progress feedback.
  • Portal, login branding, company theme, SMTP, notification, and demo-data settings.

Apprentice Portal

  • Branded login page.
  • Dashboard, Resources, Company Info, and Profile sections (some sections can be configured).
  • Resource search, category/tag filtering, sorting, and pagination.
  • In-portal PDF, image, DOCX, and video viewing.
  • YouTube and Vimeo embeds.
  • Company-specific logo and colour theme.
  • Password-reset requests reviewed by an administrator.

Access and Activity

  • Resources assigned to one or more companies.
  • Company membership checked when protected files and video streams are requested.
  • Inactive apprentices are prevented from logging in and accessing resources.
  • Login rate limiting.
  • Resource-open progress tracking.
  • Audit log for supported account and resource events.

Video

  • Chunked browser uploads.
  • Background FFmpeg processing.
  • MP4 fast-start output.
  • HLS playlist and segment generation.
  • Processing progress in the admin interface.
  • Cleanup of abandoned video jobs.

Technology stack

  • WordPress
  • PHP
  • MySQL
  • HTML
  • CSS
  • JavaScript
  • jQuery
  • Platform: WordPress
  • Backend: PHP, WordPress Plugin API
  • Data: MySQL, WordPress custom post types, user meta, options
  • Frontend: HTML, CSS, JavaScript, jQuery
  • Asynchronous requests: WordPress AJAX (admin-ajax.php)
  • Video processing: FFmpeg, FFprobe, MP4, HLS
  • Video playback: hls.js
  • DOCX preview: docx-preview, JSZip
  • Admin lists: WordPress WP_List_Table

No third-party PHP packages are required. Composer autoloading is optional; the plugin includes a built-in autoloader.

Requirements

  • WordPress 6.0 or later.
  • PHP 7.4 or later; tested on PHP 8.4.
  • A working WordPress database.
  • A server configuration capable of running the plugin's required WordPress and PHP operations.

Additional requirements for uploaded-video processing

  • ffmpeg and ffprobe installed and available on the system PATH, or configured using the plugin constants.
  • PHP exec() enabled.
  • A working WP-Cron setup, or a real system cron invoking wp-cron.php.
  • PHP upload limits sufficient for the configured upload chunk size.
  • Web-server rules that prevent direct access to the video-stream storage directory. The implementation includes an Apache .htaccess rule; Nginx requires a corresponding server configuration.

Without FFmpeg/FFprobe and exec(), uploaded-video processing is unavailable. YouTube and Vimeo embeds can still be used.

Initial configuration

The plugin provides the following settings areas:

Portal

Portal sections, default section, Handbook settings, supported company list.

Login Branding

Login-page logo, imagery, copy, and colours.

Theme

Per-company logo and portal colours.

SMTP

Mail server, port, encryption, authentication, sender details, test email.

Notifications

Enable/disable event notifications and edit email subjects and bodies.

Demo Data

Export or import demo companies, terms, resources, files, and apprentices.

Key workflows

Apprentice onboarding

  • An administrator creates an apprentice and assigns a company.
  • The plugin creates a WordPress user with the provq_apprentice role and saves the related metadata.
  • A password-reveal token is issued.
  • The apprentice receives a welcome email containing the reveal link, not a plaintext password.
  • The apprentice opens the link and confirms their username.
  • The password is revealed, subject to the token's use limit and expiry.
  • The apprentice signs in through the branded login page.

The reveal token is 64 hexadecimal characters, can be used at most three times, and expires after 30 days.

Login

  • The custom login form submits to the login page.
  • The login handler checks rate limits.
  • Inactive accounts and trainer accounts are rejected by authentication filters.
  • Successful apprentice login updates the last-login timestamp and fires the login audit action.
  • The apprentice is redirected to the portal.
  • Apprentices who try to access wp-admin are redirected to the frontend portal.

Documented rate limits:

  • Five attempts per username-and-IP bucket.
  • Fifteen attempts per IP bucket.
  • Fifteen-minute lockout.

These values are filterable.

Resource access

When an apprentice requests a document, image, video playlist, or video segment, the relevant handler checks authorization.

Access is allowed to an administrator or an active user whose company is assigned to the resource. Unauthorized requests receive a 403 response or are redirected to login, depending on the handler.

Resource-open events update the apprentice's progress data.

Password reset

Apprentices submit a password-reset request through the login page or profile. An administrator reviews the request and can accept it. On acceptance, a new password is issued through a fresh password-reveal link.

Security Notes

The implementation includes several security controls:

  • Nonce verification for admin forms and AJAX requests.
  • Capability checks for administrative screens.
  • Company-scoped authorization for protected files, playlists, and segments.
  • Login rate limiting.
  • Inactive-account checks during authentication, portal rendering, and file delivery.
  • Random password-reveal tokens, with HMAC-SHA256 token hashes.
  • Input sanitization and output escaping.
  • Prepared SQL statements for raw database queries.
  • Shell argument escaping for FFmpeg commands.

Design

// CASE STUDIES

More Good Stuff

Jaipuria School of Business

Jaipuria School Of Business is a fully dynamic, high-performance CMS website built to simplify how administrators manage pages, components, menus, and SEO content. The project focused on building a reusable component-based system where every section can be managed dynamically from the admin panel while maintaining fast page speed and a clean frontend experience.

Case Details

K R Mangalam

K R Mangalam School is a fully dynamic WordPress multisite platform developed to manage multiple school websites from a single centralized admin panel.

Case Details

Sapphire International School

Sapphire International School is a modern, multi-campus school website built on Laravel 12 with a custom CMS and page builder. The project delivers one unified platform for three campuses—Noida, Crossings Republik, and Anand Vihar, Delhi—each with its own pages, navigation, events, and branding. Instead of maintaining three separate sites, the application uses a single codebase where content editors manage marketing pages, blogs, stories, and settings from an admin panel without touching code.

Case Details

HEI Schools India

Hei School India is a fully dynamic WordPress CMS website developed to provide easy content management for every section of the website. The project focused on converting the Figma design into a responsive and scalable WordPress solution while ensuring all sections remain manageable from the admin panel without relying on the ACF PRO plugin.

Case Details

Genesis Global School

Genesis Global School is a fully dynamic WordPress multisite platform developed to manage multiple school websites from a single admin panel. The project focused on building a scalable multisite architecture without using any page builder while maintaining a clean, fast, and easy-to-manage CMS structure.

Case Details

Aim High

Building a cohesive AI-powered education brand through strategic digital marketing assets, social media creatives, brochures, promotional materials, chatbot branding, and campaign-focused visual communication.

Case Details

// CONTACT US

Start Growing Your Business with Us

Let’s plan your business growth together to unlock future opportunities. Reach out to us today to discuss your business requirements to get started on the journey.

Location: IT Hub

Located in Silicon Valley of Eastern India

No Fresher: Only Experience

We have no fresher policy, hire only experienced

Expert Communication

Slack, WA, Email, PM Tool, Team etc, no gap in communication

Proven Experience

Upwork, PPH, Behance, Dribbble, Clutch reviews speak our credibility

Well-Staffed

We have enough resources to tackle unprecedental situations

Healthy Environment

High retention rate and low attrition rate

Share Your Software Needs With Us

Our expert will contact you within one business day to provide a free consultation and discuss your ideas and needs.

How can we help?

Estimated Budget

BASIC INFORMATION

// OUR PROMISES

Commitment To Building Trustworthy Partnership

  • Free Consultation, Design & Project Scope Before You Commit
  • Bug Free Delivery
  • Free PM Tool To Manage Your Project
  • Dedicated Team Of Expert Engineers
  • Free Technical Project Manager
  • NDA Signed And Respected
  • Weekly Meeting To Stay Aligned
  • Available In Client’s Time Zone
  • 30 Days Free Support Post Delivery
  • 100% Ownership Of Your Code & Assets