Product EngineeringEducation & Training

Lernern Skilling and Placement LMS

Lernern is a skilling and placement provider in India. We designed, built and run its learner management system: a staff admin portal, a learner app for Android and iOS, and one NestJS API — about 740 endpoints — behind both.
01

The Brief

Lernern trains and places people into jobs across India. Candidates reach them through employer partnerships, partner skill centres and self-registration; they are trained on courses delivered online and onsite, examined, issued letters and certificates, and placed with employer clients on programmes that range from apprenticeships to embedded degrees and staffing. Every stage has a different owner — lead teams, regional heads, trainers, supervisors, employers and the learner — and each needs its own view of the same record.

02

The Approach

One API From First Enquiry to Job Placement

We built the system from scratch — architecture, development and ongoing maintenance — and we run it too: infrastructure planning, hosting, DevOps and 24/7 monitoring. It is built around a single NestJS Core API on PostgreSQL, and put every client behind it: an Angular admin portal for staff, an Ionic and Capacitor learner app for Android and iOS, and API-key access for partner and payroll systems. Work that should not hold up a request — PDF generation, rosters, reminders and notifications — runs on Redis-backed queues and schedulers, and a separate notification engine sends email, WhatsApp and push messages.

Three ways in

Product Surfaces

Three audiences, three front ends, one API underneath them.
Staff, regional heads and trainers

Admin portal

The staff side of the system. Leads, candidates, clients, institutes, skill centres, courses, batches, cohorts, sessions, examinations, jobs and placement each follow the same list, create, view and edit pattern, and every menu and action is gated by role permissions.

  • Lead capture through bulk upload and shareable enquiry forms
  • Candidate records with verification, course mapping and a comment history
  • Batches, cohorts, attendance, sessions and examinations
  • Template-designed letters, ID cards, mark sheets and certificates as PDFs
  • Head-count and revenue dashboards
Candidates and students on Android and iOS

Learner app

One Ionic and Capacitor codebase packaged for both platforms. Learners sign in with a mobile OTP, email or Google, and the kind of learner they are decides which data they see.

  • Course progress and the embedded Gooru player
  • Online and onsite class details with the Zoom link
  • Exam shifts, admit cards and marks
  • Job search, applications and offer letters by email
  • Profile and Document Center
External apps and payroll

Partner and payroll APIs

Server-to-server callers reach the Core API through API-key protected endpoints, with separate keys for external apps and payroll and an IP allow-list guard.

  • Payroll records that trigger a salary-credited notification
  • Lead import from LeadSquared
  • Swagger documentation for the API
Enquiry to job

Lifecycle

The path one record follows, from first enquiry to placement.
  1. 01
    Capture

    Leads arrive through shareable enquiry forms, bulk upload or a LeadSquared import, grouped under job events such as campus or walk-in drives.

  2. 02
    Enrol

    A lead becomes a candidate, is verified, and is mapped to an employer client, course, batch or cohort.

  3. 03
    Train

    Learners attend online and onsite sessions; trainers mark attendance; exams, marks and competencies are recorded.

  4. 04
    Document

    Templates produce offer, admission and exit letters, ID cards, mark sheets and certificates as PDFs, and the learner is notified.

  5. 05
    Place

    Candidates are placed against employer jobs; payroll records arrive over a partner API and trigger a salary-credited notification.

What it changed

Benefits

What moving from spreadsheets to one system has meant for Lernern's day-to-day operations.
61,000+Candidates on the platform
4+Years of development and maintenance

One system instead of spreadsheets

Before the platform, everything was tracked through Excel sheets. Enquiries, enrolment, attendance, exams, documents and placement now sit on one record per learner, in one place.

Less manual work

Offer letters, ID cards, mark sheets and certificates are generated from templates, and reminders, roster syncs and notifications run on schedules and queues rather than being prepared by hand. The team works more efficiently as a result.

An approval workflow

Records move through draft, returned, pending review and approved, and candidates, clients, institutes and skill centres each keep a comment history, so who reviewed what stays with the record.

The right view for each role

Staff, regional heads, trainers and supervisors see the menus and actions their role allows, while learners use the mobile app on the same data.

Behind the screens

Under the Hood

The plumbing that lets the lifecycle run without someone pushing each step.

Identity and access

Portal users sign in with credentials and a JWT bearer token, while learners use a mobile OTP or SSO. Menu and operation permissions are stored per role, and rate limiting is backed by Redis.

Documents and templates

Templates produce offer, admission and exit letters, ID cards, mark sheets and certificates as PDFs. A Lambda function renders them and files land on S3, with generation queued so a request never waits on it.

Notifications

A separate notification engine sends email, WhatsApp and push messages for seven triggers, dispatched in batches from a queue. A push opens the matching class, exam or document in the app, and a signed-out learner is taken there after signing back in.

Scheduled work

Ongoing candidates are rostered into Gooru each night and expired job posts are closed daily. Session reminders and status changes run every minute, and a weekly report flags overdue on-the-job training behind a Redis lock.

Integrations

Gooru supplies course content, LeadSquared feeds leads in, Interakt carries WhatsApp, OneSignal handles push, Mailgun and SMTP handle email, and online classes open on Zoom.

