Education · Client platform

CSB — School Operations Platform

Academic and accounting operations for Civil School Bangladesh, with an audit trail on every change.

A NestJS platform for Civil School Bangladesh covering academic and accounting operations, with bulk Excel/CSV import, Bengali PDF generation, a Next.js admin app, and a Flutter companion app for parents.

NestJSPrismaNext.jsFlutter

Problem

The school needed one system for its academic and accounting operations: every change traceable, existing spreadsheet data imported safely, and official documents produced in Bengali.

Solution

Built a NestJS modular-monolith backend with a consistent API contract, Prisma middleware that records an audit entry for every data change, bulk Excel/CSV import with a dry-run mode, and Playwright-based PDF generation with Bengali font support. A Next.js admin app and a Flutter parent app run on the same API.

System architecture

  1. Modular monolith: each school domain (academic, accounting) is its own NestJS module behind one API.
  2. One response contract for every endpoint: success and error envelopes plus consistent pagination.
  3. Prisma data layer with middleware that writes an audit record for every mutation.
  4. Clients: a Next.js admin web app and a Flutter companion app for parents, both on the same API.
  5. Deployed with Docker behind Nginx.

Backend logic

  • Audit logging lives in the data layer, so no endpoint can change data without leaving a record.
  • Bulk Excel/CSV import runs as a dry run first, reporting problems before anything is written.
  • PDF documents are rendered with Playwright and Chromium, with Bengali fonts embedded.
  • Predictable error and pagination formats keep the web and mobile clients simple.

Tech stack

Backend

  • NestJS
  • TypeScript
  • Prisma
  • REST APIs

Web

  • Next.js admin app

Mobile

  • Flutter parent app

Documents

  • Playwright / Chromium PDF
  • Bengali fonts

Infra

  • Docker
  • Nginx

Outcome / impact

  • Academic and accounting work runs on one system.
  • Changes can be traced after the fact through the audit trail.
  • Parents get a mobile app on the same data as the admin team.

Result: One auditable platform for the school's academic and accounting work, with web and mobile clients on a single API.

Related writing