Meet Canteen Insights
Start here A fictional Year 12 project, followed from problem to evaluation
Canteen Insights, the student Jordan, the canteen manager Sandra, the peer tester Priya, Kestrel Ridge High School and every survey result, quote, date and number on this page were invented for these notes. The sales data are generated by a program. Nothing here describes a real school, person or canteen.
Canteen Insights is a sales and stock dashboard for a school canteen. The canteen manager, Sandra, wants to see what sells, when it sells and what to reorder, so that popular items stop running out and fresh food stops being thrown away. Jordan, a Year 12 student, builds it as an HSC enterprise project.
How this page is organised
NESA describes the design and production process in four stages. This page follows them in order, and each stage shows the real artefacts a marker or client would expect to see, not a description of them.
| Stage | What Jordan produced | Where |
|---|---|---|
| Identifying and defining | Problem definition, requirements and constraints, Gantt chart with resources, social, ethical and legal review | Problem, Requirements, Schedule, Ethics and law |
| Researching and planning | Interview and survey results, data flow diagrams, system flowchart, decision tree, data dictionary, schema, storyboard, approach and budget | Research to Budget |
| Producing and implementing | A live dashboard, the SQL and spreadsheet formulas behind it, an implementation plan | Dashboard, Queries, Implementation |
| Testing and evaluating | Live test table, verification and validation, client feedback, evaluation, maintenance plan, process diary | Testing to Diary |
| Finish | A table linking every NESA dot point in the Enterprise project focus area to where this page shows it | Syllabus map |
The syllabus explanations live in the Enterprise project notes, and the management techniques are explained in the Project Management Guide. This page is the worked example that sits between them. Diagram notation follows NESA’s Enterprise Computing Course Specifications (© NESA), redrawn for these notes; the official document is on NESA’s website ↗.
Read it as a model, not a template. Notice what makes each artefact useful to someone who was not there: a named owner, a date, a measurable criterion, an expected result. When you build your own project, ask of every artefact whether a stranger could use it to check or rebuild your work.
The Client and the Problem
Artefact Client profile and problem definition
Problem definitionThe client and the setting
Sandra manages the canteen at the fictional Kestrel Ridge High School. She works with a small team of paid staff and parent volunteers, serving about the same set of twelve items every day. Sales are rung up on a till that can export a weekly file of what was sold. Orders to suppliers are placed on Fridays, and fresh food such as pies and rolls is prepared each morning.
At the moment Sandra decides how much to order and prepare from memory and a paper stock sheet that is counted by hand on Friday afternoons. The till export is filed and never looked at.
Problem statement
Problem statement (approved 10 July 2026). The canteen manager cannot easily see which items sell, on which days, or how much fresh food is thrown away, so she orders and prepares by habit. Popular items sometimes sell out and other items are wasted. She needs a simple way to see sales and waste, and to be told what to order next week.
A good problem statement names who has the problem, what is going wrong and what a solution must let them do, without describing the solution. Jordan deliberately did not write “build a dashboard”: a spreadsheet, a printed report or a better paper stock sheet might have solved it too, and choosing between them is part of the project.
Success criteria
Success criteria turn the problem into something that can be checked at the end. Jordan and Sandra agreed these four, and the evaluation comes back to each one.
| # | Criterion | How it will be measured |
|---|---|---|
| 1 | Sandra can read the top seller and the waste percentage for any chosen weeks | Timed trial with Sandra: under one minute, with no help |
| 2 | The dashboard’s totals match the till’s own figures | Three-way check of the dashboard, a SQL query and a spreadsheet on the same records |
| 3 | Sandra receives a reorder list she trusts and can explain | The rules are written as a decision tree that Sandra approves; each suggestion shows the rule used |
| 4 | Nothing collected identifies a student or staff member | Review of the till export and the stored fields |
Stakeholders
A stakeholder is anyone affected by the system. Sandra is the client and the main user. Canteen staff and volunteers count stock and would enter corrections. Students are affected indirectly by what the canteen stocks, but never use the system. The school leadership cares about food waste and cost, and the supplier receives Sandra’s orders. Jordan is the developer, and Priya, another student, agreed to act as a beta tester.
Requirements and Constraints
Artefact Functional and non-functional requirements, with constraints
Requirements specificationRequirements say what the system must do or be. Functional requirements describe behaviour, such as calculating waste. Non-functional requirements describe qualities, such as speed, accessibility or privacy. Each has a priority (Must, Should, Could) and, importantly, a way of being tested, shown in the last column.
| ID | Requirement | Type | Priority | Evidence (see tests) |
|---|---|---|---|---|
| FR1 | Show revenue, items sold, top seller and waste percentage for any chosen weeks | Functional | Must | N1, N2, N6, B1 |
| FR2 | Filter by week range, category and item | Functional | Must | B1 to B3, E9, E10 |
| FR3 | Show sales over time, sales by category and an item-by-weekday summary | Functional | Must | Client trial |
| FR4 | Suggest what to reorder using rules agreed with the client | Functional | Must | N3, B8, B9 |
| FR5 | Let the manager test a change of price or quantity and see the projected effect | Functional | Should | N4 |
| FR6 | Let the manager correct a day’s counts, refusing impossible values | Functional | Must | N5, B4 to B7, E1 to E8 |
| NFR1 | Easy to operate: the manager finds the top seller and waste percentage within a minute, untrained | Non-functional (usability) | Should | Client trial |
| NFR2 | Accessible: usable by keyboard, charts have text alternatives, readable on a phone, respects reduced-motion settings | Non-functional (accessibility) | Must | Checked in two browsers |
| NFR3 | Private: collects and stores no personal information | Non-functional (privacy) | Must | Design review |
| NFR4 | Reliable: totals agree with the till’s own reports | Non-functional (reliability) | Must | N6 |
| NFR5 | Quick: every panel recalculates after a filter change with no noticeable delay | Non-functional (performance) | Should | Client trial |
| NFR6 | Compatible: runs in the browsers on the canteen laptop and Sandra’s phone, with nothing to install | Non-functional (compatibility) | Must | Checked on both devices |
| NFR7 | Maintainable: each business rule lives in one place and is documented | Non-functional (maintainability) | Should | Documentation trial |
Constraints
A constraint is a limit the project has to live with. Unlike a requirement it is not negotiable by adding effort.
| Constraint | Detail | How the project responds |
|---|---|---|
| Time | Six weeks, from 6 July to 14 August 2026 | Fixed scope of Must items; Should items dropped first if the plan slips |
| Skills | Jordan knows HTML, JavaScript and spreadsheets; no server programming | The dashboard runs entirely in the browser |
| Money | Almost none: the school has no budget for software | Free tools only; see the budget |
| Hardware and data | One canteen laptop; the till exports a file each week and has no live link | Weekly import of a file rather than a live feed |
| Client availability | Sandra is free for about half an hour twice a week | Fixed check-ins; decisions saved up for them |
| Policy | The school’s healthy-food guidelines and privacy obligations apply | Reviewed in the next section |
A question that says identify or describe requirements is usually looking for a functional and a non-functional example, each tied to the scenario. “Fast” on its own scores poorly: “a filter change recalculates every panel without a noticeable delay” is testable. Do not confuse a constraint (a limit on the project, such as the budget) with a requirement (a property of the system).
Time and Resources: the Gantt Chart
Artefact Gantt chart with resources and percentage complete; weekly action plan
Project planJordan broke the six weeks into four phases that follow NESA’s stages, gave every task a self-explanatory name, an owner and a duration, marked the dependencies and put a milestone at the end of each phase. The chart below is the version at the end of Wednesday 29 July 2026, when the plan was updated with actual progress, as NESA asks (“charts should be regularly updated during development to reflect actual versus estimated times”).
Gantt chart
Gantt chart: the Canteen Insights project, with resources and progress
Six weeks, four phases, four milestones, with the work done shown as the solid part of each bar.
What to notice
- Each task has an owner (Jordan, Sandra or Priya) and a percentage complete. The solid part of a bar is done, the pale part remains.
- Arrows show dependencies: “Add reorder list, data checks” cannot start until “Add filters, pivot, what-if” is finished.
- Task 14 is 50% complete but 75% was planned by the status line (the dotted line). That is a warning to act on, not a failure to hide.
- Hollow diamonds are milestones: dates when something is approved or delivered, with no duration.
Try thisWork out which later tasks move if task 14 finishes on Friday 31 July instead of Thursday 30 July. Which milestone is at risk, and what would you drop first?
Reading the plan
The plan is a time and resource management tool because it answers four questions at a glance: what has to happen, in what order, who is doing it and whether the project is on track. At the status date, Phase 3 is 54% complete: the two finished tasks (2 and 3 days long), the half-finished filters task (4 days at 50%) and the unstarted reorder task add up to 7 of 13 working days. Phase 3 was expected to be further ahead, so Jordan did three things that day: recorded the reason in the process diary, moved the optional “export chart as an image” feature into a “Could” list, and used the spare Friday as a buffer.
Time/task action plan for the week
The Gantt chart shows the whole project. A time/task action plan zooms in on the next few days, so nothing depends on memory. This is Jordan’s plan for the week beginning Monday 27 July.
| Day | Task | Output | Done when | Status at end of Wed 29 Jul |
|---|---|---|---|---|
| Mon | Week-range and category filters | Filters working on the KPI tiles | Totals change correctly for three test filters | Done |
| Tue | Item filter and reconcile rules | Item list follows the category | Changing the category clears an item that no longer fits | Done |
| Wed | Item-by-weekday pivot table | Pivot with totals and shading | Grand total equals the KPI total | In progress |
| Thu | What-if sliders and model | Projected revenue and waste | No-change setting gives a change of $0.00 | Not started |
| Fri | Buffer, client check-in with Sandra | Feedback recorded | Sandra has seen the pivot table | Not started (buffer day) |
Both tools sit under “time and resource management”, which the Enterprise project notes explain in general terms. The notation used here is NESA’s (Course Specifications p.12, example 2). The Project Management Guide covers critical paths and how to recover a late task.
A Gantt question usually gives a task list with durations and dependencies and asks you to draw or complete the chart. Award yourself marks for a dated time scale, task names, correct start and end positions, dependency arrows, at least one milestone, and, if resources are asked for, a name against every bar. If percentage complete is required, the solid part must match the number.
Interviews, Surveys and Prototypes
Artefact Research summaries, analytical report extract, prototype log
Requirements researchJordan used more than one research tool, because each answers a different question. Interviews give depth, surveys give breadth, an analytical report of existing data gives evidence, and prototypes test ideas cheaply.
Interview with the client
A structured interview asks the same planned questions in the same order and records the answers. Jordan interviewed Sandra on Monday 6 July for 30 minutes, with open questions that invited stories rather than yes or no answers.
| Question | Summary of the answer |
|---|---|
| Walk me through how you decide what to order each week. | Looks at last week’s paper stock sheet on Friday, adds a bit “if the weather is cold”, and phones the order through. No sales figures are used. |
| What happens to food that is not sold? | Most fresh food is thrown out. Sandra thinks rolls and fruit are the worst but has never measured it. |
| Which decisions would you most like help with? | How many of each fresh item to prepare each day, and what to order for next week. |
| Who will use it, and on what? | Sandra, on the canteen laptop and sometimes her phone. Volunteers only enter corrections. |
| What must it never do? | Show which student bought what, or need anyone to install anything. |
“I know we run out of pies on Fridays. I don’t know how often, and I can’t tell you what it costs us.”
Sandra, canteen manager (fictional), interview, 6 July 2026Surveys
A survey collects the same answers from many people, so results can be counted. Jordan ran two short paper-and-form surveys on Tuesday 7 July and Wednesday 8 July: one of students (to test how common sell-outs are from the customer’s side) and one of canteen staff and volunteers (to find out how fresh-food quantities are decided today). Both were anonymous.
Sample question: “This term, how often have you found the item you wanted sold out at the canteen?” with fixed choices, so answers can be counted. A poor version, “Do you like the canteen?”, would not have led to any decision.
| Student survey (64 responses) | Never | Sometimes | Often |
|---|---|---|---|
| Found the item you wanted sold out | 14 (22%) | 34 (53%) | 16 (25%) |
| What would improve the canteen most? (64 responses) | Responses | Share |
|---|---|---|
| Shorter queues | 21 | 33% |
| More fresh and healthy choices | 19 | 30% |
| Nothing sold out | 15 | 23% |
| Lower prices | 9 | 14% |
| Staff and volunteer survey (6 responses): how do you decide how many pies to prepare? | Responses |
|---|---|
| The same as last week | 3 |
| Ask the manager | 2 |
| Guess from the weather | 1 |
Read the results critically. Nearly four in five students have met a sell-out at least sometimes, which supports the problem. But a sample of 64 students who chose to answer may not represent the school, and “shorter queues” came first, so a dashboard cannot claim to fix everything students want. Jordan wrote that limitation into the report below.
Analytical report from existing data
The most convincing evidence was already in the till export. Jordan loaded eight weeks of it into a spreadsheet and summarised what it showed. This is an extract from the report.
Findings, weeks 1 to 8 (fictional data). Meat pies were sold out (everything prepared was sold) on 8 of 8 Fridays. Overall, 8.0% of the items put out for sale were thrown away, costing $2,151.60 at cost price. Waste is concentrated in fresh food: ham salad rolls 22.7%, toasties 19.9%, fruit cups 19.6% and sausage rolls 17.1%, against 9.0% for pies.
Recommendation. Prepare more pies on Fridays and fewer on Mondays, and cut the preparation of rolls, toasties and fruit cups. Test the changes in a pilot before applying them to every item.
Limitation. The till records what was sold, not what customers wanted. On the days pies sold out, real demand was higher than the figures show.
Presenting the research
Jordan presented these results to Sandra and three volunteers in a ten-minute session using five slides. The aim of a presentation of research results is agreement on what to build, so each slide carried one message and one chart or table.
| Slide | Message | Evidence shown |
|---|---|---|
| 1 | The problem in one sentence | The approved problem statement |
| 2 | Sell-outs are real | Student survey chart; pies sold out on all 8 Fridays |
| 3 | Waste is concentrated | Waste percentage by item, from the till export |
| 4 | What the system will and will not do | Requirements list; the out-of-scope items |
| 5 | What we decide today | Approve the requirements, book the Thursday check-ins |
Prototypes
A prototype is a trial version built to test an idea before the full system exists. Jordan built four, each answering one question and each cheaper than the mistake it prevented.
| Prototype | Form | Date | Question it answered | Result |
|---|---|---|---|---|
| P1 | Spreadsheet with a pivot table of the export | Fri 10 Jul | Is there anything useful in the data? | Sandra immediately asked why pies were gone every Friday, and wanted weekdays as columns. Weekday view added to the requirements. |
| P2 | Paper storyboard, four screens | Thu 16 Jul | What should Sandra see first? | She circled waste percentage and the reorder list. A pie chart Jordan had drawn was crossed out. |
| P3 | Clickable page with placeholder numbers | Fri 24 Jul | Is it readable on the canteen laptop? | Text too small. Key figures enlarged; screens 2 to 4 placed on one page so Sandra need not click. |
| P4 | Working dashboard on the imported records | Wed 29 Jul | Do the numbers make sense to her? | She checked three totals against the till and all matched. She asked that the what-if panel, still to be built, show waste as well as revenue. |
If asked to apply tools to inform requirements, choose a tool to fit the question and give a sample question or output, as above. Compare tools when asked: an interview gives detail from few people, a survey gives numbers from many, and an analytical report shows what people did rather than what they say. Always note a limitation, such as a small or self-selected sample.
Modelling the System: DFDs and the System Flowchart
Artefact Level 0 and Level 1 data flow diagrams, system flowchart, informatics table
System modelsJordan drew three models. The data flow diagrams show what data moves, the system flowchart shows which devices and processes carry it, and a table of informatics names the participants, data and components. All use NESA’s notation.
Level 0 data flow diagram
The Level 0 diagram (or context diagram) shows the whole system as one process, with every external entity and no data stores. It is the picture Sandra checked first, because she could see what goes in and what comes out without any technical detail.
Data flow diagram
Level 0 data flow diagram: Canteen Insights
The whole system as one process, three external entities and six labelled flows.
What to notice
- One circle for the system, closed rectangles for entities, no data stores.
- Six flows cross the boundary. The two that carry the results of the dashboard, Dashboard and charts and Reorder list, both go to the Canteen manager.
- Pairs of flows between the same two symbols curve to opposite sides, each with its own label and arrowhead.
Try thisName a piece of data Sandra sends and a piece she receives. Then find where the till system fits.
Level 1 data flow diagram
Level 1 opens the circle: four processes, each a job the system does, and two data stores. The data stores are the database tables from the schema. Every Level 0 flow appears here again with the same label, which is how you check the two levels balance.
Data flow diagram
Level 1 data flow diagram: Canteen Insights
Four processes and two data stores, with every Level 0 flow still present.
What to notice
- Import sales and Check and correct data both write to the Sales store, and only Check and correct data changes the Items store (stock counts).
- Analyse sales and Decide reorders only read from the stores. They never write to them.
- The six Level 0 flows are still here: Sales export, Stocktake and corrections, Saved or error message, Filters and what-if settings, Dashboard and charts, Reorder list.
Try thisWhich process would break first if the till changed its export format, and what would Sandra see?
Putting data stores on a Level 0 diagram; joining two entities or two stores directly; leaving arrows unlabelled; labelling a flow with an action (“process”) rather than the data; and forgetting that a Level 1 diagram must show every Level 0 flow.
System flowchart
A system flowchart shows the main processes and devices, and the arrows show the direction of data. It answers a different question from the DFD: what hardware and storage does the system touch? This one uses eight of NESA’s nine symbols; nothing in Canteen Insights needs magnetic tape.
System flowchart
System flowchart: Canteen Insights
Inputs, processes, storage, displays, a paper document, a manual step and a cloud backup.
What to notice
- Online input for the till sales and the typed stocktake, direct access storage for the database, online display for the dashboard and messages, a paper document for the printed reorder list.
- The database and the Import process share a double-headed arrow because the process both reads and writes.
- A manual operation, ordering from the supplier, follows the printed list. Sandra, not the software, places the order.
- A telecommunications link joins the database to the cloud backup.
Try thisWhich symbol would you use for the till itself if it printed a paper receipt for each sale?
Informatics: participants, data and components
Informatics is the science of processing data for storage and retrieval. To clarify each of the relevant informatics in the new system, Jordan listed who takes part, what data exist, and which components handle them at each step.
| Step | Participants | Data | Components | Information produced |
|---|---|---|---|---|
| Collect | Canteen staff at the till | Item, quantity, date and time of each sale (no customer details) | Till, weekly export file | Sales export |
| Store | Jordan (import), Sandra (stock counts) | Sales records, item list, stock on hand | Laptop, browser, database, cloud backup | Consistent tables |
| Process | The system | Totals, averages, waste percentages, days of stock | Dashboard code and reorder rules | Figures and recommendations |
| Retrieve and display | Sandra (and volunteers for corrections) | Filtered records | Dashboard, data table, printer | Charts, tables and the reorder list |
2025 HSC candidates were asked to compare Level 0 and Level 1 diagrams using the correct symbols. Marks come from things a marker can see: a circle for a process, an open-ended rectangle for a store, a closed rectangle for an entity, labelled curved arrows with heads, one process and no stores at Level 0, several processes and at least one store at Level 1. Add one sentence saying what each level is for.
Reorder Rules: the Decision Tree
Artefact Decision tree that the dashboard runs
Decision treeThe rules for reordering had to be ones Sandra understood and could challenge, so Jordan drew them as a decision tree before writing any code. A decision tree represents all possible combinations of decisions and their resulting actions, and every path ends in a final action.
Decision tree
Decision tree: what to order for next week
Five possible actions, each reached by a different path.
What to notice
- Rectangles, not diamonds, with every branch labelled Yes or No.
- Perishable items are judged on waste. Non-perishable items are judged on days of stock left, worked out as stock on hand divided by average units sold per day.
- The thresholds are boundaries: exactly 3.0 days is not under 3, so it gives Reorder soon; exactly 10% waste is not over 10%, so it gives Order forecast + 10%.
Try thisTrace Bottled water: 58 on hand and about 36 sold a day. Which action does the tree give?
The tree is the code
This diagram is not a picture of the rules. It is the rules. The function that decides the action in the dashboard’s code has one branch for each path, in the same order:
function decide(perishable, wastePct, daysCover) {
if (perishable) return wastePct > 10 ? 'forecast' : 'buffer';
if (daysCover < 3) return 'now';
if (daysCover < 5) return 'soon';
return 'hold';
}Two other parts of the reorder list follow from the tree. The forecast is the average units sold per day over the last ten trading days, times five days. Order forecast + 10% adds a buffer so fresh items do not sell out, and Order to forecast leaves the buffer off where waste is high. Reorder now and Reorder soon order enough for five days of sales plus a 20% buffer, less what is on hand. In the dashboard, the list shows which rule each suggestion used, so Sandra can disagree with a specific step.
| Item (in the sample data) | Path through the tree | Action |
|---|---|---|
| Bottled water: 58 on hand, about 36 a day | Not perishable, 1.6 days left (under 3) | Reorder now |
| Flavoured milk: 70 on hand, about 19 a day | Not perishable, 3.7 days left (3 or more, under 5) | Reorder soon |
| Popcorn: 95 on hand, about 18 a day | Not perishable, 5.3 days left (5 or more) | Hold |
| Ham salad roll: waste last week 16.2% | Perishable, waste over 10% | Order to forecast |
| Meat pie: waste last week 5.2% | Perishable, waste 10% or less | Order forecast + 10% |
NESA draws decision trees as rectangles joined by labelled branches (Course Specifications p.8). A frequent error is drawing diamonds, which belong to flowcharts. Check that branches from one question cover every case exactly once, so a value such as exactly 3.0 days cannot fit two branches. When asked to test a tree, choose data on both sides of every threshold as well as on it.
Data Design: the Dictionary and the Schema
Artefact Data dictionary and schema
Data designData dictionary
A data dictionary describes every field: its name, type, format, size, meaning and an example. Formats use NESA’s notation: X is any character, N is a digit and # is a numeric digit. Jordan wrote one for each of the three tables so anyone importing data knows exactly what will be accepted.
| Field name | Data type | Data format | Field size | Description | Example |
|---|---|---|---|---|---|
| DailySales | One row for each item on each trading day | ||||
| SaleID | Text | XNNNN | 5 | Unique record number: the letter S then four digits | S0325 |
| SaleDate | Date | DD/MM/YYYY | 10 | Trading day (Monday to Friday) | 10/06/2026 |
| ItemID | Text | XNN | 3 | Item sold; links to the Items table | I01 |
| Prepared | Integer | ### | 3 | Units put out for sale that day, 0 to 500 | 46 |
| Sold | Integer | ### | 3 | Units sold; never more than Prepared | 42 |
| Wasted | Integer | ### | 3 | Units thrown out; Sold plus Wasted never exceeds Prepared | 4 |
| Items | One row for each menu item | ||||
| ItemID | Text | XNN | 3 | Unique item number | I01 |
| ItemName | Text | XXX…XXX | 20 | Name of the item | Meat pie |
| CategoryID | Text | XN | 2 | Category of the item; links to Categories | C1 |
| UnitPrice | Currency | $##.## | 5 | Selling price in dollars | $4.50 |
| UnitCost | Currency | $##.## | 5 | Cost to the canteen per unit, in dollars | $2.10 |
| Perishable | Boolean | 1 | Y if unsold units are thrown out, N if they go back on the shelf | Y | |
| OnHand | Integer | ### | 3 | Units in stock at the last Friday stocktake (0 for fresh food) | 58 |
| Categories | One row for each category | ||||
| CategoryID | Text | XN | 2 | Unique category number | C1 |
| CategoryName | Text | XXX…XXX | 20 | Name of the category | Hot food |
Schema
The schema shows the structure: which tables exist, which field is each table’s primary key, and how tables are linked. Jordan normalised the data: an item’s name, price and category are stored once in Items, not repeated in each of the 480 sales rows. If a price changes, one row changes, and the data cannot contradict themselves.
Schema
Schema: the Canteen Insights database
Three tables joined by two one-to-many relationships.
What to notice
- (P) marks the primary key of each table and (F) a foreign key. A foreign key holds a primary key value from another table.
- One item has many sales rows, and one category has many items. The 1 is at the “one” end and the infinity sign at the “many” end.
- The relationships are what make a join possible in SQL: Items.ItemID = DailySales.ItemID.
Try thisWhere would you store the supplier if each item came from one supplier? Sketch the new table and its foreign key.
A data dictionary question expects all six NESA columns and sensible formats: a fixed-length code such as XNNNN is checked more easily than free text. For a schema, mark every primary key, every foreign key and the 1 and infinity ends of each relationship. When asked to explain normalisation, say that duplicated data can be updated inconsistently, and give an example from the scenario.
Screen Design: the Storyboard
Artefact Storyboard and the design decisions behind it
StoryboardA storyboard shows each screen and how the user moves between them. Jordan drew four and took them to Sandra on Thursday 16 July. Designing for ease of operation meant asking of every screen: could Sandra use this on a busy Friday, with one hand and no manual?
Storyboard
Storyboard: the Canteen Insights dashboard
Four screens with a Help button, navigation buttons and a content panel on each.
What to notice
- The highlighted button shows the current screen. A dot and arrow show that a button opens another screen.
- Every screen has the same layout and the same button positions, so Sandra learns the pattern once.
- Exit is always at the bottom and looks different from the navigation buttons.
Try thisWhich screen would you add for entering corrections? Sketch it and say which buttons must link to it.
Design decisions
| Decision | Reason | What changed after testing |
|---|---|---|
| Four numbers first (revenue, items sold, top seller, waste) | Sandra circled these when shown the paper storyboard | Made larger after the laptop trial |
| Plain words on every label | Volunteers should not need to learn terms such as “pivot” | The pivot table is captioned “items by weekday” |
| Filters above the figures they change | What she selects should be next to what it affects | Kept |
| Colour is never the only signal | Some people have colour-vision differences, and phones are used in bright sunlight | Reorder actions use words and symbols as well as colour |
| Four screens | Simple to draw and to explain | Screens 2 to 4 became panels on one page after Sandra said “I don’t want to click” |
The last row shows why a design is not finished when it is approved. Prototype P3 showed a better layout than the storyboard. Jordan updated the design and recorded the change, rather than building something that no longer matched the plan.
Computational, Design and Systems Thinking
Artefact Three ways of thinking, applied to the project
Thinking skillsThe syllabus asks how three kinds of thinking help in designing and developing a system. Jordan used all three, at different moments, on the same problem.
| Thinking | What it means | Where it appears in Canteen Insights |
|---|---|---|
| Computational thinking | Analysing a problem so that a person or a computer can solve it: organising data logically, breaking a problem into parts, interpreting patterns and designing algorithms. | Decomposition: the dashboard is filters, KPIs, charts, pivot, what-if, reorder and data entry, each built and tested alone. Pattern recognition: Fridays are busiest and pies always sell out. Abstraction: a sale is just item, day and quantity; who bought it is deliberately ignored. Algorithm: the reorder rules. |
| Design thinking | Understanding a need, generating ideas and refining a design by testing, with economic, environmental and social impacts considered throughout. | Empathise: the interview and the survey. Define: the problem statement. Ideate: the spreadsheet, the printed report and the dashboard were all considered. Prototype and test: P1 to P4. Waste reduction is an environmental and economic benefit. |
| Systems thinking | Understanding how connected parts interact and how a change in one affects the others. | The canteen is a loop: orders lead to stock, stock to sales, sales to waste, and waste feeds back into orders. The dashboard adds a feedback link. Changing a price changes demand, which changes preparation and waste, and the what-if panel makes that chain visible. |
Notice that the three are not competing methods. Systems thinking shows where the problem sits, design thinking keeps the project close to the people it serves, and computational thinking gets the solution into a form a computer can run.
Working with the Client: Collaboration and Negotiation
Artefact Collaboration set-up, needs versus wants, and the way of working
CollaborationOnline collaboration
Jordan, Sandra and Priya used ordinary tools rather than a purpose-built project system. Files lived in a shared school folder with version history, so any earlier copy could be recovered. Sandra sent each week’s till export to Jordan through the school email system. A single feedback log, a shared document with the date, who said it, what changed and its status, meant nothing said in a hallway was lost.
Negotiating needs and wants
Clients often ask for more than the time allows. Jordan sorted Sandra’s requests into needs and wants and negotiated the boundary using the priorities from the requirements.
| Request | Need or want? | Outcome |
|---|---|---|
| See waste percentage and top seller | Need | Must (FR1) |
| Suggest what to order | Need | Must (FR4); rules approved by Sandra |
| Test a price change | Want, but cheap to build | Should (FR5) |
| Live link to the till | Want | Out of scope: the till has no live feed. Weekly import instead. |
| Email alerts when stock is low | Want | Could; recorded for a later version |
| Online pre-ordering by students | Want | A different project; recorded as out of scope |
Criteria for working collaboratively
Jordan chose collaborating and managing criteria at the start, so behaviour could be judged against something later.
| Criterion | What it looked like in this project |
|---|---|
| Designing for ease of operation and maintenance | Plain-language labels, one page, a written maintenance guide (see maintenance) |
| Clarifying the informatics | The informatics table agreed with Sandra before the build |
| Outlining the role of participants, data and components | The same table, plus the Level 1 diagram |
| Negotiating user and client needs and wants | The table above, signed off at the requirements milestone |
| Working collaboratively | Fixed twice-weekly check-ins, a shared feedback log, Priya as a beta tester who reported problems on the log |
Choosing a Development Approach
Artefact Approach comparison and justification
Development approachJordan compared NESA’s five approaches against the project’s facts: unclear requirements at the start, one developer, a client who is available in short bursts, no money and a fixed end date.
| Approach | How it works | Fit for Canteen Insights | Verdict |
|---|---|---|---|
| Waterfall (structured) | Finish each stage completely before starting the next | Needs the requirements to be right first. Sandra could not say what she wanted until she saw numbers. | Rejected |
| Agile | Short cycles of build, review and adjust | Weekly review with the client suits Sandra’s availability. Full agile roles suit teams, not one student. | Borrowed the short cycles |
| Prototyping | Build a rough version, get feedback, improve it | Sandra reacts far better to something on screen. Four prototypes answered the main questions cheaply. | Chosen |
| End-user development | The user builds the system, often with a spreadsheet | Sandra has neither time nor the confidence, and a spreadsheet alone cannot check entries. | Rejected |
| Outsourcing | Another organisation builds it | No money, and the sales data and settings need to stay under the school’s control. | Rejected |
Decision: prototyping, run as an iterative approach with a short cycle each week: build, show Sandra, record feedback, adjust. Two features of the project made the choice: the requirements were uncertain, and changing a prototype was far cheaper than changing a finished system. The risk of prototyping is that it never ends. Jordan controlled it with the Gantt chart and by fixing the Must items first.
The changing nature of enterprise
Some features of this project reflect how enterprise projects are now run, and some show what it would look like if they were run another way.
| Trend | In this project | If the project were larger |
|---|---|---|
| Working remotely | Much of the build happened at home. Files, feedback and till exports moved through shared folders and school email. | Time-zone gaps and slower answers; clear written communication matters more. |
| Freelance work | Jordan behaves like a freelancer: one client, a defined brief, a fixed end date and no employer to fall back on. | The brief and the approval milestones protect both sides. |
| Offshore development | Not used. The client is a single local canteen. | Could cut costs but adds time-zone, language and data-location questions. |
| Growth of start-ups | The same dashboard could suit other canteens if the import step were generalised. | Digital tools and cloud services let a very small team start and grow a product with little capital. |
Choosing an approach is a justify task: name the approach, then link it to a fact in the scenario. “Agile is flexible” is a definition; “agile suits this project because the client can review something every week and requirements will change” is a justification. Show that you considered a different approach and why it fits less well.
Budget
Artefact Project budget with spreadsheet formulas
BudgetA budget lists what a project will cost and where the money comes from. Canteen Insights needs almost no cash, but Jordan still built one, because a project that has not counted its costs cannot say whether it was worth doing. Time is shown separately, as a notional cost, because Jordan is not being paid.
| Item | Type | Quantity | Unit cost | Cost | Formula in the Cost column |
|---|---|---|---|---|---|
| Development tools (browser, text editor, free spreadsheet) | Cash | 1 | $0.00 | $0.00 | =C2*D2 |
| Printing the quick-reference guide | Cash | 10 | $0.60 | $6.00 | =C3*D3 |
| Laminating the guide | Cash | 10 | $1.20 | $12.00 | =C4*D4 |
| Contingency (10% of cash costs above) | Cash | $1.80 | =0.1*SUM(E2:E4) | ||
| Cash total | $19.80 | =SUM(E2:E5) | |||
| Jordan’s time (notional, 45 hours at $20 an hour) | Notional | 45 | $20.00 | $900.00 | =C7*D7 |
| Sandra’s time (5 sessions of half an hour) | Client time | 2.5 | not costed |
Comparing cost and benefit
In the eight sample weeks, the waste cost $2,151.60 at cost price. If the reorder list helped the canteen cut that by a quarter, the saving would be about $537.90 every eight weeks (=0.25*2151.60), which is more than the whole cash budget. That is an estimate, not a promise: it assumes the waste can be reduced without causing more sell-outs. It is one measure that the evaluation checks.
NESA lists budget among the tools that support design and development. Show the working: columns for quantity and unit cost, a formula for each line and a total. In an exam, write formulas using NESA’s functions (such as SUM) and cell references, and state any assumption in words.
The Live Dashboard
Artefact A working solution you can use in the browser
The productThis is Canteen Insights. It runs entirely in your browser, on 480 generated sales records: eight weeks (Monday 4 May to Friday 26 June 2026) of twelve items in five categories. Nothing you do is sent anywhere or stored. The data were made by a seeded random-number program with built-in patterns, such as busy Fridays, a sports carnival on Wednesday of week 5 and some wet days, so they are the same every time you load the page.
- Set the measure to Items sold, choose Hot food and read the Fri column of the pivot table. Which item has the biggest Friday total? Open the data table and check whether it sold everything that was put out on those days.
- Click the Drinks bar in the category chart, then look at week 5 in the line chart. What happened on the Wednesday?
- In the what-if panel choose Ham salad roll and lower the items put out each day. What happens to waste, and at what point does it start to sell out?
- Read the reorder list, then find the same rules in the decision tree.
- Try to break the Correct a record form with the example buttons, then with your own bad input.
How the dashboard meets the requirements
| Panel | Requirement | How it works |
|---|---|---|
| Filters | FR2 | Week range, category and item. The item list follows the category; if the two contradict each other, the item is cleared and a notice says why. A reversed week range is swapped and a notice appears. |
| Key figures | FR1 | Revenue = the sum of Sold × UnitPrice. Items sold = the sum of Sold. Top seller = the item with the most units. Waste = Wasted ÷ Prepared. Each compares with the same number of earlier weeks when there are enough. |
| Line and bar charts, pivot table | FR3 | Drawn as inline SVG from the filtered records. The bar chart is also a set of buttons: choosing a bar sets the category filter. The pivot shades the busiest cells. |
| What-if | FR5 | Demand at a new price = current demand × (old price ÷ new price) to the power of an assumed elasticity; units sold is the smaller of demand and items put out. Fresh food not sold is thrown out. |
| Reorder list | FR4 | One function, decide(), is the decision tree. Each suggestion shows the rule it used. |
| Data table | NFR4 | Shows the records behind every figure, and can be downloaded as a CSV file. |
| Correct a record | FR6 | Checks presence, type, range, date format and cross-field rules before saving anything. Every accepted change recalculates every panel. |
Built to be used by everyone
- Keyboard: every control can be reached with Tab. The bars are buttons, and in the line chart the left and right arrow keys, Home and End read each day.
- Text alternatives: each chart has a text summary, and both charts have a table view (the daily figures table and the data table).
- Colour is never alone: the reorder actions are words, and selected bars are labelled as well as coloured.
- Themes and motion: it follows the light and dark themes of these notes, and any movement is switched off when your device asks for reduced motion.
- Phones: the layout is single-column at phone width, and tables scroll inside their own frame.
The dashboard’s code is one file, js/pages/example-project.js, in two halves: an engine of plain functions (the data, the calculations, the reorder rules and the checks on typed data) and the code that draws it. Keeping calculation and drawing apart is what let Jordan test the numbers without looking at a screen. The test table runs those same functions.
Questions on dashboards ask you to select or justify a visualisation. Match the chart to the question: a line for change over time, bars for comparing categories, a table when exact values matter. Say what decision it supports (“which day should more pies be made?”), and mention that a chart needs a text or table alternative for users who cannot see it.
SQL and Spreadsheet Formulas Behind the Numbers
Artefact Queries and formulas that produce the dashboard’s figures, checked live
Queries and formulasJordan’s test for “are the totals right?” was to get the same numbers by two other routes: a SQL query, and spreadsheet formulas. The queries use only the four keywords in NESA’s Course Specifications, SELECT, FROM, WHERE and ORDER BY, and tables are joined by matching key fields in the WHERE clause. Because those keywords select and sort rows but do not add them up, the totals come from adding a column of the result, exactly as you would in a spreadsheet.
Query A: one item, one week
“Show every sales row for meat pies in week 5, with the price.” The result has five rows (Monday to Friday). Adding Sold gives 215 pies, and Sold × UnitPrice gives $967.50.
SELECT DailySales.SaleDate, Items.ItemName, DailySales.Prepared, DailySales.Sold, DailySales.Wasted, Items.UnitPrice
FROM DailySales, Items
WHERE Items.ItemID = DailySales.ItemID
AND DailySales.SaleDate >= '01/06/2026'
AND DailySales.SaleDate <= '05/06/2026'
AND Items.ItemName = 'Meat pie'
ORDER BY DailySales.SaleDate ASC, Items.ItemName ASCChecking in your browser…
Query B: a category over several weeks
“Show every drinks sale from week 3 to week 5.” This one joins three tables. Each extra table needs its own line of key equality in WHERE.
SELECT DailySales.SaleDate, Items.ItemName, DailySales.Prepared, DailySales.Sold, DailySales.Wasted, Items.UnitPrice
FROM DailySales, Items, Categories
WHERE Items.ItemID = DailySales.ItemID
AND Categories.CategoryID = Items.CategoryID
AND DailySales.SaleDate >= '18/05/2026'
AND DailySales.SaleDate <= '05/06/2026'
AND Categories.CategoryName = 'Drinks'
ORDER BY DailySales.SaleDate ASC, Items.ItemName ASCChecking in your browser…
Query C: where is the waste?
“List the days on which ten or more units of a perishable item were thrown out, worst first.” The comparison operators and the sorted output do the analysis. Press the button to run this exact text in the browser and compare the count with a plain JavaScript filter over the same records.
SELECT DailySales.SaleDate, Items.ItemName, DailySales.Prepared, DailySales.Wasted
FROM DailySales, Items
WHERE Items.ItemID = DailySales.ItemID
AND Items.Perishable = 'Y'
AND DailySales.Wasted >= 10
ORDER BY DailySales.Wasted DESC, DailySales.SaleDate ASCThe same numbers in a spreadsheet
In a spreadsheet the sales rows go on a Sales sheet and the item list on an Items sheet. The formulas use only functions from NESA’s list: SUM, MAXIMUM, IF and LOOKUP. LOOKUP needs the ItemID column to be sorted ascending, which it is (I01 to I12). References to the Items sheet are absolute ($A$2:$A$13) so they stay fixed when the formula is filled down; references to the current row are relative.
| Cell | Formula | What it does |
|---|---|---|
| Sales!F2 (Revenue) | =D2*LOOKUP(B2,Items!$A$2:$A$13,Items!$D$2:$D$13) | Sold times the price found by looking up the ItemID |
| Sales!G2 (In range?) | =IF(A2>=Summary!$B$1,IF(A2<=Summary!$B$2,1,0),0) | 1 if the date is inside the chosen range, otherwise 0 |
| Sales!H2 (Revenue counted) | =F2*G2 | Revenue for rows in range only |
| Summary!B4 (Revenue) | =SUM(Sales!H2:H481) | The revenue tile |
| Summary!B5 (Items sold) | =SUM(Sales!I2:I481) | The items-sold tile (column I is =D2*G2) |
| Summary!B6 (Waste %) | =SUM(Sales!J2:J481)/SUM(Sales!K2:K481) | Wasted divided by prepared (J is =E2*G2, K is =C2*G2) |
| Summary!B7 (Top seller units) | =MAXIMUM(Summary!E2:E13) | Highest of the twelve item totals, found with a pivot table or a sorted list |
| Items!J2 (Action, non-perishable) | =IF(I2<3,"Reorder now",IF(I2<5,"Reorder soon","Hold")) | The bottom half of the decision tree, as nested IFs (I is days of stock) |
Spreadsheet software names these functions differently (MAXIMUM is written MAX in most packages), so in the exam use NESA’s wording.
Live check: dashboard, SQL and spreadsheet
The panel below follows the dashboard’s filters. It rewrites the query for whatever you have selected, runs it with a small interpreter for NESA’s SQL, applies the spreadsheet formulas row by row, and compares all three. Because it reads the same data as the dashboard, it still agrees after you save a correction in the form above.
Real SQL can add up values for you with SUM and GROUP BY, which would return the totals directly. Those are not in NESA’s list of keywords, so an HSC answer should not depend on them. They are worth knowing about, and a database used in the real world would use them.
2025 HSC candidates were asked to write a query using four SQL keywords and a join. Full marks need SELECT with the right fields, FROM with every table, WHERE with both the search condition and the key equality that joins the tables, and ORDER BY with ASC or DESC. Missing the join condition is the most common lost mark: without it every row of one table is paired with every row of the other.
Implementation Plan
Artefact Implementation plan: method, integration, training, risks and testing
Implementation planA system that works on the developer’s laptop is not yet a solution. An implementation plan says how it will move into the real setting and how Jordan will know it is feasible, meaning that it can actually be done with the time, skills and equipment available.
Design thinking and the tools used
Jordan followed a design-thinking cycle and used a tool at each step. Each is a section of this page.
| Step | What happened | Tool used |
|---|---|---|
| Empathise | Interviewed Sandra; surveyed students and staff | Interview and survey |
| Define | Wrote the problem and requirements | Problem statement |
| Ideate | Compared a spreadsheet, a report and a dashboard | Approach comparison |
| Prototype | Built P1 to P4 | Storyboard, decision tree, Gantt chart |
| Test | Ran the tests and the client trial | Test table |
Risk analysis
A risk is something that might go wrong. For each one Jordan estimated how likely it is and how much damage it would do (Low, Medium, High) and planned what to do about it.
| Risk | Likelihood | Impact | Response |
|---|---|---|---|
| The till export format changes | Medium | High | The import refuses a file with unexpected headings and says why; the old file is kept |
| The reorder list causes a shortage | Medium | Medium | The list is a suggestion, and the first two weeks are a pilot with a limited range |
| Data are lost or overwritten | Medium | High | A weekly copy goes to the cloud backup; every correction is logged |
| A personal detail slips into an export | Low | High | The import keeps only item, quantity and date; other columns are dropped |
| The canteen browser is out of date | Low | Medium | Tested in two browsers; no features that need a recent one |
| Jordan is away for a week | Medium | Medium | A buffer day in the plan; documentation lets a teacher help |
| Sandra loses confidence after one wrong suggestion | Medium | High | Each suggestion shows its rule, so she can see why it was made |
Hardware and software integration
Canteen Insights uses equipment that already exists, so integration is mostly a weekly routine. On Friday the till exports the week’s file to the shared folder. On Monday morning Sandra (or a volunteer) opens the dashboard, imports the file and checks the message it shows. The laptop’s browser runs the dashboard, the printer produces the reorder list and the database is copied to the cloud backup. The system flowchart shows these links. The one integration risk, the export format, is covered in the table above.
Training and documentation
| What | Who | When | How Jordan knows it worked |
|---|---|---|---|
| 30-minute walk-through with the live dashboard | Sandra and two volunteers | Week 1 of the pilot | Each completes the same three tasks without help |
| Laminated one-page quick guide | Everyone who uses the canteen laptop | Given out at the walk-through | A volunteer uses it to enter a correction |
| Maintenance guide | Sandra, the school’s teacher-librarian or a later student | Handover | Priya follows it cold (see maintenance) |
| Check-in after two weeks | Sandra | End of the pilot | Questions and problems go into the feedback log |
Preferred implementation method: pilot
NESA names four methods of implementation: direct, parallel, pilot and phased. Jordan chose a pilot. For two weeks only Sandra uses Canteen Insights, and only for hot food, sandwiches and fresh food, the three categories where the data show waste. Drinks and snacks stay on the paper stock sheet. Then the dashboard is extended to everything, and the volunteers start entering corrections.
Animated diagram
Implementation methods: switching from the old system to the new
Watch the steps, or step through with the arrow keys.
What to notice
- Direct switches every office at once, so a fault hits everyone. Parallel keeps the old system running as a fallback.
- Pilot moves one office first. Phased moves one module at a time across all offices.
Try thisUse the tabs to compare how each method behaves when the new system has a fault. Which would suit a canteen with one till and one manager?
| Method | Why it was not, or was, chosen |
|---|---|
| Direct | Too risky. A wrong suggestion in week one would affect the whole canteen with no fallback. |
| Parallel | Possible, but Sandra would do all the work twice for every item, and she has little time. |
| Pilot | Chosen. One user and two categories limit the damage of a fault. The categories not in the pilot act as a comparison, showing whether the dashboard’s advice reduces waste. |
| Phased | A close second. The pilot is already phased by category, but it also limits who uses it. |
Testing methodology
Jordan planned testing before the build ended. The next part covers it in detail, and the plan draws on the methods in the Course Specifications: functional testing against the requirements, live and simulated data (the sample data are simulated; the pilot uses live data), beta testing by Priya, and acceptance testing by Sandra.
A question on implementation asks you to recommend or justify a method for a scenario. Name one of the four methods, describe how it would run here, and give a reason that comes from the scenario (a single-site canteen, a manager with little time, a real cost if the system is wrong). Comparing one other method earns the higher marks.
Testing with Normal, Boundary and Erroneous Data
Artefact Test table that runs live in your browser
Test plan and resultsTesting checks whether a system does what it should, and a good test set does not just try things that work. Jordan chose data of three kinds for every input, because different faults hide in different places.
| Kind of data | What it is | Fault it finds | Example here |
|---|---|---|---|
| Normal | Typical valid input | A calculation that is simply wrong | All data: $41,299.40 |
| Boundary | Values at and either side of a limit | A limit that is off by one (the classic “< or <=” slip) | Sold = prepared is accepted; sold = prepared + 1 is refused |
| Erroneous | Invalid or impossible input | A system that crashes or accepts nonsense | Sold = abc; 31/02/2026 |
The test table
Each row gives the input, the expected result worked out before testing, and the actual result. Jordan worked the expected totals out in a spreadsheet, and wrote the expected messages from the rules in the requirements. In this table the Actual column is filled in by your browser, just now, by running the dashboard’s own functions on a fresh copy of the sample data; the Result column compares the two.
Running the tests…
| ID | Test and input | Expected | Actual | Result |
|---|---|---|---|---|
| Normal data: typical inputs that the system must handle | ||||
| N1 | Totals for all dataAll weeks, all categories, all items | $41,299.40 and 10,953 items | Needs JavaScript | – |
| N2 | A filtered totalCategory Drinks, weeks 3 to 5 | $3,536.50 and 1,129 items | Needs JavaScript | – |
| N3 | Reorder rule, low stockBottled water, 58 on hand, latest ten days of sales | Reorder now, order 160 | Needs JavaScript | – |
| N4 | What-if with nothing changedMeat pie at $4.50, current quantity | Revenue change $0.00 | Needs JavaScript | – |
| N5 | A valid correction10/06/2026, Meat pie, prepared 46, sold 44, wasted 2 | Accepted | Needs JavaScript | – |
| N6 | Three-way agreementDashboard, SQL and spreadsheet, all data and Meat pie in week 5 | All three methods agree | Needs JavaScript | – |
| Boundary data: values at the edge of what is allowed | ||||
| B1 | Smallest week rangeWeek 5 to week 5 | 60 records | Needs JavaScript | – |
| B2 | Exactly enough earlier weeks to compareWeeks 5 to 8 | Compared with weeks 1 to 4 | Needs JavaScript | – |
| B3 | One week short of enoughWeeks 4 to 8 | No comparison | Needs JavaScript | – |
| B4 | Sold equals preparedPrepared 46, sold 46, wasted 0 | Accepted | Needs JavaScript | – |
| B5 | Sold one more than preparedPrepared 46, sold 47, wasted 0 | Rejected: Sold (47) plus wasted (0) is more than prepared (46). | Needs JavaScript | – |
| B6 | Largest allowed quantityPrepared 500, sold 500, wasted 0 | Accepted | Needs JavaScript | – |
| B7 | One over the largest quantityPrepared 501, sold 44, wasted 2 | Rejected: Prepared must be between 0 and 500 (you entered 501). | Needs JavaScript | – |
| B8 | Reorder threshold: days of stockExactly 3.0 days, then 2.9 days | Reorder soon at 3.0 days; Reorder now at 2.9 days | Needs JavaScript | – |
| B9 | Reorder threshold: wasteExactly 10%, then 10.1% | Order forecast + 10% at 10%; Order to forecast at 10.1% | Needs JavaScript | – |
| Erroneous data: input that is wrong and must be refused or handled | ||||
| E1 | Letters in a number fieldSold = abc | Rejected: Sold must be a whole number, digits only (you entered "abc"). | Needs JavaScript | – |
| E2 | A negative quantitySold = -5 | Rejected: Sold cannot be negative (you entered -5). | Needs JavaScript | – |
| E3 | A required field left emptyPrepared left blank | Rejected: Prepared is required. | Needs JavaScript | – |
| E4 | A date that does not existDate = 31/02/2026 | Rejected: 31/02/2026 is not a real date. | Needs JavaScript | – |
| E5 | A day the canteen is closedDate = 13/06/2026 (a Saturday) | Rejected: 13/06/2026 is a Saturday; the canteen trades Monday to Friday. | Needs JavaScript | – |
| E6 | A date in the wrong formatDate = 10 June 2026 | Rejected: Date must be written dd/mm/yyyy, for example 10/06/2026. | Needs JavaScript | – |
| E7 | A fraction of an itemSold = 3.5 | Rejected: Sold must be a whole number of items (you entered 3.5). | Needs JavaScript | – |
| E8 | A rule between fieldsFruit cup: prepared 20, sold 15, wasted 2 (fresh food not sold must be thrown out) | Rejected: Fruit cup is perishable, so everything not sold is thrown out: wasted should be 5. | Needs JavaScript | – |
| E9 | Filters that contradict each otherItem Meat pie is selected, then the category is changed to Drinks | Item filter "All items"; The item filter was cleared because Meat pie is not in Drinks. | Needs JavaScript | – |
| E10 | Week range the wrong way roundFrom week 6, to week 3 | Weeks 3 to 6. The From week was after the To week, so the two were swapped. | Needs JavaScript | – |
| E11 | A selection with no records at allCategory Drinks and item Meat pie, forced together | 0 records, waste n/a, top seller none | Needs JavaScript | – |
The dashboard handles the erroneous cases, it does not just survive them. In the Correct a record form above, every rule in E1 to E8 produces a message that says what is wrong and how to fix it, marks the field, and saves nothing. Try the example buttons under the form. The filter cases (E9 to E11) never leave the dashboard in an impossible state: the item list follows the category, a reversed range is swapped with a notice, and an empty selection shows “n/a” and “No sales match these filters” instead of a blank or a divide-by-zero error.
Methods of testing
The Course Specifications name six methods of testing. Here is how Jordan used each one.
| Method | Used how |
|---|---|
| Functional testing | The table above: each row tests one function against its expected result. |
| Simulated data | The generated sample data. They let Jordan work out expected totals in advance and repeat every test identically. |
| Live data | From the pilot onward, real till exports. They will expose problems the sample data cannot, such as a new item. |
| Beta testing | Priya used the dashboard at home with no instructions and reported problems on the feedback log. She found the reversed week range (E10). |
| Acceptance testing | Sandra ran through the success criteria on the canteen laptop. See feedback. |
| Volume testing | Not yet done: the dashboard has only been tried on eight weeks. A year of data (about 3,000 rows) should be tried before it is used for a year, and this is on the maintenance plan. |
When asked to develop test data, give values, not descriptions: “sold = 47 when prepared = 46” beats “a number that is too big”. Include at least one normal, one boundary and one erroneous value, say what result you expect from each, and note which requirement each one checks. A boundary test needs a value on the limit and one just past it.
Verification and Validation
Artefact Requirements traceability: evidence of verification and validation
Verification and validationThe two words are easy to confuse. Verification asks “did we build the system right?”, meaning does it meet its specification, and is checked by testing, inspection and comparison. Validation asks “did we build the right system?”, meaning does it meet the client’s real need, and is checked with the client and users. A system can pass every test and still be useless if the requirements were wrong.
| Requirement | Verification (built right?) | Validation (right system?) |
|---|---|---|
| FR1 Key figures | N1, N2: totals match the expected values. The query check agrees three ways. | Sandra read the top seller and waste percentage in 25 seconds during the trial. |
| FR2 Filters | B1 to B3, E9, E10: ranges and contradictions handled. | Sandra used the category bars without being told they were buttons. |
| FR3 Charts and pivot | The data table shows the records behind every chart. | Sandra found the Friday pie sell-outs from the pivot table herself. |
| FR4 Reorder list | N3, B8, B9: the decision tree and code agree on every boundary. | Sandra compared the pilot suggestions with her own instincts and agreed with most. |
| FR5 What-if | N4: no change gives $0.00 change. | Used to decide how many rolls to prepare; she asked for the waste figure to be shown as well as revenue. |
| FR6 Corrections | N5, B4 to B7, E1 to E8: valid entries saved, bad ones refused with a message. | A volunteer entered a correction using only the quick guide. |
| NFR2 Accessibility | Keyboard-only run-through, and checks at phone width and in light and dark themes. | Not yet tested with users who rely on assistive technology (recorded as a limitation). |
| NFR3 Privacy | Review of the import and stored fields: none identify a person. | Sandra confirmed nothing she cares about is missing. |
Notice the gap in the accessibility row. Verification passed, but validation with real users who rely on assistive technology has not happened. Being honest about that gap is part of a good evaluation.
“Distinguish between verification and validation” needs both definitions and an example of each from the scenario. A reliable memory hook: verification looks back at the specification, and validation looks out at the client. If a question gives test results and asks whether the project succeeded, say the tests verify, and the client’s response validates.
Client Feedback and Evaluation
Artefact Client feedback, evaluation against the success criteria and the impact of the system
EvaluationClient feedback
Sandra worked through the dashboard on the canteen laptop on Wednesday 12 August, with Jordan watching and saying nothing. These are her words, recorded in the feedback log.
“I found the pie problem in about a minute. I didn’t know that ham rolls were being thrown out that much. I like that it tells me why it wants me to order something. The bit I trust least is the what-if, because it only knows what people did buy, not what they would have bought.”
Sandra, canteen manager (fictional), trial with Jordan, 12 August 2026Evaluation against the success criteria
An evaluation makes a judgement against criteria set at the start, with evidence, and does not just say “it went well”.
| Criterion | Evidence | Judgement |
|---|---|---|
| 1. Sandra reads the top seller and waste percentage for any weeks in under a minute, unaided | Timed at 25 seconds for the top seller and 40 seconds for waste percentage, with different weeks each time | Met |
| 2. The totals match the till | The three-way check agrees for every filter tried. Sandra matched three weekly totals to the till’s own printout. | Met |
| 3. A reorder list Sandra trusts and can explain | She agreed with most suggestions and could explain the rule for each. One was disputed (see limitations). | Mostly met |
| 4. Nothing identifies a student or staff member | The import keeps only item, quantity and date. Review found no other fields. | Met |
Limitations
- The till records what was sold, not what customers wanted. On the days pies sold out, demand is understated, so the forecast for pies is probably too low.
- The what-if panel uses assumed price sensitivities. They came from interviews and are not measured, so its projections show direction, not exact amounts.
- Only eight weeks of data and a single canteen. Seasonal effects, such as cold weather and end-of-term days, are not modelled.
- The import is manual, so a busy week without an import leaves the dashboard out of date.
- Accessibility was tested in two browsers and by keyboard, not with screen-reader users.
Impact of the system on its environments
An enterprise system does not only work or fail technically. It changes the places it is used in.
| Environment | Impact seen or expected | Judgement |
|---|---|---|
| Canteen (operational) | Weekly ordering takes about the same time but is based on evidence. Volunteers spend a few minutes on Fridays entering corrections. | Positive, small cost |
| Economic | Estimated saving of a quarter of waste cost, $537.90 every eight weeks, against a cash cost of $19.80. | Positive, unproven |
| Social | Fewer sell-outs of popular items. Price changes remain a human decision. | Positive |
| Environmental | Less thrown-out food. | Positive, size unknown |
| Technical | The system depends on one weekly file from the till. If the till is replaced, the import must be rewritten. | A dependency to manage |
Modifying the design
Feedback led to three changes, each written up in the process diary and the change log: the four screens were merged into one page (P3), the what-if panel now shows waste as well as revenue (P4), and the evaluation now states that sold-out days hide real demand. The next version would add a column for “sold out before closing” to the till import, so the system can see lost sales.
Evaluate means a judgement supported by criteria and evidence, with strengths and weaknesses. A high-scoring answer states each criterion, cites a result, and reaches a conclusion (“mostly met”), then names a limitation and an improvement. Do not evaluate against features you added later, only against the original success criteria.
Maintaining the System
Artefact Maintenance plan and documentation trial
Maintenance planSystems are used for far longer than they are built. Maintenance is the work of keeping a system correct and useful once it is live. Jordan wrote a plan so that Sandra, or someone after Jordan, could look after Canteen Insights without guesswork.
| Task | How often | Who | Kind of maintenance |
|---|---|---|---|
| Import the week’s till export and check the message | Every Monday | Sandra or a volunteer | Routine operation |
| Update the stock counts (OnHand) | Every Friday afternoon | Sandra | Routine operation |
| Copy the database to the cloud backup | Every Monday, after the import | Sandra | Backup |
| Add a new menu item or change a price | When the menu changes | Sandra, with the guide | Adaptive (changing for new conditions) |
| Reduce item-level rows older than 12 months to weekly totals | Each term | A teacher or later student | Data retention |
| Review the reorder thresholds (3 and 5 days, 10% waste) | Each term | Sandra and a teacher | Improving (perfective) |
| Fix a fault reported in the feedback log | As reported | The maintainer | Corrective (fixing faults) |
| Try a year of data (volume test) | Before the first anniversary | The maintainer | Preventive (avoiding future problems) |
Trialling the documentation
Documentation is only useful if someone else can follow it. Jordan gave Priya the maintenance guide and asked her to add a new item, an iced tea, with no help. This is the extract she followed.
- Open the Items table and add a new row at the bottom.
- Give it the next ItemID in order, for example I13, using the format XNN.
- Enter the name, choose its CategoryID from the Categories table, and enter the price and cost in dollars.
- Enter Y for Perishable if unsold units are thrown out, otherwise N, and enter the units on hand.
- Check the dashboard: the item appears in the item list, and the three-way check still agrees.
Priya stopped at step 3 because it was not clear whether the cost meant the cost of one item or a box. Jordan rewrote the step to say “cost of one item, for example $0.80”, and the change is in the log. Trials find problems that the author never sees, which is why NESA lists trialling the operation and maintenance documentation as part of verifying a system.
Version log
| Version | Date | Change | Reason |
|---|---|---|---|
| 1.0 | 29 Jul 2026 | First working dashboard | Prototype P4 |
| 1.1 | 31 Jul 2026 | What-if panel added, showing waste beside revenue | Client feedback on P4 |
| 1.2 | 3 Aug 2026 | Reversed week range swapped with a notice | Beta test (Priya): E10 |
| 1.3 | 10 Aug 2026 | Data entry refuses a Saturday date | Test E5 failed on the first run |
Maintenance questions ask what must be done after implementation. Give specific, scheduled tasks with an owner (a weekly backup, a termly review of thresholds), not general advice such as “keep it updated”. Documentation belongs in the answer: a user guide for operators and a maintenance guide for whoever changes the system.
Process Diary Excerpt
Artefact Two entries from the process diary
Process diaryA process diary documents the progress of a project. NESA lists what each entry should include: the date, the person making the entry, progress since the last entry, tasks achieved, stumbling blocks and how they were managed, possible approaches for upcoming tasks, reflective comments and resources used. Here are two of Jordan’s entries (fictional).
Entry 6: Wednesday 22 July 2026
- Person
- Jordan
- Progress
- Phase 2 finished last Friday and Sandra approved the design. Phase 3 has started: the tables are built and all 480 sample rows are imported.
- Tasks achieved
- Task 12 (build tables, import sales) is 100%. Task 13 (charts and KPI tiles) has started.
- Stumbling blocks
- Item names in the export had trailing spaces, so the join to the Items table matched nothing. Managed by trimming names on import, and added a row-count check so an empty join is noticed straight away.
- Next
- Line chart first, then KPI tiles. Try a bar chart of categories, ordered largest first.
- Reflection
- The bug would have been invisible if I had not compared the row count with the file. I will do that check on every import.
- Resources used
- Sandra’s till export (8 weeks), the data dictionary, about 4 hours.
Entry 8: Wednesday 29 July 2026
- Person
- Jordan
- Progress
- Charts and KPI tiles are finished. Filters, pivot table and what-if are half done, but the Gantt chart says 75% by today, so I am behind.
- Tasks achieved
- Task 13 is 100%. Task 14 is 50%: week and category filters work; the pivot table is under way.
- Stumbling blocks
- Priya found that choosing From week 6 and To week 3 gave an empty dashboard. Fix planned: swap the two weeks and show a notice (this became test E10). The pivot table took longer than planned because of shading contrast in dark mode.
- Next
- Use Friday’s buffer day for the what-if panel. Move “export the chart as an image” to the Could list. Ask Sandra on Thursday which numbers she wants beside the what-if result.
- Reflection
- My time estimates for interface work are too optimistic. I estimated the pivot table at one day and it will take two. I will add half again to estimates for anything with a screen.
- Resources used
- Feedback log entries 11 to 14, Priya’s test notes, about 5 hours.
Notice that the second entry connects to the Gantt chart, the test table and the version log. A diary earns its place because it is the link between the plan, the problems and the decisions. This is what NESA means by ongoing evaluation: judging progress as it happens, not only at the end.
If asked to write or complete a process diary entry, include all eight items NESA lists. The most-missed are the stumbling block and how it was managed, and a reflective comment that shows something was learned. Specific details, such as the task number, a percentage or the number of hours, make an entry credible.
How This Maps to the Syllabus
Finish Each dot point in the Enterprise project focus area, and where this page shows it
The Enterprise project focus area has nine dot points. This table lists each one (NESA’s wording) with a link to the explanation in the Enterprise project notes, and links to the places in this page that demonstrate it. Use it as a checklist for your own project: could you point to an artefact for each row?
| Syllabus dot point | Explained in | Shown in this example |
|---|---|---|
| Describe the tools and processes used to manage and document the development of an enterprise system | Notes | Problem definition; Time and resource management, Gantt chart; an iterative approach in the approach and the diary; production process and technical skills in the dashboard and the queries; testing and evaluation in testing and evaluation |
| Explain the effect of the changing nature of enterprise on the development of projects | Notes | Offshore development, working remotely, freelance work and start-ups |
| Investigate tools that support the design and development of an enterprise system | Notes | Online collaboration; time/task action plan; process diary; budget; system flowchart; data flow diagrams; decision tree |
| Describe how computational, design and systems thinking skills are used in the design and development of an enterprise system | Notes | Computational, design and systems thinking |
| Select key collaborating and managing criteria appropriate to the development of an enterprise project | Notes | Collaborating criteria; ease of operation and maintenance; informatics and the roles of participants, data and components; needs and wants |
| Apply tools to inform the requirements and limitations of an enterprise system | Notes | Interviews; surveys; analytical reports; prototypes; presentations of research results; requirements and constraints |
| Explore and apply the most suitable development approach to develop, modify and implement an enterprise system | Notes | Waterfall, agile, prototyping, end-user and outsourcing compared, with prototyping chosen |
| Develop an implementation plan and test its feasibility for an enterprise computing system | Notes | Design thinking, tools, integration, training and the pilot; risk analysis; storyboard; Gantt chart; decision tree; methodology for testing |
| Verify and validate an enterprise computing system | Notes | Evaluating test data; trialling the operation and maintenance documentation; impact of implementation and modifying designs; verification and validation; maintaining the system |
Dot points are from the NESA Enterprise Computing 11–12 Syllabus ↗ (© NSW Education Standards Authority). Diagram notation, SQL keywords, spreadsheet functions and implementation and testing methods are from the Enterprise Computing Course Specifications (© NESA). This page is a study aid and does not replace either document.
Social, Ethical and Legal Considerations
Artefact Impact review: privacy, fairness, health, accessibility and data retention
Impact reviewBefore building anything Jordan asked, for each stakeholder, who could be helped and who could be harmed. The review is short, and each finding changed the design.
Notice the pattern: each row ends with a design decision. A social or legal review that produces only a list of worries has not done its job. The most effective privacy control here is not a rule, it is not collecting the data in the first place.
Questions on social, ethical and legal issues reward answers tied to the scenario. Name the issue (privacy), say why it applies (the export could contain personal details), and give the action taken (the import discards other columns). Avoid quoting legislation you are unsure of: describing the principle accurately, such as “collect only what you need”, is worth more than a misquoted Act.