For the best experience, view this proposal on a desktop. On mobile, the app screens are shown as preview images — tap any to enlarge.
Learning Management System · Proposal

A training platform
that proves completion.

A learning management system for Forvis Mazars — built so that a certificate means what it says. Every minute watched is verified on the server, every quiz is drawn fresh from a question pool, and every attempt is on the record.

Scroll to read the proposal
What we are building

Five parts. One system.

The platform is built from five connected parts. Each is described in detail below, with the confirmed rules from your written answers of August 2026 built into the design.

Part 01

Anti-skip video player

Server-verified watch tracking. Free seeking within watched content, locked beyond it, auto-pause when the window loses focus.

Part 02

Quiz & certification

Randomised multiple choice at 100% pass. Seven attempts, a 24-hour lock, one final attempt — then permanent lockout.

Part 03

Reporting & export

Nine confirmed breakdowns, clustered column charts, Excel export, and a monthly report the administrator downloads on demand.

Part 04

Anonymous evaluations

A ten-question star-rating form per course. No trainee identity is ever shown to an administrator, in any view or export.

Part 05

Administration

Up to four administrators. Course and video management, question pools, trainee accounts by admin creation or self-registration.

Throughout

English and Traditional Chinese

Both portals ship bilingual. Trainees and administrators switch language at any time; the choice persists to their account.

Part 01 · Anti-skip video player

Completion the server can prove.

Most platforms record progress by asking the browser how far the trainee has watched. That is a claim, not evidence. This player reports watched intervals continuously, and the server merges them and refuses to mark a video complete unless the coverage is genuinely continuous from start to finish.

learning.yourdomain.com / course / hkfrs-18
Training player with anti-skip progress rail
Training player — prototype preview
Prototype preview — tap to enlarge

Illustrative prototype — shown for reference only. Final UI will be confirmed during Phase 02.

No skipping forward

The rail is locked beyond the furthest point reached. Content never watched cannot be jumped past.

Free review

Within content already watched, trainees seek freely and rewatch as often as they wish.

Auto-pause on focus loss

If the training window is no longer the active screen, playback stops. Progress is saved at that point.

Unlimited resumes

A session can be stopped and resumed any number of times. Long courses may be split across videos.

What anti-skip can and cannot do

Seek-locking and watch verification are enforced on the server and are reliable. Auto-pause on focus loss is enforced in the browser and is best-effort — it stops the common case of a trainee leaving the video running in a background tab, but it cannot detect a second monitor or a trainee who leaves the room. We state this plainly so the control is not later mistaken for a guarantee of attention.

Part 02 · Quiz and certification

Seven attempts. Then one more.

Every attempt draws a fresh set of multiple-choice questions from the course pool, so a retake is a genuine reassessment rather than a memory test. A pass requires every answer correct.

learning.yourdomain.com / course / hkfrs-18 / quiz
End-of-course quiz with attempt tracking
Quiz — prototype preview
Prototype preview — tap to enlarge

Illustrative prototype — shown for reference only. Final UI will be confirmed during Phase 02.

The attempt ladder
1–7
Seven attempts, available immediately
Each draws a new random question set.
24-hour lock
The course closes for a full day after the seventh failure.
8
One final attempt
Granted automatically when the lock expires.
Permanent lockout
The course locks for good. An administrator can reset it; the reset is recorded.
Certificate rules

A certificate is issued automatically the moment both conditions are met — full video completion and a 100% quiz pass. Submitting the evaluation is not required.

Course title
Name of trainee
Training duration — set by QAD per course
Completion date

Courses are versioned. If a video is replaced later, certificates already issued remain valid and continue to reference the version the trainee actually completed.

Part 03 · Reporting and export

Nine breakdowns. One export button.

The dashboard is built to your confirmed list. It is a Power BI–styled dashboard built into the platform — not a Power BI integration, so it carries no Microsoft licensing cost on the Forvis Mazars side.

learning.yourdomain.com / admin / dashboard
Administrator statistics dashboard
Admin dashboard — prototype preview
Prototype preview — tap to enlarge

Illustrative prototype — shown for reference only. Final UI will be confirmed during Phase 02.

Every breakdown you confirmed

01 Trainee name
02 Course launch year
03 Course completion count
04 Completion date by trainee
05 Attempts taken to pass
06 Started but incomplete
07 Permanently locked out
08 Average attempts by course
09 Evaluation form items
Part 04 · Evaluations

Anonymous means anonymous.

