Skip to content
Omar Sweiti
All projects

Case study · 2026

Financial Transaction Monitor

Transaction monitoring with an automated fraud-review rule

A full-stack dashboard for monitoring financial transactions. A NestJS rules engine forces every transaction over 5,000 into review before it is stored, and a Next.js dashboard charts volume by status.

Context
Personal project
Year
2026

Overview

A NestJS, Prisma and PostgreSQL API paired with a Next.js 16 and React 19 dashboard. A NestJS interceptor acts as the rules engine: any transaction above 5,000 is forced into PENDING_REVIEW before it is persisted, whatever status the client asked for, so no high-value movement goes unaudited.

The dashboard charts transaction volume by status with Recharts, and the transaction directory supports pagination, status filters and debounced search through TanStack Query. The API validates every input, soft-deletes records to protect history, shuts down gracefully and uses indexes shaped for its sort and filter paths. PostgreSQL runs in Docker Compose.

Key features

  • Rules-engine interceptor that forces transactions over 5,000 into PENDING_REVIEW before persistence
  • Volume analytics by status, plus a paginated, filterable directory with debounced search
  • Strict input validation on the API, and react-hook-form with Zod on the client
  • Soft deletes, graceful shutdown hooks and indexed query paths

Architecture

  1. 01

    Next.js dashboard

    React 19, TanStack Query, Recharts and shadcn/ui

  2. 02

    NestJS API

    Input validation and the rules-engine interceptor

  3. 03

    Prisma ORM

    Type-safe queries and migrations

  4. 04

    PostgreSQL

    Indexed tables with soft deletes, in Docker Compose

  • TypeScript
  • NestJS
  • Prisma
  • PostgreSQL
  • Next.js
  • React
  • TanStack Query
  • Recharts
  • Tailwind CSS
  • Docker