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.

Flipcards (incl. PvP)

Practise key terms across Practice, Quiz, Flashcard, and PvP modes — challenge a classmate head-to-head 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
  • AlaSQL — in-browser SQL execution and grading
  • 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

A rough snapshot of what's under the hood. Numbers grow every time we ship.

24,900+
pytest tests
638
Python files
28
JavaScript files
140
Jinja templates
81
Jinja partials
296k
lines of Python
12.7k
lines of JavaScript
38
pages of docs
13,400+
Python docstrings
765
JSON content & spec files
286
SVG drawings
2,700+
lines of CSS

Built at Tempe High School.

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