Lumina Learn

How the gamified training platform works

A multi-tenant LMS where staff complete courses, pass timed quizzes, and earn coins, badges, and certificates for it — built for businesses like hotels and retail chains to onboard and train their teams.

Super AdminTenant AdminLearner
scroll

02 The idea

Training that people actually finish

Staff training tends to get skipped. This platform borrows game mechanics — points, rewards, rankings — so completing a course feels like progress, not paperwork.

Tenants onboard staff

A hotel, retail chain, or any business signs up its team and assigns them training.

Courses build skills

Lessons teach the material, quizzes prove it stuck — real job-relevant content, not generic modules.

Progress pays off

Coins, badges, a leaderboard spot, and a certificate at the end make finishing feel earned.

03 Who uses it

Three roles, one strict boundary

Every tenant's data — courses, learners, badges, everything — is walled off from every other tenant. No exceptions except the Super Admin, whose whole job is operating across all of them.

Platform level

Super Admin

Creates organizations and each tenant's first Admin. Lives outside every tenant — the one deliberate exception to data isolation.

Per tenant

Tenant Admin

Builds courses and quizzes, manages badges and avatars, adds learners, reviews analytics — for their organization only.

Per tenant

Learner

Works through courses, takes quizzes, earns coins/points/badges, checks their leaderboard rank.

04 Content model

Course → Module → Lesson or Quiz

A course is a stack of modules; each module holds any mix of lessons and quizzes in a single shared order — a quiz doesn't have to come last, it can sit anywhere between lessons the admin chooses.

Lesson

Video or text

Awards coins the first time a learner marks it complete. No score, no time limit — just content.

Quiz

Multiple choice, timed

A time limit, a pass threshold, and any number of questions with one correct option each. Awards coins + points on the first pass.

05 The learner journey

From "My Training" to a certificate

One continuous loop — every step here writes something to the learner's profile.

Browse
My Training grid
Lesson
watch / read
Quiz
timed, graded
Coins
+ points
Badges
auto-awarded
Rank
leaderboard
Certificate
at 100%

06 Why it can be trusted

The server decides, never the browser

A quiz score or a countdown timer sent from the client is just a suggestion — the rules that actually matter run on the server.

01
The clock starts on the server
A quiz attempt's startedAt is stamped the moment the server creates it — a learner can't claim they started later than they did.
02
Scoring happens server-side
The client sends which options were picked, never a score — correctness is checked against the database on submit.
03
Unlimited retries, one reward
Every attempt is logged regardless of outcome, but coins and points are only granted on the first passing attempt — retries can't be farmed.

07 Two currencies

Coins to spend, points to rank

Coins

Spendable currency. Earned from every lesson completion and every first-pass quiz. Unlocks premium avatars.

Points

A skill score. Earned only from first-pass quiz scores — what the leaderboard actually ranks on, so it rewards mastery, not just showing up.

08 Badges & avatars

Rewards that unlock themselves

One BadgeEngine evaluates every badge's criteria after each lesson or quiz attempt — lessons completed, a score threshold, a course finished, or every course finished. Avatars use the very same criteria system to unlock premium looks behind coins, points, a badge, or a course.

Bronze Silver Gold— cosmetic tiers admins assign per badge

09 Leaderboard

Fast today, built to scale

Top learners by coins, shown on the course page, the profile sidebar, and the admin analytics dashboard.

running now

PostgreSQL

A plain ranked query. Simple, always fresh, plenty fast at normal team sizes.

ready, unused

Redis (Upstash)

A sorted set for instant ranking at large scale. Same functions, same callers — flips on the moment two env vars are set.

10 Certificates

Earned automatically, printed on demand

The instant a course hits 100% complete, a certificate is issued — no button to press, no admin approval step. Learners view and print (or save as PDF) a branded certificate with their name, the course, and the date, right from the browser.

11 Admin toolkit

Everything a tenant needs to run training

Course builder

Courses, modules, lessons, and quizzes — with drag-free up/down reordering across lessons and quizzes together.

Badges & avatars

Define unlock criteria without writing code — the same engine evaluates both.

Analytics dashboard

Completion rates per course, pass rates per quiz, and a top-learners view — one screen, no spreadsheet exports.

12 Under the hood

Built on

Next.js 15 · App RouterTypeScript strictPostgreSQL + PrismaAuth.js (NextAuth v5)Tailwind + shadcn/uiUpstash Redis (optional)

13 Try it

Log in and see it work

Every role has a demo account, seeded with real courses, quizzes, and a badge.

Super Admin
super@platform.testsuperpassword123
Tenant Admin
admin@demo-hotel.testpassword123
Learner
learner@demo-hotel.testlearnerpassword123

Tenant logins also need the organization slug: demo-hotel

Go to login