SOC_STATUS GREENUPTIME 99.998%MTTR 00:04:12EVENTS/DAY 14.2MCAPE_TOWN · UTC+2THEME
SHEL infosec
SHEL/infosec
./get-protection ◢./login
THEME
~ / work / spartan-training
04LIVE

Spartan Training

Security licensing · accreditation LMS

A purpose-built learning platform for Georgia security and investigative licensing, engineered end to end rather than adapted from an off-the-shelf LMS. The premise: a licensing credential is worth exactly what its assessment integrity is worth — so integrity, sequential competency and forensic auditability were treated as primary requirements, not features.

./visit --live spartantraining.live
Certification tracks
3
Modules
64
Curriculum hours
110.5
01

A certificate is only as good as the assessment behind it

Georgia security and investigative licensing requires documented completion of state-defined curriculum hours. Generic platforms fail that in three specific ways. A student can click through content without engaging, so a certificate issued on that basis is indefensible if challenged. A missed question about report formatting is treated identically to a missed question about the deadly-force threshold. And when a licensing body or opposing counsel asks how a particular operator was credentialed, there is no immutable answer. Those are architectural failures rather than missing features — which is why the platform was built from the schema up instead of configured on top of an existing LMS.

02

Three accredited tracks, 110.5 hours

Armed Security, Private Detective and Unarmed Security run as separate tracks against GA Admin Code § 509-3-.01 and OCGA Title 43, Chapter 38 — 64 modules and 393 learning objects in total, of which 376 carry professional voice narration. Every module terminates in an assessment with a defined passing score, and each track ends in a final accreditation examination at an 85% threshold.

Curriculum hours per track. Private Detective is the heaviest at 70 hours, set by the state standard.
03

Competency is sequential and earned

A module is inaccessible until the one before it has been passed — enforced per track, on the server. The page layer and the API layer check independently, so a student cannot reach a locked assessment by calling the endpoint directly rather than clicking through the interface. Instructors and coordinators bypass the gate deliberately, for review.

04

Life-safety errors are categorically different

Questions carrying a life-safety consequence are designated Critical Fail. Answering one incorrectly does not simply lower a score — it triggers a Tactical Reset: the module relocks, a 24-hour cooldown begins, an entry is written to the audit log, and the instructor is emailed. A student who misunderstands the deadly-force threshold does not get to try again ten seconds later.

329
Assessment questions

Across 64 modules, every one with a defined passing score.

65
Critical Fail — life-safety

An incorrect answer triggers a Tactical Reset: relock, 24-hour cooldown, audit entry, instructor alert.

Roughly a fifth of the question bank is life-safety designated, and those questions are graded on a different consequence model to everything else.
05

The browser is never trusted, and the record cannot be edited

Correct answers never leave the server — assessment responses carry question text and option labels only, and grading happens server-side against the database. Questions and options are shuffled per session, each question runs against a 90-second countdown, attempts run fullscreen, losing tab focus accrues strikes, and every attempt writes a full behavioural timeline. Progress can only be written with a privileged server-side key; no client path exists. Underneath it, a database trigger writes an append-only audit log with no update or delete path — application code cannot disable it, which is what makes the record answerable years later.

  1. DeliveryQuestions and options only — the answer key never reaches the browser
  2. GradingComputed server-side against the database, never client-side
  3. WriteProgress requires a privileged server key; students have no insert path
  4. AuditAppend-only log written by a database trigger the app cannot switch off
Each stage is enforced independently. Compromising the browser does not move a score.
06

Real deliverables instead of padded seat time

The Private Detective track's 70 hours are 66 hours of instruction plus 4 hours of assessed practical work: an incident report to a supervising investigator, an investigative report written for law-enforcement hand-off, and a domestic surveillance report prepared for family-law counsel. Students upload the work in the player to a private store; the instructor of record grades it with written feedback, a failing grade returns the assignment for replacement, and the certificate stays locked until the reports are in and at least one has been passed. The hour requirement is satisfied with work a client would recognise.

Built with
NEXT.JS 16REACT 19TYPESCRIPTSUPABASEPOSTGRESQLROW-LEVEL SECURITYCLAUDEELEVENLABSRESENDCLOUDFLARE TURNSTILEDOCKERNGINXGITHUB ACTIONS

Build the
next one with us.

./start-a-project ◢