Enterprise Software Engineering2026-08-06
Technical Deep Dive: Architecting a Role-Based Custom Performance Management System
"How Sambhav AI engineered ARK-PMS: a highly customized, role-based project management system integrating timesheets, dynamic workflows, and revenue attribution at scale."
# Technical Deep Dive: Architecting a Role-Based Custom Performance Management System
*Published: August 2026 | Category: Engineering & Architecture | Reading time: ~10 minutes*
---
## 📍 Table of Contents
1. [The Engineering Challenge](#the-challenge)
2. [Data Modeling: The Category-Based Workflow](#data-modeling)
3. [Implementing Hierarchical Role-Based Access Control (RBAC)](#rbac)
4. [The Integrated Timesheet Engine](#timesheet-engine)
5. [The System Architecture](#architecture)
6. [Why Custom Architecture Beats SaaS Configuration](#conclusion)
---
## 1. The Engineering Challenge
When building **ARK-PMS** for our client ARK Simplify, the engineering challenge wasn't just "building a to-do list." The client was migrating away from generic SaaS tools (like Trello and Bitrix) because their data models were too rigid.
The core technical requirement was to engineer a system where **workflows are entirely dynamic based on project categories**, and where every action—from task completion to peer review—is heavily governed by strict hierarchical roles and directly tied to timesheets and revenue attribution.
At **Sambhav AI**, we had to design a database schema and application architecture that was highly relational but performant enough to serve real-time dashboard analytics to executive management.
---
## 2. Data Modeling: The Category-Based Workflow
In a generic project management tool, a "Project" simply has "Tasks." For ARK-PMS, a project is a complex entity that inherits its structure from a **Category Template**.
When a user creates a new project and selects a category, the system dynamically provisions:
- Standardized Milestones specific to that category.
- Pre-defined Sub-tasks.
- Mandatory Hardware Checklists.
- Project Specifications and SLA requirements.
From a database perspective, this required a highly normalized relational model. A `Project` table does not just contain text fields; it holds foreign keys to a `CategoryTemplate` table. When instantiated, a background service clones the template structure and generates the required relational rows in the `Milestones`, `Tasks`, and `Checklists` tables, binding them to the new `Project_ID`.
This allows the client to create entirely new workflows without requiring us to write new code.
---
## 3. Implementing Hierarchical Role-Based Access Control (RBAC)
Security and data visibility were paramount. The system requires deeply granular Role-Based Access Control (RBAC). We implemented a strict 5-tier hierarchy:
1. **Superadmin:** Global system configuration and financial overrides.
2. **Admin:** Organization-level reporting and project oversight.
3. **Senior Manager:** Revenue attribution visibility and cross-team efficiency reporting.
4. **Junior Manager:** Milestone review authority and team-level timesheet approvals.
5. **Employee/Intern:** Task execution, hardware checklist sign-offs, and personal timesheet logging.
We engineered the API layer with robust middleware that verifies the JWT token's role against the required clearance level for every single CRUD operation. A Junior Manager can review a milestone, but the API will throw a `403 Forbidden` if they attempt to query the `Project_Revenue` endpoint.
---
## 4. The Integrated Timesheet Engine
The most mathematically complex component of ARK-PMS is the **Integrated Timesheet & Efficiency Engine**.
Unlike a standalone time-tracking app, our engine connects project work directly with financial output. When an employee logs hours, the database transaction links that specific block of time to:
1. The exact `Task_ID` and `Milestone_ID`.
2. The employee's personal efficiency score (calculated by comparing logged hours vs. estimated SLA hours).
3. The overall team efficiency metric.
4. The **Project Revenue Attribution** ledger.
By maintaining strict relational integrity, the management dashboard can execute a single SQL aggregate query to instantly display how much revenue a specific project generated per hour of employee labor.
---
## 5. The System Architecture
To handle the relational complexity and the need for real-time dashboards, we designed a robust, scalable architecture.
```mermaid
graph LR
subgraph Frontend Client
UI[React / Next.js Dashboard]
end
subgraph API Layer
Auth[RBAC Middleware]
WF[Workflow Service]
TS[Timesheet & Efficiency Service]
end
subgraph Data Layer
DB[(Relational Database)]
Cache[(Redis Cache)]
end
UI -->|JWT Auth| Auth
Auth --> WF
Auth --> TS
WF --> DB
TS --> DB
TS --> Cache
style UI fill:#002244,stroke:#00aaff
style Auth fill:#440000,stroke:#ff5555
style DB fill:#003311,stroke:#00ff55
```
The **RBAC Middleware** acts as the absolute gatekeeper. The **Workflow Service** handles the complex logic of cloning category templates into live projects, while the **Timesheet Service** calculates real-time efficiency metrics, utilizing caching to ensure the executive dashboards load in milliseconds.
---
## 6. Why Custom Architecture Beats SaaS Configuration
When a business reaches a certain scale, configuring off-the-shelf SaaS tools to fit a unique operational model becomes more expensive (in wasted time and lost efficiency) than building a custom solution.
By engineering **ARK-PMS** from scratch, Sambhav AI provided ARK Simplify with an operational engine that perfectly mirrors their reality, providing unprecedented visibility into their employee efficiency and project revenue.
🛠 **Looking to build a custom operational engine for your enterprise?** [Contact Sambhav AI's engineering team today.](https://www.sambhavaintech.com/contact)
---
*Sambhav AI & Tech Services — Custom Software Development, AI Integration, and Enterprise Architecture.*
Facing a similar operational bottleneck?
Book a 20-minute strategy call with our engineering leads to explore custom forecasting or estimation automation.
Book a 20-Min Strategy Call →