# pallabkoley/sharpedge-service-management architecture

> Architecture diagram of the GitHub repository pallabkoley/sharpedge-service-management, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/pallabkoley/sharpedge-service-management
- Repository: https://github.com/pallabkoley/sharpedge-service-management

## Overview

SharpEdge is a Laravel ERP for a Chartered Accountancy firm. Its principal workflow runs from Marketing client coordination and service orders, through Admin document/payment approval and task assignment, to Backoffice task processing and financial work, with results and self-service actions exposed to clients. The README documents the broad panel-to-panel workflow; sampled controllers and models support selected order, task, computation, and support relationships. Several documented subsystems were not sampled, so their internal links are omitted.

Main entry points: [`app/Models/Order.php`](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Order.php) (Order records), [`app/Http/Controllers/Marketing/MarketingOrderController.php`](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Marketing/MarketingOrderController.php) (Marketing panel), [`app/Http/Controllers/Admin/AdminOrderApprovalController.php`](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminOrderApprovalController.php) (Order approval), [`app/Http/Controllers/Admin/ClientMasterController.php`](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/ClientMasterController.php) (Client master)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sales["Sales and orders"]
  node_marketing["Marketing panel"]
  node_catalog["Service catalog<br/>[Service.php]"]
  node_order_data[("Order records<br/>[Order.php]")]
end

subgraph group_admin["Admin operations"]
  node_client_master["Client master"]
  node_order_approval["Order approval"]
  node_documents["Document verification"]
  node_payments["Invoices and payments"]
  node_task_assignment["Task assignment"]
end

subgraph group_work["Backoffice delivery"]
  node_task_processing["Task processing"]
  node_task_data[("Task records<br/>[Task.php]")]
end

subgraph group_finance["Financial operations"]
  node_computation["Tax computations"]
  node_statements["Financial statements"]
  node_reconciliation["Reconciliations"]
  node_computation_data[("Computation records<br/>[Computation.php]")]
end

subgraph group_portal["Client and shared services"]
  node_client_portal["Client portal"]
  node_support["Support and meetings"]
  node_hr["HR operations"]
end

node_client_actor(("Client"))
node_marketing_actor(("Marketing staff"))
node_admin_actor(("Admin staff"))
node_backoffice_actor(("Backoffice staff"))

node_marketing_actor -->|"coordinates"| node_marketing
node_marketing -->|"selects services"| node_catalog
node_marketing -->|"creates orders"| node_order_data
node_marketing -->|"creates clients"| node_client_master
node_admin_actor -->|"approves orders"| node_order_approval
node_order_approval -->|"creates tasks"| node_task_data
node_order_approval -->|"updates orders"| node_order_data
node_admin_actor -->|"verifies uploads"| node_documents
node_admin_actor -->|"approves payments"| node_payments
node_admin_actor -->|"assigns tasks"| node_task_assignment
node_backoffice_actor -->|"processes tasks"| node_task_processing
node_task_processing -->|"updates tasks"| node_task_data
node_backoffice_actor -->|"prepares computations"| node_computation
node_computation -->|"reads and writes"| node_computation_data
node_backoffice_actor -->|"finalizes statements"| node_statements
node_backoffice_actor -->|"reconciles accounts"| node_reconciliation
node_client_actor -->|"uses portal"| node_client_portal
node_client_portal -->|"views orders"| node_order_data
node_client_actor -->|"requests support"| node_support
node_admin_actor -->|"manages HR"| node_hr
node_client_master -.->|"maintains client records"| node_order_data
node_documents -.->|"attaches documents"| node_order_data
node_payments -.->|"records payments"| node_order_data

