WP Manifestindependent plugin directory
manifest / integrations / course-sync-dashboard

Course Sync Dashboard

A WordPress plugin that synchronizes external course data from a REST API into a custom post type.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/marcelo-takano/course-sync-dashboard/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A WordPress plugin that synchronizes external course data from a REST API into a custom post type and provides a frontend course listing via shortcode.

This project was developed as part of a technical assessment, following WordPress best practices with a focus on clean architecture, maintainability, and separation of responsibilities.


Features

  • Custom Post Type: Course
  • Admin dashboard
  • Synchronize courses from an external REST API
  • Create and update existing courses
  • Store external course metadata
  • Frontend course listing via shortcode
  • Responsive frontend layout
  • WordPress Coding Standards
  • Secure admin actions with capability and nonce validation

External API

The plugin consumes data from:

https://jsonplaceholder.typicode.com/posts

Mapping:

API Field WordPress
title Course Title
body Course Description
id External Course ID
userId Stored as metadata

Installation

  1. Upload the plugin to:

wp-content/plugins/

  1. Activate the plugin.

  2. Access:

Dashboard → Course Sync

  1. Click Sync Courses.

  2. Create a page and insert:

[courses_list]


Frontend

The shortcode displays all synchronized courses.

[courses_list]

Each course includes:

  • External Course ID
  • Course title
  • Course excerpt
  • Link to the single course page

Project Structure

course-sync-dashboard/

assets/
    css/
        courses-list.css

includes/
    class-csd-admin.php
    class-csd-api.php
    class-csd-action.php
    class-csd-course-post-type.php
    class-csd-shortcode.php
    class-csd-sync.php

templates/
    courses-list.php

course-sync-dashboard.php

Architecture

The plugin follows a modular architecture where each class has a single responsibility.

CSD_Course_Post_Type

Registers the custom post type.

CSD_API

Handles communication with the external REST API.

CSD_Sync

Processes synchronization and creates or updates WordPress posts.

CSD_Action

Handles admin actions securely.

CSD_Admin

Builds the administration interface.

CSD_Shortcode

Registers and renders the frontend shortcode.


Technical Decisions

Some implementation decisions were made to improve maintainability and performance:

  • Single Responsibility Principle
  • WordPress native APIs
  • Nonce validation
  • Capability validation
  • Rewrite rules flushed only once after activation
  • CSS loaded only when the shortcode is used
  • Template separated from business logic
  • Efficient course lookup using an external ID map
  • Output escaping following WordPress standards

Future Improvements

Possible future enhancements include:

  • Scheduled synchronization (WP-Cron)
  • Incremental synchronization
  • Search and filtering
  • Pagination
  • Gutenberg block
  • Settings page for API endpoint
  • Internationalization files
  • WP-CLI command support

Requirements

  • WordPress 6.x+
  • PHP 8.x

Author

Marcelo Takano

Web Developer & Web Specialist

Brazil