Back to selected work

Full-stack product · 2026

Bouh — بَوْح

A mobile-first Arabic platform for submitting anonymous workplace complaints through one private, carefully designed flow.

Next.jsReactTypeScriptPostgreSQLPrismaTailwind CSS
View source on GitHub

The problem

Employees needed a trustworthy way to raise sensitive workplace concerns without creating an account or exposing identifying request data, while management needed a secure and practical system for reviewing and responding to submissions.

Responsibilities

  • Product architecture and privacy model
  • Arabic RTL interface and mobile-first user experience
  • Public complaint submission and tracking flow
  • Authenticated management dashboard and operational tooling

Architecture

  • Next.js App Router with React 19 and TypeScript
  • PostgreSQL persistence through Prisma and the PostgreSQL driver adapter
  • Signed HTTP-only cookie authentication isolated to admin routes
  • Background SMTP notifications and database-managed recipients

Implementation

  • Built a single-action Arabic complaint form with optional name and employee code fields.
  • Generated random, non-sequential tracking codes without introducing user accounts or identity relations.
  • Created a searchable, filterable, paginated admin inbox with complaint detail routes.
  • Added QR generation, recipient management, email notifications, honeypot protection, rate limiting, and optional reCAPTCHA.

Challenges

  • Making anonymity an enforceable architectural property rather than a marketing promise.
  • Keeping the QR-to-submission journey calm and obvious on small mobile screens.
  • Giving management useful operational tools without leaking public-form identity metadata.

Outcomes

01

Delivered an anonymous public submission flow with no required login, session, or identity field.

02

Delivered a private admin workflow for search, filtering, complaint review, recipients, and QR distribution.

03

Established a production-ready PostgreSQL and Vercel deployment workflow with documented privacy boundaries.

Have a related challenge?

Let's make the complicated part clear.

Start a conversation