Learning Support Administration Application
A "Meta-ELM" system for managing course and class session metadata. LSApp integrates Development, Delivery, and Operations with a central repository of metadata and communications for all aspects of course creation and delivery.
LSApp is not an LMS/ELM - it doesn't manage registration, course content delivery, or any learner interface. Instead, it contains all the data associated with courses and class sessions necessary to input that information into the LMS (ELM).
- Course Management - Each course gets its own page listing all associated metadata, materials, checklists, and upcoming classes
- Class Management - Each class gets its own page listing everything about that class, including notes and change history
- Change Tracking - Changes are submitted and tracked on course/class pages with full context
- Venue Management - Basic venue management for in-person sessions
- ELM Integration - Weekly course stats import with status updates, enrollment numbers, and audit tools
- Dashboards
- Upcoming classes
- Incomplete change requests
- Unclaimed service requests
- Person-specific dashboards
- Integrated with Single Sign-On (IDIR)
- Simple role-based ACL:
super,admin,internal,external
- PHP 5.4+ (runs with minimal modules)
- Web server with
REMOTE_USERenvironment variable support - Docker (optional, for containerized deployment)
git clone <repository-url>
cd lsapp
cp -r /path/to/data ./data
docker build -t lsapp .
docker run -d -p 8080:8080 --name lsapp-container lsapp- Clone the repository to your web server document root
- Copy the data folder with CSV files (see CSV Schema for structure)
- Configure your web server to serve PHP files
- Ensure
REMOTE_USERis populated by your authentication layer
LSApp uses CSV files as its flat-file database. See docs/CSV_SCHEMA.md for complete documentation of all data file structures and column mappings.
LSApp evolved through several stages:
- Excel Era - Started as 8+ Excel spreadsheets with VBScripts for validation
- Access Era - Migrated to Access, merging spreadsheets into a single data model
- PHP Era - Rebuilt in PHP to run on existing infrastructure with SSO support
The decision to use CSV files and simple procedural PHP was deliberate - it allowed deployment within existing constraints without requiring database servers or PHP upgrades. The application went live in 2019.
Originally focused on in-person training with physical venues and material shipping. Since 2020, the focus has shifted to eLearning and webinars, which now account for the vast majority of the catalog.
lsapp/
├── data/ # CSV data files
├── docs/ # Documentation
├── course-change/ # Course change request handling
├── class-change/ # Class change request handling
├── includes/ # Shared PHP includes
└── ...
This is an internal application. Contact the development team for contribution guidelines.
Internal use only.