DevelopmentMay 2026Ongoing

Ed2Go → Modern Campus ETL

Python
TL;DR

A Python ETL pipeline that extracts course catalog data from the Ed2Go Partner API (SOAP/XML) and loads it into Modern Campus Lifelong Learning Extended Education (Destiny One) for FHSU's Professional and Continuing Education department. Includes scheduled cron runs and structured logging.

Ed2Go → Modern Campus ETL

Overview

Ed2Go → Modern Campus ETL is a Python pipeline that keeps FHSU's Professional and Continuing Education (PCE) course catalog in sync between two vendor systems that don't talk to each other natively: Ed2Go's Partner API and Modern Campus's Destiny One platform.

The Problem

FHSU's PCE department sources course content from Ed2Go but manages enrollment and catalog listings through Modern Campus Lifelong Learning Extended Education. Both systems expose only SOAP/XML APIs, and without automation, keeping the two catalogs in sync means manually re-entering course data whenever Ed2Go's offerings change: slow, error-prone, and impossible to run on any regular schedule.

The Solution

The pipeline runs unattended on a nightly schedule, pulling the current Ed2Go catalog and pushing transformed course records into Modern Campus automatically.

  • Extract calls Ed2Go's SOAP CatalogManagerService to pull the full set of offered course codes across both funded and additional catalog categories, then fetches full course details per code.
  • Transform maps Ed2Go's course schema into the fields Modern Campus expects, normalizing data along the way.
  • Load authenticates against Modern Campus's SOAP web service and pushes each transformed course individually, logging per-course success or failure.
  • DRY_RUN Safety Mode defaults on, running extract and transform without writing anything to Modern Campus until the pipeline is fully verified end to end.
  • Nightly Cron Execution runs the full pipeline unattended at 2:00 AM server time, with structured run logs and raw cron output kept separately for debugging.

My Contributions

I built the entire pipeline solo for FHSU's PCE department: the Ed2Go SOAP client, the course transformation logic, the Modern Campus SOAP client and authentication flow, the DRY_RUN safety mechanism, structured logging, and the server setup and deployment scripts (connectivity verification, virtual environment setup, and cron scheduling) used to run it unattended in production.