Documentation

Full usage guide

From question bank to final report — every step in detail.

1 · Prepare the question bank

Create a plain .txt file using the following format:

1. ¿Cuál es la capital de Francia?
* París
- Madrid
- Roma
- Lisboa

2. ¿En qué año llegó el hombre a la Luna?
- 1965
* 1969
- 1972
- 1980
  • * marks the correct alternative.
  • - marks the incorrect alternatives.
  • Alternatives are automatically shuffled in each form.

2 · Generate exams

  1. Go to ① Generate exams.
  2. Load the question bank (.txt).
  3. Configure: title, subject, number of forms and questions per test (max. 60).
  4. Click Generate PDFs and key → choose the destination folder.

The output is forma_01.pdf, forma_02.pdf, … plus the encrypted master key file pautas_maestras.evl.

Optionally use Generate Blank Answer Sheet to export the empty OMR template. The institutional name and logo are configured in ⚙ Settings.

3 · Grade scanned sheets

  1. Go to ② Grade exams.
  2. Select the folder with the scans and the .evl key file.
  3. Load the student roster (optional; required columns: ID, Name).
  4. Click Start Automatic Grading.

An Excel file resultados_YYYYMMDD_HHMMSS.xlsx is exported with the raw scores. If a roster was loaded, the file includes each student's name and is sorted alphabetically.

On the Free version, a batch cannot exceed 80 scanned sheets. If it does, EvaLumina shows the Pro activation dialog before processing.

4 · Compute final grades

  1. Go to 📊 Grades.
  2. Load the results Excel (the most recent one is suggested automatically).
  3. Configure the scale: Passing % (default 60%), min / pass / max grade (default 1.0 / 4.0 / 7.0), optional penalty factor (e.g. 0.25).
  4. Click Compute Grades → review the distribution histogram.
  5. Click Export Final Report to save the .xlsx with the Grade column.

5 · Grading scale

The formula implements the standard piecewise-linear scale used in Chilean education:

passing_score = total × (passing_pct / 100)

if score < passing_score:
    grade = min_grade + (pass_grade − min_grade) × (score / passing_score)

if score ≥ passing_score:
    grade = pass_grade + (max_grade − pass_grade) × ((score − passing_score) / (total − passing_score))

With the default configuration (60% passing, 1.0 – 4.0 – 7.0 scale):

Score / TotalGrade
0 / 601.0
18 / 60 (30%)2.5
36 / 60 (60%)4.0
48 / 60 (80%)5.5
60 / 60 (100%)7.0
We'd love to support other grading scales. If your institution uses a different formula, write to us at contact@evalumina.app — we'll be happy to add it.

6 · Answer sheet format

  • US Letter size.
  • Up to 60 questions, 5 alternatives (A–E).
  • ID block (digits 0–9) — supports Chilean RUT and international IDs (Pro).
  • Four fiducials in the corners for perspective calibration.
  • Compatible with 150 dpi scans or phone photos with reasonable lighting.
  • Logo and institutional name configurable from ⚙ Settings (does not affect OMR reading).

7 · Activate EvaLumina Pro

  1. Open EvaLumina and click 🔑 Activate License in the lower sidebar (visible only in the Free version).
  2. Copy the Machine ID shown in the dialog (format XXXX-XXXX-XXXX-XXXX).
  3. Send the Machine ID to the developer to receive your license.key file.
  4. Load the .key file from the same dialog via Load .key file → the license is permanently activated on this machine, the sidebar switches from "Free" to "Pro" and the title bar shows "EvaLumina Pro".
The license is bound to the device hardware. To transfer it to another machine, a new license must be requested.

8 · Security

  • Master key (.evl) — encrypted with Fernet (AES-128-CBC + HMAC-SHA256). The key is embedded in the exam generator module; students cannot decrypt the master key even if they obtain the file.
  • Commercial licenses (license.key) — signed with Ed25519 (asymmetric cryptography). The client application only contains the public key and verifies the signature; the private key lives exclusively in the developer's 1Password vault and is never distributed. This makes creating a keygen mathematically infeasible.
  • Machine ID — derived via SHA-256 from MAC + node name + platform + architecture. Each license is bound to the Machine ID of the device.
← Back to home