Portfolio / '26Sara Moussa

Staffing & Recruitment Platform

Staffin

Admin workflows for a live staffing platform.

I worked on frontend implementation for protected admin screens used to review identity verification, manage time reports, and support operational staffing workflows.

Live productLogin required

Role

Frontend implementation

Focus

Admin product workflows

Stack

Next.jsReactTypeScriptTailwind CSSFramer MotionTanStack

01 / Identity verification

Identity verification

A protected admin workflow for reviewing user identity submissions inside the Staffin platform.

What I implemented

  • Verification table with status, user identity, submitted date, search, and pagination.
  • Review dialog with uploaded ID document, selfie preview, notes, current status, and history.
  • Approve, decline, and revoke flows with refreshed data after each admin action.

Product value

Admins can evaluate verification requests from one focused flow instead of jumping between records or losing history context.

Current review

The main task: review uploaded documents, status, and notes.

02 / Time reports

Time reports

Admin screens for reviewing assignment time reports, shift statuses, overdue cases, and completion state.

What I implemented

  • Time report overview with monthly status cards and period navigation.
  • Report table with server-side pagination, search, sorting, and status filtering.
  • Detail view with job information, linked people, schedule calendar, overdue periods, and completion handling.

Product value

The workflow gives admins a clearer path from high-level report status to the exact shift or period that needs attention.

Time reports overview

Monthly status cards, period navigation, and the server-side reports table.

03 / Technical foundation

What the admin screens share

Behind the admin screens, I also built the shared parts that every table and report relies on.

Typed tables

Admin tables built with TanStack, with sorting, search, loading states and pagination from the server.

Consistent API data

Endpoints returned lists in different shapes, so I normalized them before they reach the tables.

Reports stay open

Admins can keep several reports open as tabs, and the tabs survive a page reload.

Shared report controls

The same period picker, summary cards and status labels are reused on the overview and detail screens.

Outcome

Made identity checks and time reports easier to review, track, and complete.