Delivery and operations

We planned the infrastructure, host the platform and monitor it around the clock. The portal and the API are released through AWS CodeDeploy, with separate development, QA and production builds.

Stack

Admin Portal
AngularAngular MaterialBootstrapChart.jsjsPDFExcelJS
Learner App
IonicAngularCapacitorTypeScriptRxJS
Core API
NestJSTypeScriptTypeORMPassportSwagger
Data & Queues
PostgreSQLRedisBull
AWS & Documents
Amazon S3AWS LambdaAWS CodeDeploypdfmakeHandlebars
Integrations
GooruLeadSquaredInteraktOneSignalMailgunFirebaseGoogle Sign-InZoom

What This Project Means For Us

Most of the work on this site is moving systems. This one is building one: a single domain model and a single API carrying a learner from first enquiry to a job, with three very different audiences on top of it — operations staff, employers and the learners themselves. The parts that make it work day to day are the unglamorous ones: queues, schedulers, document templates and notification triggers that let the lifecycle run without someone pushing each step. And because we also host and monitor it around the clock, what we build is carried through to production and kept running.

Engineering Notes

One NestJS API behind the admin portal, the learner app and partner integrations

  • About 740 REST endpoints over 144 PostgreSQL entities, documented with Swagger
  • Admin portal menus and actions gated by per-role permissions
  • Android and iOS learner app from one Ionic and Capacitor codebase
  • Mobile OTP with Android auto-read, email and Google sign-in for learners
  • API-key and IP allow-list guards for partner and payroll integrations
  • Template-driven PDFs for letters, ID cards, mark sheets and certificates
  • Separate notification engine for email, WhatsApp and push across seven triggers
  • Push notifications that deep-link to the matching class, exam or document, even after login
  • Nightly Gooru roster sync and scheduled jobs coordinated through Redis and Bull queues
  • Comment-history audit trail on candidates, clients, institutes and skill centres
  • Head-count and revenue dashboards for operations teams
  • Releases through AWS CodeDeploy across development, QA and production
  • Infrastructure planning, hosting, DevOps and 24/7 monitoring run by Cloud Ripples

One partner across a portfolio of media projects

We've brought Cloud Ripples into a wide range of engagements across our media and entertainment work, and they adapt quickly to each one. Whether it's a greenfield product build or a DevOps engagement on an existing platform, they come in with the right people, ask the right questions early, and deliver without needing to be managed closely.

Sreejith ParthaCEO

A trusted engineering partner for over 15 years

Cloud Ripples has been part of Gooru's engineering team for more than fifteen years, building and maintaining our applications and managing the cloud infrastructure they run on. They've scaled with us through every stage of our platform's growth, and their reliability, ownership, and deep understanding of our systems have made them a genuine extension of our team rather than a vendor.

SriniCo-founder & CPO

Cloud Ripples developed and now maintains our ERP application across web and mobile

From consultation to delivery, they were professional and insightful. They understood our needs and exceeded expectations. They also handled infrastructure design, hosting, and 24/7 server monitoring, ensuring smooth operation and peace of mind.

VaibhavDirector Operations

Cloud Ripples Support Has Been Essential to Our Success

A reliable and responsive partner, Cloud Ripples handled our diverse tech needs and the complex DEI Toolkit customization with skill and positivity. Their support means a lot to us.

Kris KewitschExecutive Director
Practical Logix logo
MyGooru logo
Lernern logo
Charities Review Council logo
Our Work

Case Studies

Real-world solutions we have delivered — from cloud migrations to product builds.
Multi-Region AWS Migration
Cloud MigrationMulti-Region AWS Migration

Region-to-region AWS migration for a live surf forecasting and camera-streaming platform: 718 resources across 20 services and three accounts, cut over with minimal downtime.

Read the case study
AWS Workspaces for Biotech Teams
Virtual Desktop InfrastructureAWS Workspaces for Biotech Teams

Virtual desktops for a biotechnology company's contractors and BYOD staff: ten role-based AWS Workspaces images joined to the client's own Active Directory, built to their HIPAA and HITRUST obligations.

Read the case study
Aptible to AWS Migration
Platform MigrationAptible to AWS Migration

Moving HIPAA-regulated Python microservices off a managed PaaS onto AWS: three environments rebuilt as code on ECS Fargate, PHI isolated in its own account, and roughly 60% off the monthly run-rate.

Read the case study
Lernern Mobile Learning App
Product EngineeringLernern Mobile Learning App

We built Lernern's Android learner app from scratch, publish it on Google Play and have maintained it for 3+ years, across about 20 releases.

Read the case study
Contact us

A free consultation — with an engineer, not a salesperson

Tell us what you are trying to build, fix or migrate. We will look at your architecture, your costs and your risks, and come back with a recommendation in writing — whether or not it turns into an engagement.

Someone who has read up on your stack before the call
A working session on your actual problem — not a product pitch
An honest view of what you need, and what you do not
A written proposal with fixed scope and cost
The same engineers delivering it, and supporting it afterwards
+91 8939464343
No. 403-404, Third Floor, NSIC Software Technology Park
Ekkatuthangal, Chennai - 600032, INDIA
View On Map
Schedule a free consultation