← Selected work

WebRTC virtual classroom

ESLflex Virtual Classroom

A browser-based virtual classroom for Cleverlearn — up to 8 participants with webcam, audio, live chat, class materials, and a collaborative whiteboard.

RoleSoftware Engineer · Cleverlearn English Language Institute
Timeline2015 — 2017
StackWebRTC · Socket.io · Vue.js
8
Live participants per session
Sub-second
Whiteboard sync latency
C# → WebRTC
Desktop-to-web migration
+40%
Code reusability after refactor

The challenge

A legacy C# desktop classroom limited reach and was costly to maintain. Lessons needed to run in any browser — with live video, shared materials and a collaborative whiteboard — even on the low-bandwidth connections common to remote students.

The outcome

A browser-based WebRTC classroom with a Socket.io-synced whiteboard brought live classes for up to 8 participants to any device with full feature parity, plus an integrated ERP portal for hotel, HR, finance and academic operations.

Overview

ESLflex is the virtual-classroom suite I built at Cleverlearn English Language Institute — migrating a legacy C# desktop app to a browser-based WebRTC platform branded as Our Study Room. Teachers and students join live sessions with up to eight participants on webcam and audio, open lesson pages and multimedia from an in-class library, chat in real time, and collaborate on a Socket.io-synced whiteboard. I also led a modular MVC refactor and built an integrated ERP portal for hotel, HR, finance and academic operations.

What I built

01

Migrated ESLflex from a C# desktop app to a WebRTC web app with full feature parity

02

Live sessions for up to 8 participants — webcam, audio, and in-class chat

03

In-session library — lesson worksheets, audio, flashcards, and multimedia for teacher-led instruction

04

Real-time collaborative whiteboard synced via Socket.io with sub-second latency

05

WebRTC media tuning for stable video/audio on low-bandwidth connections

06

Integrated ERP portal — Hotel Management, HR, Finance, and Academic modules