Case Study

Doer School — School Management System

Team Lead & Full Stack Developer · Doer Services PLC

  • Jasper Reports
  • JDBC
  • R2DBC
  • Angular
  • Bootstrap

Overview

A full-featured education administration ERP engineered to unify academic, student, and financial workflows across educational institutions. The platform handles student admissions, biometric attendance verification, course registrations, dynamic exam tabulation, automated grade sheet calculation, fee collection ledgers, and institutional reporting with downloadable official transcripts.

Problem

Academic records, attendance and fees sat in separate ledgers, so a transcript was assembled by hand from all three and a question about a single student took three people to answer. Tabulation at the end of a term was the worst of it, and the least forgiving of mistakes.

My role

Team lead and full stack developer — directed report generation engines, biometric device sync, and data layer performance.

Architecture

JDBC and R2DBC data access layers for rapid analytics, JasperReports engine for printable transcripts, attendance machine integration, and an Angular/Bootstrap front end.

School management academic, attendance and reporting flow An Angular and Bootstrap client calls Spring Boot services for admissions, examination tabulation and fee ledgers, while biometric devices push attendance. Reads go through JDBC and R2DBC data access layers, and the JasperReports engine renders printable transcripts and institutional reports from the same records. Angular · Bootstrap Attendance Devices biometric Spring Boot Services Admissions and registration Exam Tabulation grading rules Fee Ledger collections JDBC blocking reads R2DBC analytics Relational Store JasperReports transcripts sync renders
Solid lines carry a request and wait for a reply. Dashed lines hand work off and do not.

Key challenge

Grade tabulation has to be exactly right and institutions do not grade alike — weightings, optional subjects and pass rules differ, so the calculation has to be configurable without becoming guesswork. On top of that, transcripts are produced for an entire institution at once rather than one at a time, which turns report generation into a throughput problem and is why the data layer mixes JDBC and R2DBC rather than picking one.

Result

Admissions, biometric attendance, course registration, examination tabulation and fee ledgers run on one platform, with official transcripts and institutional reports generated from the same records the rest of the system uses.