Loading...
Loading...

About This Platform

A custom NSW HSC Software Engineering platform built at Tempe High School.

Who built this and why

This site is a bespoke learning platform created for students of the NSW Stage 6 Software Engineering course at Tempe High School. It is not a commercial product and is not affiliated with NESA — it is a classroom tool built to give students focused, syllabus-aligned practice in everything they need for the HSC examination and project.

The platform is designed and developed by Ben Jones (Mr Jones), Software Engineering teacher at Tempe High School.

A focused LMS for Software Engineering

The platform includes full Learning Management System functionality covering every core concept in the NSW Software Engineering syllabus — from algorithm design and OOP through to mechatronics, secure architecture, DevOps, and the mathematical foundations of the course. Each module is structured into pages with a mix of explanation, worked examples, interactive coding exercises, and progress tracking.

Written-response activities use writing scaffolds aligned directly to the NESA key verbs (identify, describe, explain, analyse, evaluate, justify, construct…). Students are guided to structure responses the way HSC markers expect to see them.

What's on the platform

Past HSC Questions

Every question from the new Software Engineering exams plus selected SDD questions back to 2017, with marking criteria and sample responses — including the new objective response question types (multiple choice, drag-and-drop ordering, fill-in-the-blanks and matching) introduced in the 2025 NESA online examination.

Modelling Validators

Tight, NESA-specific validation of system modelling artifacts — Structure Charts, Data Flow Diagrams, Flowcharts, Class Diagrams, IPO Charts, Decision Trees, Storyboards and Pseudocode — all checked against NESA Course Specifications, not generic UML.

Mechatronics Calculator

A built-in Voltage & Current power-budget calculator for mechatronics projects — pick a power supply (RPi Pico, Arduino, ESP32, AA / LiPo battery packs or a custom supply), add components from a built-in library of sensors, motors and outputs, and instantly see total current draw, headroom and warnings against the supply rating.

Flip Cards (incl. PvP)

Practise 724 key terms across Learning, Quiz (multiple choice), Prompt, Answer, Type (AI-marked) and Game modes — and challenge a classmate head-to-head in PvP with a shared room code.

Circuit Diagram Tool

Build mechatronics circuit diagrams with a built-in shape library of microcontrollers (RPi Pico, Arduino, ESP32, micro:bit) and the NESA-specified symbols for sensors, actuators, sources and passive components. Diagrams are checked with current-flow validation to catch broken loops and missing returns to ground, and the tool auto-generates a Bill of Materials (BOM) from the components on the canvas.

Programming Challenges

Hundreds of in-browser challenges in Python, SQL, NESA pseudocode, and HSC-style flowcharts — all with automated validation and instant feedback.

Pseudocode Validator

Dedicated pseudocode validator that enforces NESA's reserved verbs and the whitespace / indentation conventions students are expected to use in HSC examination responses.

Documentation Tools

Structured editors and validators for Data Dictionaries and IPO tables that match exactly what NESA expects to see.

The stack

The platform is a server-rendered Python web application designed to run in any modern browser with no install required.

Backend
  • Python + Flask (Jinja templates, Blueprints)
  • PostgreSQL with SQLAlchemy & Alembic migrations
  • Redis for caching and per-day deduplication
  • Gunicorn behind Render in production
  • GitHub OAuth for authentication
Frontend
  • Bootstrap 5, vanilla JavaScript, PWA service worker
  • Ace Editor for in-browser code editing (Python, SQL, pseudocode)
  • Pyodide — full Python running entirely client-side for execution and grading
  • sql.js (SQLite) — in-browser SQL execution and grading via WebAssembly
  • Draw.io (diagrams.net) embedded for flowcharts, DFDs, structure charts and class diagrams
CI/CD & Testing
  • pytest for unit and integration tests
  • Playwright for end-to-end browser tests
  • CodeQL static analysis and Bandit Python security linting
  • GitHub Actions runs the full test suite on every push and pull request
  • Automatic deployment to Render.com on merges to main

By the numbers

Measured directly from the codebase we have written — vendored libraries and minified assets are excluded. Numbers grow every time we ship.

35,349
pytest tests
210
Python files
32
JavaScript files
142
Jinja templates
81
Jinja partials
96,081
lines of Python
14,269
lines of JavaScript
40
pages of docs
2,128
Python docstrings
960
JSON content & spec files
311
SVG drawings
2,948
lines of CSS

Built at Tempe High School.

Spotted a bug or have an idea? Report it here.