Faheem Niyas Start a project

Work Web application

An employee portal for a UAE manufacturer

Recognition, training, leave, facility booking, events and issue reporting in one place, with access rules that follow the company’s reporting lines.

Sample-data demo Built for a UAE manufacturer and currently in an internal pilot. The company is not named. Every screen here comes from a preview build that runs on invented people and figures.

The portal home screen on a phone, with sample data
Type
Web application
Status
Internal pilot
Role
Design, build and database
Built with
React Native for web, TypeScript, Postgres

The challenge

An earlier portal had grown into skills matrices, scoring and long reports, and was judged too complicated to use.

The replacement had to be something a shift worker could use on a phone in a minute, while still giving managers a view of their own teams and nobody else’s.

Some of what it handles is sensitive: who reported a safety issue, who booked a room, who is on leave.

Rules that hold however the request arrives

  • If a screen must not show something, the database must not return it.

    Hiding a component is presentation, never a security control.

  • Anonymous issues store no identity at all.

    A database check makes storing one impossible; the reporter follows the case with a reference and a secret kept on their device.

  • Badges are approved in person.

    A QR code that expires after three minutes, scanned by an assigned colleague, never by the employee themselves.

  • Clashing bookings are refused by the database.

    The rules hold however a booking is made, not only through the screens.

One portal, six points of view

Choose a role to see what the database returns for it. The same booking, for example, reads differently depending on who is asking.

Employee

Can see

  • Their own profile, training, timeline and badges
  • Their own issues, QR code and bookings

Someone else’s meeting-room booking shows as

Booked

The reason for a booking is visible only to the person who booked it and to admins.

The approach

A much smaller idea: help people notice and develop each other. Four destinations for everyone, a fifth for supervisors.

One rule governs the build. If a screen must not show something, the database must not return it. Hiding a button is presentation, not security.

Every action that changes data runs through a database function that checks who is asking, so the rules hold however the request arrives.

What was built

Parts of the build
ItemPartWhat it does
01Badges awarded in personAn employee shows a QR code that expires after three minutes. An assigned colleague scans it and approves the badge.
02Facility bookingMeeting rooms and sports facilities, with clashes refused by the database and other people’s bookings shown only as “Booked”.
03Notice board and eventsPosts, recognition and upcoming events, with place limits and approval for company-wide events.
04LeaveApply, approve and report, with certificates attached to the application.
05Issue reportingNamed or anonymous. An anonymous report stores no identity at all, and is followed with a reference and a secret kept on the device.
06InsightsTotals for a manager’s own reporting line. No list of who did what.

Screens

Notice board. Posts, recognition and what is coming up.
Insights. Totals only. The figures shown are invented sample data.
Home on a phone.

Screens show a preview build with invented people and figures. The product name and company name have been replaced.

Quality verification

Method
Checked against the database, as recorded in the project’s own notes.
Date
14 and 15 September 2026

Checked and passed

  • 24 of 24 read-only access checks passed: each role was impersonated and what the database returned was compared with what that role should see
  • 18 booking cases behaved as intended: clashes, opening hours, length, how far ahead, other people’s bookings
  • 24 event cases behaved as intended: approval, place limits, cancelling, private drafts
  • Unit tests cover the badge approval rules, QR code contents and booking times

Not yet covered

  • The write-side badge rules have a database test suite that has not been run yet
  • Database types are written by hand and need regenerating from the live schema
  • No push notifications. The notice board refreshes once a minute

Why it matters to a business

Any company with shifts, departments and several sites runs on requests: leave, rooms, training, complaints. When those live in paper forms and chat groups, nobody can see the whole picture and nothing is private.

A portal like this replaces that with one system where the access rules are part of the foundation, so it can be trusted with the sensitive parts as well as the easy ones.

Live demo

The sample-data preview runs privately for now. Ask for a walkthrough.

Ask for a walkthrough

Tell me what your business needs built. A few lines are enough to start, and I reply with questions, not a sales pitch.