All projectsFullstack
Roudhati (روضتي)
Arabic-first SaaS for Tunisian kindergartens
localhost

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