Project walkthrough · Full-stack architecture

Pathway

Pathway is a full-stack platform for practical technical education, with a React learning interface, a .NET API, authentication, persistent progress, and isolated evaluation of learner code.

Product screenshot

Actual screenshot of the public Pathway software learning interface
Captured from the public Pathway application using a clean browser session.

Explore the live site; the screenshot is displayed when the verified public-page capture is available.

The engineering challenge

Teaching programming requires more than displaying lesson content. A learner needs structured progression, useful feedback, stateful progress tracking, and a way to evaluate code without handing arbitrary execution to the public-facing application server.

Actual technology and boundaries

Conceptual request flow

The diagram summarizes the documented separation of responsibilities; it is not a snapshot of an active infrastructure environment.

flowchart TD
L[Learner browser] --> W[React learning UI]
W --> A[ASP.NET Core API]
A --> P[(PostgreSQL progress)]
A --> B[Private evaluation broker]
B --> S[Isolated per-submission sandbox]

Why the evaluator boundary matters

Executing arbitrary learner code inside the web server creates unnecessary risk. The documented production design routes code submissions to a broker that creates isolated sandboxes with disabled outbound network access, bounded output, time and resource limits. Production code exercises fail closed when evaluator configuration is unavailable. Local lesson development can use deterministic checks and Roslyn syntax diagnostics without executing the submission.

Curriculum as structured content

Typed, versioned lesson records carry explanatory content, examples, exercises and progression metadata. This makes the lesson engine reusable across course subjects and supports future changes to how content is authored and stored.

Quality and operational approach

The repository documents Playwright smoke coverage for a guest learner loading and interacting with lessons, as well as deployment runbooks and staging checks. These statements describe documented design and tests, not independently measured availability or adoption.

Read the project's architecture and setup documentation ↗