Administrators see both an aggregate view per course and each individual response, exactly as you asked. What they never see — in any screen, report, or Excel export — is which trainee wrote it. Responses are labelled Respondent 1, Respondent 2, and so on.

How this is enforced
Identity is never joined into any evaluation view or export at the query level.
The system records only whether a trainee has responded, so non-responders can still be chased.
Ten questions, one to five stars, per course — matching the format you described.
Part 05 · Administration

Everything QAD needs, in one place.

Upload and reorder videos, write the training page, manage the question pool, and preview the certificate — all from a single course screen. Up to four administrator accounts.

learning.yourdomain.com / admin / courses / hkfrs-18
Course management and certificate template
Course management — prototype preview
Prototype preview — tap to enlarge

Illustrative prototype — shown for reference only. Final UI will be confirmed during Phase 02.

Video management

Upload, reorder, and replace. Long courses split across multiple videos in a fixed sequence.

Training page

All seven confirmed fields — description, standards date, duration, language, material and evaluation links, organiser message.

Question pools

Write multiple-choice questions with four to five options. Set how many are drawn per attempt.

Trainee accounts

Created by an administrator or by self-registration. Assign courses individually or in bulk.

Architecture

A proven stack, not a new one.

Every component below is a mature, widely deployed technology with a long support horizon. Nothing here is experimental. The result is a platform your IT team can assess quickly and maintain without specialist knowledge.

Entry points
Trainee portal
Course list, player, quiz, certificates, evaluations. EN / 繁中.
Administrator portal
Courses, question pools, trainees, dashboard, exports. Up to 4 accounts.
Application layer
Authentication · Session management · Role enforcement

Argon2id password hashing, server-side sessions, and role checks on every request. Trainee and administrator boundaries are enforced on the server, never in the browser.

Core services
Watch verification
Interval merging and coverage checks on the server.
Quiz engine
Pool draw, grading, attempt and lockout state.
Certificate issuer
PDF generation, versioned and immutable once issued.
Reporting
Aggregations, charts, and Excel export.
Storage
PostgreSQL
Accounts, courses, watch intervals, attempts, certificates, evaluations. Encrypted at rest, daily backups.
Object storage — Cloudflare R2
Video files, served through an authenticated proxy. R2 charges no egress fee, which matters when 100 trainees stream multi-gigabyte courses.

Answering your storage question

Your team asked what the maximum available storage is. There is no fixed ceiling — storage scales on demand and is inexpensive. The figure that actually matters for a video platform is monthly transfer, not capacity, which is why we recommend Cloudflare R2.

Included capacity
500 GB
Roughly 250–500 hours of 720p video
Egress charge
None
Streaming volume does not add cost
Beyond 500 GB
Extendable
Quoted at cost when required
Technology

A pragmatic, modern stack. No moonshots.

Expected trainees
100
Admin accounts
4
Interface languages
2
Support included
3 mo
Layer 01

Application & UI

Next.js 14 · React 18 · TypeScript
Tailwind CSS · shadcn/ui
Bilingual routing (EN / 繁中)
Layer 02

Backend services

Node.js · Fastify · TypeScript
Zod request validation
PDF generation for certificates
Layer 03

Watch verification

Client interval reporting
Server-side merge and coverage check
Tamper-resistant completion record
Layer 04

Data

PostgreSQL 16 · Drizzle ORM
Daily automated backups
Encrypted at rest and in transit
Layer 05

Media & export

Cloudflare R2 object storage
Authenticated streaming proxy
XLSX export pipeline
Layer 06

Operations

Containerised deployment
Uptime and error monitoring
Staging and production environments
Confirmed at kick-off
Hosting region Domain and email cutover — with your IT team Certificate visual design Evaluation question wording Final storage allocation
Scope of work

Everything included. Everything excluded.

The full delivery scope, set out plainly. Every rule described here reflects the written confirmations provided by your training team, so what is built matches what was asked for.

