Web App

Internal Procurement Request System (IPRS)

An enterprise-grade full-stack Procurement Management System built using a decoupled architecture with .NET 10 and React 19. It digitizes and secures internal corporate purchase lifecycles through a strict backend state machine, real-time SignalR notifications, and a serverless Neon PostgreSQL database.

Full-Stack ASP.NET Core 10 React 19 React Router v7 PostgreSQL Neon DB SignalR Axios

Project Info

Status Completed
Repository Public
Platform None
Type Web App

Quick Actions

GitHub
View source

Project Info

Status Completed
Repository Public
Platform None
Type Web App

Quick Actions

GitHub
View source

📋 Overview

An internal enterprise web application engineered to digitize and enforce a structured, two-level approval workflow for procurement operations. The system completely automates the lifecycle of purchase requests—moving seamlessly from employee submission to departmental manager review, and finally to finance officer verification for Purchase Order (PO) issuance. Built as a deep-dive portfolio piece into cutting-edge enterprise architecture, the application features strict four-tier Role-Based Access Control (RBAC) enforced via React Router v7 layout route guards and ASP.NET Core authorization policies. It implements robust, zero-trust backend logic where total prices are strictly computed server-side to prevent payload tampering, alongside conditional risk validations for high-value requests (over 50,000 SAR). The project pairs an advanced session security layer (JWT with custom expired token rotation) with a highly responsive, event-driven user interface synchronized via SignalR and Zustand.

⭐ Key Features

Request Lifecycle State Machine

Enforces an irreversible, backend-driven status pipeline (Draft → Pending Manager → Pending Finance → Approved).

Four-Tier RBAC Enforcer

Restricts actions and isolates departmental data visibility across Employee, Manager, Finance, and Admin tiers.

Zero-Trust Calculations

Prevents client-side price manipulation by computing all operational financial totals exclusively on the backend.

Cloud Postgres Architecture

Manages decoupled relational database schemas with high-performance indexing hosted on Neon PostgreSQL.

Real-Time UI Synchronization

Broadcasts event-driven, system-wide notifications using SignalR persistent connections mapped to Zustand stores.

Custom JWT Token Rotation

Implements manual token parsing parameters to securely handle and rotate active sessions after token expiration.