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

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
- Frontend: React 19, TypeScript, Vite and Tailwind CSS 4.
- API: ASP.NET Core on .NET 10, exposing course metadata, lessons and submission interfaces.
- Identity: Keycloak using OpenID Connect and PKCE, with learner state persisted to PostgreSQL when authenticated.
- Evaluation: private broker and per-submission isolated sandboxes described in the repository's production architecture.
- Delivery: separate web, API, identity, and broker service configurations for Railway.
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.