Functional areas
5
Player, quiz, reporting, evaluations, administration
Confirmed rules
14
Captured from your written answers
Interface languages
2
English and Traditional Chinese
Delivery
13 wk
Kick-off to go-live
Capability What is delivered
Administrator panel Secure login and access management for up to four administrator accounts. Course and video management, question pools, trainee accounts, dashboard, and exports.
Trainee portal Secure login, assigned course list, integrated video player, quiz, certificates, and evaluation forms.
Trainee accounts Two onboarding paths — created by an administrator, or by self-registration. Courses assigned individually or in bulk.
Video management Upload, reorder, and replace course videos. Courses may hold multiple videos in a fixed sequence, so long sessions can be split.
Anti-skip enforcement Fast-forwarding into unwatched content is blocked. Free seeking within content already watched. Playback pauses automatically when the training window is no longer the active screen. Unlimited resumes.
Completion tracking Watched intervals are verified on the server. A video is marked complete only when coverage is genuinely continuous from start to finish, across every video in the course.
Quiz engine Multiple-choice questions with four to five options, drawn at random from a per-course pool for each attempt. Pass mark of 100%. No open-text answers.
Attempt and lockout rules Seven attempts available immediately, then a 24-hour lock, then one final attempt. After eight attempts the course locks permanently, with administrator reset and an audit record.
E-certificate generation Issued automatically on full video completion plus a 100% quiz pass. Carries course title, trainee name, training duration, and completion date. Evaluation submission is not required.
Certificate integrity Courses are versioned. If a video is replaced later, certificates already issued remain valid and continue to reference the version the trainee completed.
Evaluation forms Ten questions per course on a one-to-five scale. Administrators see aggregate results per course and each individual response, with trainee identity suppressed in every view and export.
Statistics dashboard Registered trainees, completion rate, in progress, not started, and certificates issued — plus the nine confirmed breakdowns, presented with clustered column charts and filters.
Reporting and export Excel export covering all nine breakdowns, and a monthly report the administrator downloads on demand.
Training page Seven fields per course — description, effective date of the standards covered, duration, video language, link to training material, link to the evaluation form, and a message to the trainer or organiser.
Trainee messaging Trainees leave messages about course content or technical issues. Administrators read and reply within the portal.
Bilingual interface Both portals in English and Traditional Chinese throughout, with the language choice persisting to each account.
Deployment and hosting Production environment setup, domain and email cutover, initial system configuration, administrator training, and documentation.
Post-launch support Three months from go-live, covering defect resolution within the delivered scope.

Not in this engagement

Stated plainly, so there is no ambiguity at delivery.

Deferred — available later
Microsoft Entra single sign-on. The platform is built so this can be enabled later as configuration rather than redevelopment.
Mid-video questions. Confirmed as optional with no pass requirement; excluded to keep the first release focused.
Mobile applications for iOS or Android. The portals are responsive and work in a mobile browser.
Automated email notifications and reminders.
Out of scope
Live Power BI integration. The dashboard is built into the platform; a Power BI licence is not required and not supplied.
Production of training videos or course content.
Writing quiz questions or evaluation wording. The system manages them; your training team authors them.
Migration of historical training records from any existing system.
Delivery timeline

Five phases. Thirteen weeks.

Each phase ends with something you can see and sign off. Nothing moves to the next stage until the previous one is agreed.

Wk 1–1.5 Wk 2–3 Wk 4–9 Wk 10–11 Wk 12–13
Phase 01

Requirements and confirmation

Kick-off with the training and IT teams
Domain and email cutover planning
Evaluation question wording
Storage allocation confirmed
1.5 weeks
Week 1 – 1.5
Phase 02

Design and interface confirmation

Final screen designs, both portals
Certificate visual design
Traditional Chinese translation review
Sign-off before development starts
2 weeks
Week 2 – 3
Phase 03

Development

Anti-skip player and watch verification
Quiz engine and lockout state machine
Certificate generation and versioning
Evaluations, dashboard, Excel export
Administration and trainee accounts
Bilingual interface throughout
6 weeks
Week 4 – 9
Phase 04

Testing and user acceptance

Anti-skip and lockout rule verification
Acceptance testing on a staging environment
Bilingual review, both portals
Defect resolution
2 weeks
Week 10 – 11
Phase 05

Deployment and handover

Production environment setup
Domain and email cutover
Administrator training and documentation
Go-live and initial configuration
2 weeks
Week 12 – 13
Post-launch support Three months from go-live, covering defect resolution within the delivered scope.
Commercial terms Provided under separate cover.

Support covers correcting faults in what has been delivered. It does not cover loading course content, writing quiz questions, or building new features — these can be scoped separately at any time.

Prepared by

DigiDumpling Limited.

Thank you for the detailed answers to our questions — they made it possible to scope this system precisely rather than approximately. We are ready to start whenever you are; reach out through any of the channels on the right.

Contact
Email
rhung@digidumpling.com
Office
Rm F, 6/F, Shing Lee Commercial Building
6–12 Wing Kut Street, Central, Hong Kong
End of proposal.