⚠️ The new ZFordDev Documentation Portal is currently under active development. Search is not yet enabled and some pages are still missing. Please bear with us while we transition to the new system.

Architecture & Rationale

SchedPlus is built around a simple idea: good software stays flexible. This page explores why the core engine is completely UI‑agnostic, how our data model evolved, and why the future of SchedPlus is all about choosing the workflow that fits you best.


The Decoupled Multi‑UI Core

One of the biggest strengths of SchedPlus is that the UI and the scheduling engine are completely separated. The backend handles tasks, sorting, and persistence. The UI simply asks for data and displays it however it wants.

This lets us build multiple interfaces — each with its own personality — without ever touching the core logic.

1. Tkinter (Fast & Minimal)

2. PyQt (Polished & Visual)

3. RAW CLI Mode (Headless & Scriptable)


New Direction: Workflow‑Specific UIs

SchedPlus is now expanding beyond traditional layouts. Instead of trying to force one UI to fit every workflow, we’re building dedicated interfaces for different styles of planning.

Each UI is designed to excel at one thing — and all of them plug into the same core engine.

Actively Being Tested:

The Philosophy Behind This

Instead of one giant UI that tries to do everything, SchedPlus grows through micro‑features added to specialized UIs.
Every new interface:

One day, a “final” UI might emerge as the default — but the real strength of SchedPlus is that it’s a multi‑UI learning tool. You pick the interface that matches your workflow, and the engine keeps everything consistent underneath.


Data Evolution: From Flat Files to SQLite

Early versions of SchedPlus stored tasks in a simple tasks.json file. It worked, but as the project grew, rewriting the entire file for every update became slow and risky.

To make the system reliable at scale, we moved to a dedicated SQLite database (data/tasks.db).

🔄 Automatic Migration

If you’re upgrading from an older version:

  1. SchedPlus checks for a legacy tasks.json.
  2. If no database exists yet, it imports your old tasks into SQLite.
  3. The JSON file is renamed to .bak so your data stays safe and won’t be reprocessed again.

Engineering Limitations & Development Goals

SchedPlus is still early in its journey, and we’re open about what’s missing and what’s coming next.

Current Limitations

Upcoming Improvements