EdTech / Learning Platform

HanQuocNori — A Comprehensive Online Korean Learning Platform

Building a full-stack Korean-learning EdTech platform: LMS, online exams, e-commerce, and 1-on-1 video classes with teachers.

LMS Online Exam Commerce 1-1 Video Call Affiliate
HanQuocNori — A Comprehensive Online Korean Learning Platform
Industry
EdTech
Type
Platform
Role
Full-stack Dev
Tech
Laravel, Nuxt.js
Languages
VN, EN, KR

System Scale

An EdTech ecosystem running for years on a clear Repository + Service Layer architecture.

300+
Admin Screens
186
Migrations
76
Models
47+
Repositories
6
Exercise Types
35
Vuex Modules

The Challenge

HanQuocNori needed to run as a complete ecosystem rather than a simple course website.

Diverse learning content

6 different exercise types plus vocabulary flashcards and DASH-streamed video.

Standalone online exams

Running the ExamMeta → Exam → ExamConfig → ExamSchedule → TakeExam module.

E-commerce

Cart, three payment methods, discount codes, and an affiliate program.

1-on-1 classes

Slot-based booking, remaining-lesson tracking, live video calls.

Administration at scale

Multi-language support and real-time notifications across 300+ admin screens.

Feature Map

Learning

  • DASH-streamed video
  • Multiple choice & fill-in-the-blank
  • Listening & reading
  • Vocabulary flashcards
6 EXERCISE TYPES

Examination

  • ExamMeta → TakeExam
  • Auto multiple-choice grading
  • Manual essay grading
  • Leaderboard
EXAM ENGINE

Commerce

  • MoMo / COD / bank transfer
  • Discount codes & affiliate
  • Automatic access provisioning
3 PAYMENT METHODS

1-1 Class

  • Slot-based booking
  • Per-session JWT video call
  • Post-session rating
STRINGEE VIDEO

Admin

  • Repository + Service Layer
  • Real-time via Pusher
  • Multi-language VN/EN/KR
300+ SCREENS

Learner Journey

1
Discover
Find the right course, book, or bundle
2
Enroll
Pay via MoMo/COD/bank transfer
3
Learn theory
DASH-streamed video & flashcards
4
Practice
6 types of interactive exercises
5
Take exams
Standalone online exam system
6
1-on-1 classes
Book & video-call with a teacher
7
Track progress
Leaderboard & learning reports

Core LMS & Exercise Bank

Content organized as Course → Lesson → Exercise with 6 exercise types, per-user Redis caching to keep loading fast.

  • DASH-streamed video + audio + text
  • 6 exercise types: multiple choice, fill-in-the-blank, listening, reading, translation, dialogue
  • Vocabulary flashcards
  • Per-user Redis caching
Technical Notes
Laravel 7 backend following the Repository Pattern + Service Layer (76 models, 47+ repositories, 186 migrations).
Core LMS & Exercise Bank
Online Exams & 1-on-1 Classes

Online Exams & 1-on-1 Classes

A standalone exam module combined with 1-on-1 classes via Stringee video calling.

  • ExamMeta → Exam → ExamConfig → ExamSchedule → TakeExam
  • Automatic multiple-choice grading, manual essay grading
  • Slot-based 1-on-1 booking
  • Per-session JWT video calling via Stringee
Technical Notes
Real-time notifications via Pusher; heavy tasks (email, video encoding) run in the background via Laravel Queue + Redis, operated with Supervisor.

Platform Screens

Technical Architecture

Frontend
Nuxt.js 2 (SSR)
Admin
Vue.js 2 + Vuetify
API
Laravel 7
Service Layer
Repository Pattern
Data
MySQL + Redis

Backend

Laravel 7PHP 7.2+JWT (tymon/jwt-auth)Redis

Admin

Vue.js 2Vuetify 2VuexCKEditor 5

Front

Nuxt.js 2 (SSR)Video.js + dashjsPusher-jsnuxt-i18n

Integrations

MoMoStringeeInfusionsoft CRMPayPal

Results & Impact

All-in-one
LMS + exams + commerce + 1-on-1 classes in one ecosystem
Automated
Course access provisioning & MoMo payment confirmation
Scalable
Repository + Service Layer architecture
"The Repository + Service Layer architecture scaled cleanly across hundreds of admin screens and dozens of distinct business flows over the project's lifetime."
— The XO Engineering Team