Skip to main content
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: 53 modules and 312 lessons from Year 9 foundations to HSC exam preparation, 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 lessons with a mix of explanation, worked examples, interactive coding exercises, and progress tracking. A syllabus tracker links outcomes and sub-points to the lessons that cover them and updates as students complete them.

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 objective response question types from the 2025 NESA online examination (multiple choice, multiple answer, fill-in-the-blank dropdowns and matching grids).

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, micro:bit, 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 742 cards covering key terms and concepts in Learning, Quiz (multiple choice), Game, Prompt and Answer modes — the last two with a flip-and-self-mark or type-your-answer option — and challenge a classmate head-to-head in PvP with a shared challenge code.

Circuit Diagram Tool

Build mechatronics circuit diagrams with a built-in shape library of microcontrollers (RPi Pico, Arduino Uno, ESP32), sensors and driver modules, plus the NESA-specified symbols for power sources, switches, outputs and passive components. Wiring is checked pin by pin to catch unwired connection points, reverse polarity, swapped I2C lines and missing power or ground, and the tool auto-generates a Bill of Materials (BOM) from the components on the canvas.

Programming Challenges

314 in-browser challenges across Python, SQL, NESA pseudocode, HSC-style flowcharts and Cyber CTF, including 174 Python challenges. All include automated validation and instant feedback.

Cyber CTF

Solve 27 capture-the-flag challenges covering encoding, classical cryptography, XOR, hashing and RSA. Progressive hints support each investigation, with server-verified flags and full solution walkthroughs after completion.

Pseudocode Validator

Dedicated pseudocode validator that enforces NESA's uppercase keywords, matched structures (IF / ENDIF, WHILE / ENDWHILE, FOR / NEXT…) and the 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 & Data

  • Python 3.13 + Flask 3, with Jinja templates and Blueprints
  • PostgreSQL with SQLAlchemy ORM and Alembic migrations
  • Redis for shared caching and rate-limit state
  • Tantivy (Rust) full-text index behind site-wide search, rebuilt on every deploy
  • Gunicorn application server hosted on Render.com

Browser Tools

  • Bootstrap 6, vanilla JavaScript, PWA service worker
  • Ace Editor for in-browser code editing (Python, SQL, pseudocode, C++ and C#)
  • Pyodide — full Python running entirely client-side for execution and automated test-case validation
  • sql.js (SQLite) — in-browser SQL execution and grading via WebAssembly
  • Draw.io (diagrams.net) embedded for flowcharts, DFDs, structure charts, class diagrams and circuits

Delivery & Testing

  • pytest for unit, integration, content and security tests
  • Playwright for end-to-end browser tests, run in parallel batches
  • mypy, pylint, ruff and ESLint static analysis, with architecture rules enforced as tests
  • GitHub Actions for continuous integration on pushes and pull requests
  • Automatic deployment to Render.com from main, released only when every check passes

Security

  • GitHub OAuth and Flask-Login session management
  • Global CSRF protection, nonce-based CSP, HTTPS and secure browser headers
  • Redis-backed rate limiting, server-side input bounds and fresh administrator checks for privileged operations
  • Bound database queries and defusedxml parsing for untrusted XML
  • CodeQL, Bandit and hash-pinned production dependencies

By the numbers

Measured directly from first-party source and content — vendored libraries, minified assets and import statements are excluded. The pytest figure is the current collected test-case count.

44,321
collected pytest cases
193
Python files
102
JavaScript files
140
Jinja templates (incl. partials)
83
Jinja partials
89,086
lines of Python
35,228
lines of JavaScript
54
pages of docs
2,124
Python docstrings
1,013
JSON content & spec files
312
SVG drawings
9,565
lines of CSS

Built at Tempe High School.

Spotted a bug or have an idea? .