click node_marketing "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Marketing/MarketingOrderController.php"
click node_catalog "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Service.php"
click node_client_master "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/ClientMasterController.php"
click node_order_approval "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminOrderApprovalController.php"
click node_documents "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/DocumentVerificationController.php"
click node_payments "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminPaymentController.php"
click node_task_assignment "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminTaskAssignController.php"
click node_task_processing "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BackofficeTaskController.php"
click node_computation "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/ComputationController.php"
click node_statements "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BalanceSheetController.php"
click node_reconciliation "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BankReconciliationController.php"
click node_client_portal "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Client/ClientOrderController.php"
click node_support "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Client/ClientSupportTicketController.php"
click node_hr "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminAttendanceController.php"
click node_order_data "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Order.php"
click node_task_data "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Task.php"
click node_computation_data "https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Computation.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_marketing,node_catalog,node_order_data,node_client_actor toneBlue
class node_client_master,node_order_approval,node_documents,node_payments,node_task_assignment toneAmber
class node_task_processing,node_task_data toneMint
class node_computation,node_statements,node_reconciliation,node_computation_data toneRose
class node_client_portal,node_support,node_hr,node_marketing_actor,node_admin_actor,node_backoffice_actor toneIndigo
```

## Components

### Sales and orders

- [Marketing panel](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Marketing/MarketingOrderController.php): `app/Http/Controllers/Marketing/MarketingOrderController.php`
- [Service catalog](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Service.php): `app/Models/Service.php`
- [Order records](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Order.php): `app/Models/Order.php`

### Admin operations

- [Client master](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/ClientMasterController.php): `app/Http/Controllers/Admin/ClientMasterController.php`
- [Order approval](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminOrderApprovalController.php): `app/Http/Controllers/Admin/AdminOrderApprovalController.php`
- [Document verification](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/DocumentVerificationController.php): `app/Http/Controllers/Admin/DocumentVerificationController.php`
- [Invoices and payments](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminPaymentController.php): `app/Http/Controllers/Admin/AdminPaymentController.php`
- [Task assignment](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminTaskAssignController.php): `app/Http/Controllers/Admin/AdminTaskAssignController.php`

### Backoffice delivery

- [Task processing](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BackofficeTaskController.php): `app/Http/Controllers/Backoffice/BackofficeTaskController.php`
- [Task records](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Task.php): `app/Models/Task.php`

### Financial operations

- [Tax computations](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/ComputationController.php): `app/Http/Controllers/Backoffice/ComputationController.php`
- [Financial statements](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BalanceSheetController.php): `app/Http/Controllers/Backoffice/BalanceSheetController.php`
- [Reconciliations](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Backoffice/BankReconciliationController.php): `app/Http/Controllers/Backoffice/BankReconciliationController.php`
- [Computation records](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Models/Computation.php): `app/Models/Computation.php`

### Client and shared services

- [Client portal](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Client/ClientOrderController.php): `app/Http/Controllers/Client/ClientOrderController.php`
- [Support and meetings](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Client/ClientSupportTicketController.php): `app/Http/Controllers/Client/ClientSupportTicketController.php`
- [HR operations](https://github.com/pallabkoley/sharpedge-service-management/blob/main/app/Http/Controllers/Admin/AdminAttendanceController.php): `app/Http/Controllers/Admin/AdminAttendanceController.php`

### Other components

- **Client**
- **Marketing staff**
- **Admin staff**
- **Backoffice staff**

## Connections

- Marketing staff → Marketing panel: coordinates
- Marketing panel → Service catalog: selects services (evidence: `app/Http/Controllers/Marketing/MarketingOrderController.php`)
- Marketing panel → Order records: creates orders (evidence: `app/Http/Controllers/Marketing/MarketingOrderController.php`)
- Marketing panel → Client master: creates clients
- Admin staff → Order approval: approves orders
- Order approval → Task records: creates tasks (evidence: `app/Http/Controllers/Admin/AdminOrderApprovalController.php`)
- Order approval → Order records: updates orders (evidence: `app/Http/Controllers/Admin/AdminOrderApprovalController.php`)
- Admin staff → Document verification: verifies uploads
- Admin staff → Invoices and payments: approves payments
- Admin staff → Task assignment: assigns tasks
- Backoffice staff → Task processing: processes tasks
- Task processing → Task records: updates tasks
- Backoffice staff → Tax computations: prepares computations
- Tax computations → Computation records: reads and writes (evidence: `app/Http/Controllers/Backoffice/ComputationController.php`)
- Backoffice staff → Financial statements: finalizes statements
- Backoffice staff → Reconciliations: reconciles accounts
- Client → Client portal: uses portal
- Client portal → Order records: views orders
- Client → Support and meetings: requests support
- Admin staff → HR operations: manages HR
- Client master → Order records: maintains client records
- Document verification → Order records: attaches documents
- Invoices and payments → Order records: records payments
