Teacher guide
How version 5 of ICT Revise is organised, how to edit the questions, notes and settings, and how the marking, Smart Practice and practice exams work. You only need a text editor (for example Notepad, TextEdit or VS Code). No database or server is needed. Ideas for using the site with a class are on the separate page For teachers.
What is new in version 5
- Practical exam preparation (
practical-exam.html): two timed practice papers for Paper 2 with data files, mark schemes and model solutions. See Practical exam preparation. - Choose and justify questions: a new question type,
justify, and 31 new scenario questions indata/questions/<subtopic>-v5.js. See Question types. - Written answers show the marks and a guide before the student writes, a word counter, Try again after the feedback, and an example answer that would get part marks (checked with the marker, so the mark shown is the one the site really gives).
- Tool challenges under the database query, validation and chart tools, with a route from the notes to an exam question, its model answer and a timed practical task. See Tool challenges.
- Topic progress cards on Topics, Theory, Practical and My progress, and a bigger Continue revising panel on the home page.
- Display settings for text size, high contrast, reduced motion and stronger focus. See Display settings.
- The Paper 2 theory test is now called Paper 2: Theory knowledge check; the header says “Revision for Pearson Edexcel International GCSE ICT (4IT1)”; the Ko-fi button is called Buy me a coffee; the copyright section of About is clearer and Contact has a Report a copyright concern route.
- The Coverage report counts notes, activities, exam-style questions, written questions and practical tasks for every learning objective.
- Version 5.1 (15 November 2026): For teachers is in the menu; cards fill every row; the page content lines up with the header on every page; How to use this site and About have an On this page menu beside the sections. See The menu and the home page.
Opening and hosting the site
On a computer, offline: unzip the site, open the folder and double-click index.html. It works from a local folder, a USB drive or a shared network drive. Keep all the folders together.
| Where | How |
|---|---|
| School web server (Apache, Nginx, IIS) | Copy the folder into the web root or a sub-folder, for example /var/www/html/ict-revision/ or C:\inetpub\wwwroot\ict-revision\. No database, PHP or server settings are needed. |
| Cloudflare Pages (free) | In the Cloudflare dashboard, create a Pages project with direct upload and upload the folder (or the zip). To use your own domain, add it under the project's Custom domains. |
| Netlify (free) | Sign in, choose Add new site > Deploy manually and drag the folder onto the page. |
| GitHub Pages (free) | Upload the files to a repository, then go to Settings > Pages > Deploy from a branch (main, root). |
| VLE (Moodle, Canvas and others) | Upload the zip as a file or folder resource shown in a browser, or link to a hosted copy. If pages stay blank, the VLE is blocking JavaScript, so link to a hosted copy instead. |
| OneDrive, Google Drive, SharePoint | These do not run websites. Share the zip for students to download and open, or use a host above. |
The full instructions are in README.md in the site folder.
Where the content comes from
- Notes and key terms on every subtopic page come from the 4IT1 Revision Guide by Pedro Lopes (original content © Pedro Lopes). Each page shows the guide section and its pages in the print edition, for example "Revision Guide 1.5, pp. 31–36".
- Knowledge checks on each page are the guide's own knowledge-check questions, marked by the site.
- Questions are written for this site from the guide and the specification. None are Pearson past papers. Written answers get an estimated mark; the site never claims to give an official Pearson Edexcel mark.
- Interactive tools and practical tasks come from version 2 of the site, with their wording brought into line with the guide.
- Nothing from other exam boards' specifications is included.
- In November 2026 all the text and diagrams were checked against the Pearson course textbook, the specification and recent past papers and mark schemes. Anything that followed the textbook too closely was rewritten in new words, and some facts were corrected or brought up to date (for example 5G and the current data protection rights). No past-paper question or mark-scheme wording is used. The learning objectives on the progress checklist and in the coverage report quote the specification (© Pearson Education Limited).
Folders
index.html, theory.html, practical.html, topics/ (one page per subtopic)
learn.html (learning units), smart.html (Smart Practice), mistakes.html (Review My Mistakes),
topic.html (topic hubs with levels), games.html (activities), challenge.html, exam.html,
practice-exam.html, glossary.html, search.html, progress.html, teacher.html,
topics.html (all topics), practice.html (practice and exam preparation), help.html (how to use this site),
about.html (about and copyright, privacy, image credits; credits.html forwards to it),
contact.html (contact and support), bank.html (question bank browser), coverage.html (coverage report)
css/style.css design (colours, layout, dark mode, print)
js/ the site's code (you do not need to edit it)
js/config.js settings you can change (see Smart Practice and Practice exams)
js/rewards.js XP rules and badge targets
data/manifest.js the list of content files: add new files here
data/checklist.js the 142 learning objectives, mapped to the Revision Guide
data/notes/2.4.js the guide's notes and key terms for one subtopic
data/topics/2.4.js that subtopic's page details, interactive tools and practical tasks
data/questions/2.4.js questions for that subtopic (a few files cover two subtopics,
for example 3.3-3.4.js); 2.4-v3.js holds questions added in version 3
data/questions/2.4-units.js questions written for that subtopic's learning units
data/units/2.4.js learning units for one subtopic
data/devices.js device photos, clues and facts used by units and activities
data/glossary.js extra glossary terms
data/credits.js image credits and licences
images/, images/devices/ diagrams and device photos
files/ sample files for practical tasks
Content files are JSON data wrapped in one function call, for example ICT.addQuestions([ ... ]);. This lets the site work when opened straight from a folder, where browsers block plain .json files. Edit only what is inside the brackets.
Editing questions
Open the question file for the subtopic, for example data/questions/2.4-v3.js. Each question is one { ... } block, separated by commas. Every question has these fields:
| Field | Meaning | Example |
|---|---|---|
id | Unique id. Keep the topic and learning objective in it | "W2-2.4.3-lan" |
topic, subtopic, lo | Topic number, subtopic and learning objective | 2, "2.4", "2.4.3" |
section | theory or practical | "theory" |
type | One of the question types below | "mcq" |
difficulty | Easy, Intermediate or Advanced | "Intermediate" |
question | The question text. Use **bold** for the command word and `code` for code | "**State two** benefits…" |
explanation | Shown after answering | "Blu-ray holds 25 GB…" |
why | Multiple choice only: why each wrong option is wrong, shown when a student picks it | {"A larger touch screen": "A bigger screen does not…"} |
marks | Marks for the question | 2 |
source | Where the content comes from | "Revision Guide 2.4" |
kc | Optional. true for the guide's knowledge-check questions, shown in the page's Knowledge check | true |
extra | Optional. true for "Extra, not examinable" questions: they never appear in the bank, challenges, Smart Practice or practice exams | true |
challenge | Optional. false keeps a question out of the Revision Challenge and practice exams | false |
Text goes inside double quotes. If the text contains a double quote, put a backslash before it: "the \"Save As\" dialog". Copy an existing question of the same type and change it: that is the quickest way to get the format right.
Question types
| type | Extra fields | In Challenge? |
|---|---|---|
mcq Multiple choice | options: [...], answer (the text of the right option), why (see above). Options are shuffled unless the question has keepOrder: true (use it when the order matters, for example numbers from smallest to largest) | Yes |
written Written answer | cmd, marks, points, model, rule, optional ctx and scenario: true. See Written questions | Yes |
justify Choose and justify (version 5) | options: [...], answer, why: {"wrong option": "why it is not the best"}, marks (usually 3 or 4), choiceMarks (default 1), points (the reasons for the right option, one mark each, marked like a written answer), model, rule, ctx, optional link (scenario words). The reasons earn marks only when the choice is right. Write new ones in v4tools/specs-v5/ and build them with node v4tools/apply-v5.js; node v4tools/test-v5.js checks that each model answer gets full marks | Yes |
levels Extended answer (6 or 8 marks) | cmd (discuss or evaluate), marks, indicative, model, optional ctx and levels (three level descriptions of your own). See Extended answers | No (but used in practice exams) |
tf True or false | answer: true or false | Yes |
match Matching | pairs: [["term", "definition"], …] | Yes |
gap Fill the gap | text: "A CD holds ___ MB.", answers: [["700"]] (one list of accepted answers per gap), optional bank: [...] | Yes |
odd Odd one out | options, answer | Yes |
sort Sort into groups | groups: [{name: "…", items: [...]}] | Yes |
order Put in order | items: [...] in the correct order (the site shuffles them) | Yes |
mistake Identify the mistake | segments: [{text: "…", wrong: true, fix: "…"}] | Yes |
label Label a diagram | image, alt, labels: [{n: 1, answer: "…"}], optional distractors | Yes |
dragdrop Complete a table | columns: [...], rows: [{label: "…", cells: [...]}], optional distractors | Yes |
pick Identify the picture | options: [{label: "Tracker ball", img: "images/devices/trackball.jpg", alt: "…"}, …], answer. Use only credited images | Yes |
flashcards | cards: [{front: "…", back: "…"}] | No |
quickfire Timed recall | seconds: 60, items: [{q: "…", a: ["accepted", "answers"]}] | No |
Three version 2 types still work but are not used in the version 3 bank: short (a short answer the student marks against a model answer), extended (a longer answer marked the same way) and scenario (a scenario with several linked parts: scenario text and parts, each a question of another type). Version 3 uses written, with ctx for the scenario, and levels instead.
Written questions and marking points
A written question is marked by the site. The mark is an estimate: the site looks for each marking point in the student's answer, sentence by sentence. The feedback has three parts: What you got right (each point made, quoting the student's own words, and any explanation that earned a mark), What was missing (the marks still needed, the accepted ways to earn each one, and points that were nearly there) and How to improve (advice and an improved answer). The model answer and all the marking points follow. Students can change the mark if they disagree.
| Field | Meaning |
|---|---|
cmd | The command word: state, identify, give, define, describe, explain, compare, justify, calculate, or write (for a formula or code). It decides how the points are counted (below) |
points | The marking points: {"t": "text shown in the mark scheme", "k": [groups]}, with optional "dev" (a development, also {t, k}), "m" (marks, default 1; 0.5 for "four ways, half a mark each"), "share": true and "hint" (advice when the point is nearly there). A point for a formula or HTML code has "re", a list of regular expressions, instead of k |
model | A full-mark answer. It must score full marks |
rule | How the marks are given, shown with the mark scheme, for example "One mark for each benefit, up to 2 marks." |
ctx, scenario | The scenario text shown in a box above the question, and true for questions that must be applied to it |
link | A group of words from the scenario, for example "mia|she|her|holiday". An answer that uses none of them gets the advice to apply it to the scenario (the mark is not changed) |
both | Compare questions: the two things compared, for example ["ram", "rom"]. Each point must mention one of them and a comparing word such as whereas, but, cheaper or faster |
need | Optional: {"points": [0], "tip": "…"} gives full marks only when those points (counted from 0) are found, for example an evaluation that must include a drawback |
cap | Optional: {"points": 2} means at most 2 marks can come from main points |
Groups of key words. Each point has one or more groups, and every group must be found in the same sentence. A group is a list of alternatives separated by |; an alternative can be a phrase, and a word ending in * matches any ending (encrypt* finds encrypt, encrypted and encryption). A group that starts with ! must not be in the sentence: use it so that "do not need a PIN" does not earn a point about entering a PIN, or so that a well-known mix-up such as "ROM is volatile" earns nothing. Inside an alternative, ~ stands for up to four other words, so rom holds ~ in use finds "ROM holds the programs in use". Answers and key words are both tidied before matching, so colour/color, centre/center, organise/organize and licence/license match, and so do joined forms such as back up/backup, log in/login, web site/website and wi-fi/wifi, and common misspellings such as becuase, recieve and seperate.
| Command words | Rule |
|---|---|
| state, identify, give, define, name | One mark for each point found, up to the marks. A list on one line is fine. |
| describe, explain, justify | Each sentence earns one main point (unless the point has "share": true), but a long sentence that joins separate ideas with "and", "also" or commas can earn one for each part of five or more words. The points can come in any order. Where points have developments, at most half the marks (rounded up) come from main points: the rest need the development, in the same sentence or the next one, in a sentence that reads as an explanation. A list of key words cannot reach full marks. |
| compare | As for explain, and each point must be a comparison (see both). |
Writing good marking points. Give every describe or explain point at least two groups (for example a thing and what it does) or a development, so that a single keyword cannot earn the mark. Put the more specific point first when two points share a word. Test the question on the subtopic's Exam practice: try the model answer, a weak answer and an answer that only repeats the question. The developer tools also include robustness tests that rewrite every model answer (spelling mistakes, another order, one long sentence, keyword lists) and mark a set of hand-written student answers; add your own answers there to test a new question.
Extended answers (6 and 8 marks)
"Discuss" and "evaluate" questions use the levels type. The student writes an answer and then marks it against the level descriptions: Level 1 (1–2 or 1–3 marks), Level 2 (3–4 or 4–6) and Level 3 (5–6 or 7–8). To help, the site lists the indicative points it found in the answer (each is {t, k} like a marking point), a checklist and the model answer. In a practice exam, the student chooses the mark for each extended answer before the results are shown. A How to improve box gives tips from the answer itself: both sides of the argument (sides, with each indicative point tagged "s": 0 or 1), enough points, linking words, the scenario (link), a conclusion (a point tagged "c": true) and length.
The question bank and difficulty
All questions live in data/questions/ and form one central bank. The same question can appear on a subtopic page, in a learning unit, in Exam practice, Smart Practice, a level test, the Revision Challenge, an activity or a practice exam. Open the Question bank browser to filter by topic, subtopic, learning objective, type and difficulty, try any question, or download the whole bank as a JSON file.
| Difficulty | Use it for |
|---|---|
| Easy | Recall of one fact or term: state, identify, define, true or false on a single point. |
| Intermediate | Describing, matching or sorting several facts, or applying one idea to a simple scenario. Most 2 to 3 mark questions. |
| Advanced | Applying knowledge to an unfamiliar scenario, choosing the best option with a reason, multi-step working, 4-mark explain or compare questions, and extended answers. |
The Revision Challenge takes every question that matches the student's choices, then picks one at a time, preferring subtopics, learning objectives and question types it has not used yet, and avoiding questions from recent challenges. With "Any" difficulty it aims for about 30% Easy, 45% Intermediate and 25% Advanced questions. You can link straight to a challenge, for example challenge.html?sub=6.3 or challenge.html?topic=2.
Notes, tools and practical tasks
The notes on each subtopic page are in data/notes/<subtopic>.js: ICT.registerNotes("2.4", { title, los, can, html, terms }), and each topic's introduction is in data/notes/topic-1.js to topic-6.js. These files are generated from the Revision Guide's source by the development tools (supplied separately as v3-dev-tools), so the best way to change the notes is to change the guide and generate them again. A small fix can be made in the file itself, but it will be replaced the next time the notes are generated. (The November 2026 audit made a few such fixes, in 1.3.js and topic-1.js; make the same changes in the guide before generating the notes again.) Edit only the text between the tags, and keep each <h3 data-lo="2.4.1"> heading, because the page's contents list and the coverage report use them. terms holds the key terms ({term, def}), which also feed the glossary and the word activities.
Page layout (version 4). Each subtopic page shows a breadcrumb trail, the title and the one-line learning objective from data/subtopics.js (which also gives the order for the Previous and Next links), an In this topic menu, and after each part of the notes a Key ideas panel and a Check your understanding question. Both come from the learning unit with the same title as the part: the key ideas are the unit's summary points, and the question is the unit's first check question (or its quiz) that the page does not already show. The Common mistakes panel lists mistakes from data/topics/<subtopic>.js; keep each one to what the page's notes teach.
The page title, specification title, learning objectives, interactive tools ("Try it") and practical tasks are in data/topics/<subtopic>.js. Tools are blocks such as {type: 'widget', name: 'caesar'} (the others are wpformat, mailmerge, validation, dbquery, refcopy, chart, htmlpreview, sandbox, slidemaster, bitmapvector, imageresize, filenames and contrast). A practical task is a task block with id (for example 'P6.3-1'), kind, time, title, software, brief, files, steps (a tick list; ticks are saved), hints and example (the worked answer, hidden until opened).
Adding a new subtopic page
- Copy a topic file, for example
data/topics/2.4.js, rename it (for example5.1.js) and change the id and content. Add the notes indata/notes/5.1.js(copy the format of another notes file). - Write the questions in a new file such as
data/questions/5.1.js. - Add the new files to the list in
data/manifest.js. Keep the subtopic in each file name: a subtopic page or learning-unit page loads only the files whose names contain its subtopic (plus the checklist, glossary, credits and devices), so that it opens quickly on a phone. - Copy any page in
topics/, for exampletopics/2-4.html, totopics/5-1.htmland changedata-topic="2.4"to"5.1". The site links to it automatically. - Add the subtopic, its title and its learning objective to
data/subtopics.js, in order, so that it gets Previous and Next links.
Learning units
A learning unit is a 5 to 10 minute lesson on a few ideas from one subtopic. Students move through it one card at a time: learn one idea, check it straight away with 1 to 3 questions and instant feedback, then remember it (summary and key terms) and finish with a quick check. Questions answered wrongly the first time come back once on a "second chance" card. A unit is complete when the quick check score is at least 60%; 80% earns 2 stars and 95% earns 3. Students open units from learn.html, from a subtopic's path such as learn.html?sub=1.4, or from the subtopic page.
Each subtopic's units are in one file, for example data/units/1.4.js: ICT.registerUnits('1.4', { intro: '…', units: [ … ] }). The units were generated from the Revision Guide by the development tools, like the notes; small edits can be made in the file. Each unit has id ('1.4-u1'), title, minutes, los, goal and a list of cards:
| Card type | Fields |
|---|---|
learn | title, lo, blocks: pieces of the Revision Guide notes ({type: 'book', html: '…'}) and blocks such as keyterm (term, def), example, gallery (device photos from data/devices.js), code, more (a "More detail" section that opens on a click) and tasklink |
check | ids: 1 to 3 question ids from the bank. The student must answer before continuing. |
summary | points (the key facts) and terms: [['term', 'definition'], …] shown as tap-to-reveal cards |
quiz | ids: the quick check that completes the unit (3 to 5 questions) |
A practical unit can also have tasks: ['P6.4-1'] and taskText: when the unit is complete, a "Now try it for real" box links to that practical task. When a subtopic has units, it counts as complete once every unit is complete.
Smart Practice, levels and settings
Every answered question is stored in the student's browser with its spaced-repetition box (1 to 5), when it is next due and the student's last answer. Smart Practice uses this to bring back mistakes and due questions first, then the weakest subtopics, then new questions at the right difficulty, and shows the reason for each question. Review My Mistakes shows the student's answer next to the correct one. You can link straight to a session, for example smart.html?start=1&sub=2.3 or smart.html?start=due.
Each topic hub (topic.html?t=2) has Levels 1 to 3. A level test of 10 questions unlocks the next level at 80%.
| Setting | Default | What it does |
|---|---|---|
unlockPct | 80 | Level-test score (%) that unlocks the next level |
lockLevels | true | Set to false to open every level without a test |
levelTestSize | 10 | Questions in a level test |
srsIntervalsDays | 10 minutes, 1, 3, 7, 21 days | How long before a question comes back from boxes 1 to 5 |
srsRightPct, srsWrongPct | 75, 40 | An answer scoring 75% or more counts as right (the question moves up a box); under 40% counts as wrong (back to box 1, due again in 10 minutes); in between, it stays in its box and comes back the next day |
stepUpPct | 80 | Smart Practice moves a student up a difficulty in a subtopic when they average this on at least 4 recent questions at their level |
timedQuestions, timedSeconds | 15, 300 | The timed challenge: number of questions and time allowed |
papers, paperMcqPct, paperQuestionMarks, paperAvoidLast | see Practice exams | The practice exam papers |
contactEmail | ictrevise@gmail.com | The address used by the Contact button at the top of every page, the Contact page, the "Report a mistake" link at the bottom of every page and the feedback links. They open the visitor's own email app; the site sends nothing. Set it to '' to hide them, for example on a school's own copy |
kofiUrl | ko-fi.com/pedrorosariolopes | The Ko-fi page for the “Buy me a coffee” button at the top of every page and the Ko-fi links in the footer, on the Contact page, at the end of My progress and in a small closable panel after a completed learning unit (hidden for the rest of the visit once closed). Set it to '' to hide them all |
Practice exams
Practice exam builds a whole paper from the bank each time. Every paper says that it is made of practice questions written for this site, not Pearson past papers, and the results give an estimated score with no grade, because grade boundaries change from series to series.
| Paper | Marks | Time | Content |
|---|---|---|---|
| Mini paper | 30 | 27 minutes | Paper 1 style, Topics 1–4, with one 6-mark extended answer |
| Half paper | 50 | 45 minutes | Paper 1 style, Topics 1–4, with one 8-mark extended answer |
| Full paper | 100 | 90 minutes | Paper 1 style, Topics 1–4, with a 6-mark and an 8-mark extended answer |
| Paper 2: Theory knowledge check | 30 | 27 minutes | Theory questions on Topics 5–6, with one 6-mark extended answer |
How a paper is built. It uses multiple-choice questions, written questions worth 1 to 4 marks and extended answers; extra (not examinable) questions and questions marked challenge: false are left out. The marks are shared between the topics roughly in proportion to their size, with a little variation each time. About paperMcqPct (15) per cent of the marks are multiple choice. The questions are grouped into numbered questions of about paperQuestionMarks (16) marks, each on one topic, with the parts in exam order: multiple choice first, then short and longer written parts, then any extended answer. A new paper avoids the questions in the student's last paperAvoidLast (3) papers of the same kind (Paper 1 style or Paper 2) while others are available. Topics stay hidden until the results.
Sitting a paper. The timer is optional (link with practice-exam.html?paper=half&timer=off to turn it off). When the time is up, the student can mark the paper or carry on writing (the time over is shown). The paper is saved as the student works, so it can be finished later. Before marking, the site lists any unanswered parts.
Results. The estimated score and percentage, the time used, the marks by topic and by type of question, what to revise (the subtopics where most marks were lost, with links to the notes, units and Smart Practice), exam technique advice, and every answer with the marking points, the model answer and an option to change the mark. The result is saved on My progress, answers feed Smart Practice and Review My Mistakes, and the paper gives up to 60 XP (xpPaperMax in js/rewards.js).
Points, stars, badges and activities
| Reward | Rule |
|---|---|
| XP (experience points) | 10 for a check question right first time, 5 for a second-chance question put right, 50 for completing a unit plus 10 per star, 1 XP for every 10 activity points (up to 40 per round), 1 XP per mark in a finished quiz (up to 30) and 1 XP per mark in a practice paper (up to 60). Every 200 XP is a new XP level. |
| Stars | 1 to 3 per unit for the best quick check score (60%, 80%, 95%). |
| Streaks | Daily: days in a row with any revision. Weekly: weeks in a row, Monday to Sunday, with revision on at least 3 days (weekDays). |
| Badges | 18 badges, for example First steps, Top marks, Week streak (7 days in a row), Steady reviser (at least 3 days a week for 3 weeks), Terminology Expert (30 key terms named without a hint), MCQ Master (100 different multiple-choice questions with at least 80% right), Speedy Typist (30 words per minute at 95% accuracy or better), Exam Ready (an estimated 70% or more on 20 written questions) and Topic Champion (all three level tests passed in one topic). |
| Personal bests | Kept for each activity, scope and level, and shown on the Activities page and My progress. |
The rules and badge targets are at the top of js/rewards.js (ICT.REWARDS and ICT.BADGES). Rewards are kept small next to scores and progress, so that learning stays the focus. The Activities page builds every round from the site's content: Speedy Typing, Guess the Key Term, Crossword, Word Search and Match the Pair use the Revision Guide key terms; True or False and Fill the Gaps use the bank, chosen by spaced repetition so that mistakes come back; Identify the Device uses data/devices.js. A key term's clue is its definition with every word of the term blanked out. You can link straight to an activity, for example games.html?game=crossword&topic=2&level=hard.
Glossary
The glossary lists every Revision Guide key term (from the notes files), plus the extra terms in data/glossary.js: { term: '…', def: '…', sub: '1.6', source: 'Revision Guide 1.6' }. A Revision Guide term wins over an extra term with the same name. The glossary page sorts the terms A to Z and the search page finds them.
The menu and the home page
The menu at the top of every page has six items: Home, Topics, Practice, Progress, For teachers and Help. Topics, Practice, Progress and Help each open a short list of their pages (on phones, inside the Menu button). The lists are the NAV array near the top of the header code in js/app.js: add { href: 'page.html', text: 'Name' } to a group to add a page. Each page names its menu entry in <body data-nav="page.html">; a page that is not in the menu (a subtopic page, a learning unit) uses the name of its group instead, for example data-nav="topics", so that group is highlighted.
Page width and card grids (version 5.1). The header and the page content share one width, --page-max at the top of the layout section of css/style.css, so their edges line up. Grids of cards fill every row: after a page is built, js/app.js picks the number of columns that spreads the cards evenly (four cards as 2 + 2 or 4, six as 3 + 3) and, when that is not possible, makes the cards in the shorter row wider. The grids it looks after, and the smallest card width of each, are in the BALANCE list in js/app.js; keep them in step with css/style.css when you add a grid or change a width. Add the class no-balance to a grid to keep the plain CSS layout.
The home page has a Continue revising bar and four numbered sections. The bar opens the last learning unit the student opened and has not passed; otherwise the next unfinished unit (the same rule as Smart Practice's "next unit"), or unit 1 of 1.1 on a first visit. The sections link to topics.html, practice.html, practice.html#exam and progress.html.
Images and credits
Use your own diagrams, or images licensed CC0, public domain, CC BY or CC BY-SA from Wikimedia Commons or Openverse. Do not use images with an NC (non-commercial) or ND (no derivatives) licence, scans of textbooks, or images from Pearson materials. Save the image in images/ and add a credit with its title, author, source link, licence and licence link to data/credits.js, including what you changed (for example resized or cropped). It appears on the Credits page automatically.
To add a device for units and Identify the Device: save the photo as images/devices/name.jpg (about 800 pixels wide), add an entry to data/devices.js (the fields are listed at the top of that file: name, kind such as Input or Output, subtopic, alt text that describes the photo, three clues from vague to specific, and a short fact for the feedback that agrees with the Revision Guide), and credit it.
Student progress
Progress is saved automatically in each student's browser using localStorage: ticked learning objectives, every answer with its spaced-repetition box, level tests, practice exam results (the last 30), activity personal bests, rewards, ticked practical-task steps and quiz results. Nothing is sent to a server and no account is needed (the contact and "Report a mistake" links only open the student's own email app). Progress stays on that device and browser only, and clearing browser data removes it. Students can use Save my progress to download a copy and Restore my progress to load it on another device (both are in the Progress menu on every page and near the top of My progress, straight after Next steps), or reset it on My progress (which also deletes an unfinished practice paper). On a first visit a note at the top of the page explains this, until the student presses Got it. The privacy information for students and parents is on the About and copyright page.
| Measure | Rule |
|---|---|
| Completed subtopic | Every learning unit in the subtopic complete. (The version 2 rule, every objective ticked with at least 5 questions answered and a latest score of at least 60%, also counts. To change it, edit ICT.MIN_ANSWERED and ICT.MIN_SCORE in js/app.js.) |
| Performance | The latest attempt at each question, so it shows what the student knows now. |
| Estimated marks | Every mark the site works out (written answers, scores that include them, practice papers and My progress) is labelled "Estimated mark, not an official Pearson mark" (ICT.EST_LABEL in js/app.js). A mark the student chooses for an extended answer is labelled "Your own mark". |
| Subtopics to revise | Subtopics with at least 3 answered questions (ICT.MIN_RANKED) and a score below 70%. |
Coverage report
The Coverage report lists every learning objective with the Revision Guide section and pages that teach it (print edition), the knowledge check and exam practice in the guide, the notes headings and learning units on this site, and the number of questions by type and difficulty, including how many can appear in a practice exam. A table checks the question bank against the minimum numbers set in the plan for each topic. The page is built from the data files, so it updates when you edit content. Use Print or save as PDF or Download as a spreadsheet (CSV) for your records; copies made when the site was finished are in the site folder (4IT1-coverage-checklist.pdf and .csv).
Practical exam preparation
The practical papers are in data/pexam.js: ICT.pexam.areas (the software areas on the page), ICT.pexam.papers (each paper’s scenario and its two sections) and the tasks, added with ICT.addPexamTasks([...]). Each task has id, paper, section (A or B), area, title, marks, minutes, los (the learning objectives it practises, used by the coverage report and the For teachers page), files, intro, steps ({text, marks}, the lettered parts), evidence, scheme (the mark scheme the student ticks: {text, marks}, where marks above 1 shows a list to choose from), model, modelFiles and tips. Keep each section at 50 marks and 90 minutes, and the marks in steps equal to the marks in scheme. The data files and model solutions are in files/exam/seaview/ and files/exam/lakeside/. All the images were drawn for the site. The student’s own mark is saved as progress.pexam[taskId].
Tool challenges
The query, validation and chart tools (js/widgets.js) each end with a set of challenges made by ICT.toolChallenges(holder, key, cfg). Each challenge has a check(state) function that returns an empty string when the tool is set up correctly, or a sentence saying what to change. For queries, the expected records are worked out from the tool’s own data, so they stay right if the data changes. cfg.route names the exam question (by id) and the practical task linked from From notes to the exam. Completed challenges are saved in progress.tools.
Display settings
The Display settings button at the bottom of every page (and in Help) opens a panel for text size, light or dark colours, high contrast, reduced motion and a stronger focus outline. The choices are saved on the device in localStorage (ict4it1-display) and set as attributes on the page (data-text, data-contrast, data-motion, data-focus), styled at the end of css/style.css. The development tools include an accessibility test (a11y-v5.js) that runs the axe checker on the main pages in four display modes.
Version number and What’s new
The version and the date of the last update are set at the top of js/app.js (ICT.version and ICT.updated, as YYYY-MM-DD) and shown at the bottom of every page. When you change the site, update the date and add a line to What’s new (changelog.html).
Checking your changes
Reload the page after saving. If a file has a mistake, such as a missing comma or a question id that does not exist, a yellow box at the top of the page lists the problem. If a page goes blank, the last edit usually has a missing comma, quote or bracket: open the browser console (F12) to see the line number. For a new written question, try the model answer on the subtopic's Exam practice: it should score full marks.