An adaptive online learning platform

Avatar of 徐鵬鈞.
Avatar of 徐鵬鈞.

An adaptive online learning platform

Software Engineer @ Houzz Inc.
Taoyuan City, Taiwan

An adaptive online learning platform

An adaptive online learning platform based on short videos and meaningful quizzes.

Product & Concept

We provide content for English (as a second language) and Mathematics.


For English learners, the product focuses on growing vocabulary and translation. Each vocabulary is a short video with simple sentences that provide context and audiovisual stimulation. Timed quizzes are also presented before, during, and after the video, including pronunciation check and translation practices.


For Mathematics, we diced the curriculum into pieces of knowledge, each represented with a 5-minute video. The student can take a quiz to see if they have enough understanding of previous topics to learn the new concept. If not, we would provide a tailored path to fill in the gaps.


🟢 This project is active! Click here (It's in Mandarin, and it's optimized for mobile device)


I'm responsible for: Frontend, backend, content creation tools, DevOps, testing, and planning.


Tech stack: Firebase (Auth, Firestore, Functions), Google Cloud (Storage, Load Balancer, CDN), FaaS, Angular.


Third-party services: Stripe, Messenger, Speechace.

Landing Page

Different introductory content is shown according to incoming URL.

 

Curriculum Directory

Directory content are rendered lazily with Angular CDK virtual scroll, we also have lazy loading and caching of directory content to reduce database reads.

 

Quizzes

 

Technical Details

Modularity

We've created a few Angular modules for shared services or components. For us, this helps with build caching; and it also encourage developers to create stable API surface, reducing future work.


I've also created many packages shared between frontend and Node.js backend, two particularly important ones is our Codable library and data access SDK.


Tests

We're a team of two engineers, we don't have time for lots of tests. However, we've created tests case covering both successful and exceptional code path for packages that matters.


Software Engineering

Performance matters, and so does operation cost. All our catalogue views use the same Fetch controller object to load data lazily.

Once the data is loaded, it is also saved into a LRU cache to speedup subsequent access, and make back navigation lightning fast.

An adaptive online learning platform based on short videos and meaningful quizzes.
Avatar of the user.
Please login to comment.

Published: Sep 28th 2021
54
5
0

Share