All projectsFullstack

Roudhati (روضتي)

Arabic-first SaaS for Tunisian kindergartens

localhost
Roudhati (روضتي)

Roudhati replaces the paper notebook Tunisian kindergarten directors use for enrollment, monthly fees, attendance and expenses. I built both sides: a NestJS modular monolith over PostgreSQL with Prisma, and a Next.js App Router frontend that is RTL and Arabic by default. The fee module is the core — payments are recorded as cash received with explicit allocation rows, so an overpayment carrying forward to the next unpaid month stays auditable and reversible. Tenant isolation runs through a Prisma client extension backed by Postgres row-level security.

What it does

  • Monthly fee grid with payment carry-forward
  • Row-level security tenant isolation
  • Diacritic-insensitive Arabic search
  • Printable A4 receipts in Arabic words
  • Daily attendance with idempotent saves
  • Role-guarded API and navigation
  • RTL layout enforced by a lint rule

Built with

  • Next.js
  • NestJS
  • PostgreSQL
  • Prisma
  • TypeScript
  • Tailwind
  • Zod