← All case studies

Learning workflows · 1 min read

Synergy: content progression and scheduled integration

Synergy is a learning application from my Appon client work. Its NestJS backend connects course content, viewing records, tasks, and completion checks.

My role
Backend contribution within the Appon client work
Project scope
Client-owned application · private source

Result and scope

Backend contribution to connected learning-progress and integration workflows.

System walkthrough

The main responsibilities in this workflow.

  1. External form data
  2. Mapping and scheduled imports
  3. Content / views / tasks / checks
  4. Progression queries
  5. Application response

Progression is a state problem

The backend models content, views, tasks, and task-check records separately. A processor uses viewing history, dates, and completion information to determine which content is available and which tasks apply. This is more specific than a generic list of lessons.

The useful distinction is between storing an action and interpreting progress. Recording that a learner viewed something does not by itself decide whether the next item should be available. The service combines those inputs according to the application's progression rules.

Mapping external data into application records

The application includes mapping classes, DTOs, repositories, and an external-form service. Imported records are converted into the application's content and task models, including references between them.

This is integration work as well as API work. The application needs to preserve the relationship between an external record and its local representation, rather than treating each incoming field as an unrelated value.

Scheduled refresh and application queries

The processor contains scheduled import work, while service methods retrieve open content, future content, and relevant tasks. NestJS provides the application structure and TypeORM supplies the repository/query layer.

Project notes

Backend contribution to a shared client application. Source is private; current service availability and learner outcomes are not measured here.