Each test has its own QR code and link, draws its questions from module banks, and can belong to an exam for master grading.
Weakest areas (whole group)
Share of answers that were correct, per area. Weakest first.
Hardest questions
Ranked by the share of participants who answered correctly. Questions nobody has been given yet appear last.
| # | Question | Correct |
|---|
Participants
Answer distribution by question
How many participants picked each option. The correct option is highlighted.
An exam groups several tests (e.g. SLPHC_2026 with 12 module tests). Master grading averages each trainee's test results, weighted, and applies the exam pass rule.
A missing test counts as 0 in the average. A trainee passes the exam once every test is completed, the weighted average reaches the pass mark and, if required, each test is passed.
One or more banks per training module. A bank can hold any number of questions; around 100 per bank works well. Tests draw a random sample from each bank they use.
Scenario-based questions are attached to a scenario. When a participant is given questions from a scenario, they see the scenario text first.
| # | Type | Area | Question | Answer |
|---|
JSON import format
{
"name": "Bank 2 - Household listing", "module": "Module 2 - Household listing", "description": "",
"scenarios": [ {"key": "s1", "title": "Scenario A", "text": "Long scenario text..."} ],
"questions": [
{"area": "Census concepts", "prompt": "Question text?", "options": ["A", "B", "C", "D"], "correct": 1, "explanation": "Why B is right"},
{"area": "Interviewing", "scenario": "s1", "prompt": "Based on the scenario...", "options": ["A", "B", "C"], "correct": 0}
]
}"correct" is the zero-based index of the right option. "scenario" is optional. A sample file ships in app/sample_tests/.
Upload the recruitment export (APPLICANTS_CODE, FULLNAME, SEX, POSITION, DISTRICT, CHIEFDOM, EMAIL, ADDRESS, optional PHONE). Re-importing updates existing applicants by code. If the file has a PHONE column, that number is the one trainees must use; otherwise the first number a trainee enters is locked to their code.
| Code | Name | District | Phone | Training | Tests |
|---|
Applicants by district
| District | Applicants |
|---|
Partners register themselves with their name, organisation, email address and phone number. Share this link or let them scan the code; it opens the partner registration page.
| Partner | Contact | District | Registered | Status |
|---|
Partners by district
| District | Partners |
|---|
Each user has one role. Roles define what the user can do; districts (optional) limit results, applicants, resets and phone corrections to those districts. New users must change their password at first login.
| Username | Name | Role | Districts | Status | Last login |
|---|
Roles and access rights
| Role | Access rights |
|---|
| When | User | Action | Target | Detail |
|---|
